Categories
Uncategorized

Python3 UnicodeEncodeError: ‘ascii’ codec can’t encode characters

近期对程序升级python2到 python3,一直以为在 python3中可以避免 ascii 编码的问题,没想到还是出现问题

UnicodeEncodeError: ‘ascii’ codec can’t encode characters in position 0-3: ordinal not in range(128)

这个问题不能够单纯用 Py2 中的老方法来解决 ,因为 Python3 不支持

 

最后找到问题的所在,是 terminal 编码的问题。

[code lang=”python”]import sys
sys.stdout.encoding
[/code]

解决方式在使用 Terminal 之前,设置一下整体的环境,使用 locale 查看本地字符串,

[code lang=”python”]LANG=”en_GB.utf-8″
LC_ALL=”en_GB.utf-8″
LC_CTYPE=”en_GB.utf-8″
[/code]

只输入 locale 发现接口