繁体   English   中英

Python3中的“ UnicodeEncodeError:'ascii'编解码器无法编码字符”

[英]“UnicodeEncodeError: 'ascii' codec can't encode character” in Python3

我正在从API(使用Python 3.5)中获取带有请求的JSON,而当我尝试通过response.text,json.loads(...)或response.json()打印(或使用)JSON时,我收到UnicodeEncodeError。

print(response.text)
UnicodeEncodeError: 'ascii' codec can't encode character '\xc5' in position 676: ordinal not in range(128)

JSON包含带有国家名称的字典数组,其中一些包含特殊字符,例如:(例如,二进制数组中只有一个字典)

b'[{\n "name" : "\xc3\x85land Islands"\n}]

我不知道为什么会有编码问题,为什么在请求检测到UTF-8编码时(甚至通过手动将其设置为UTF-8都不会改变)为何使用“ ascii”。

Edit2:问题是Microsoft Visual Studio Code 1.4。 它无法打印字符。

如果您的代码在VS中运行,则听起来Python无法计算出内置控制台的编码,因此默认为ASCII。 如果您尝试打印任何非ASCII字词,则Python会抛出错误,而不是打印不会显示的文本。

您可以使用PYTHONIOENCODING环境变量来强制使用Python的编码。 在脚本的运行配置中进行设置。

根据Visual Studio的控制台,您可能会逃脱:

PYTHONIOENCODING=utf-8

或者您可能必须使用典型的8位字符集,例如:

PYTHONIOENCODING=windows-1252

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM