近期对程序升级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 发现接口