字符串 - Python编码问题?
PHPz
PHPz 2017-04-18 10:33:39
[Python讨论组]

我用Python3的requests库从一个api请求一个json数据,然后试图去print出来:


    res = requests.get("http://aaa.com/bbb.php")
    res.encoding='utf-8'
    name = res.json(encoding = "utf8")["name"]
    print(name)

也试了一下方法:

name.encode('utf8').decode("utf8")
print(name)

我这个name字符串有可能有中文,数字,英文,也有可能有阿拉伯文。或者只有他们之中的一个。
我每次print的时候有时候能输出成功,有时候有以下错误:

  File "demo.py", line 53, in play_one
    print(json.loads(result_str)["name"])
UnicodeEncodeError: 'gbk' codec can't encode character '\u062f' in position 0: illegal multibyte sequence

我该怎么处理这个字符串,有可能同一个字符串混有不同的编码?还是我获取到的字符串每次都是不同编码的,我应该怎么正确输去这个不确定的字符串?

PHPz
PHPz

学习是最好的投资!

全部回复(1)
大家讲道理

标准 JSON 是不需要指定编码的。

你使用的是 Windows 简体中文版,系统控制台需要输出以 GBK 编码来输出字符,但是你的字符「U+062F د ARABIC LETTER DAL」在 GBK 编码中没有对应,因此无法输出。

你可以选择写到文件,或者安装阿拉伯文版的 Windows。或者使用其它对 Unicode 支持更好的操作系统 / 终端。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号