Python3中遇到UnicodeEncodeError: ‘ascii’ codec can’t encode characters in position 25-45: ordinal not in range(128)
如果是python 2.x的话需要在文件中加上
# coding: utf-8 reload(sys) sys.setdefaultencoding("utf8")
但是Python3应当默认就使用utf8编码,即使设置了这些也仍然不能正常打印。
最终查看了一下系统环境编码,发现问题(我的是ARM架构下的Ubuntu)
>>> import sys >>> sys.stdout.encoding 'ANSI_X3.4-1968'
解决办法
1、设置环境变量LANG
在linux或Mac上设置环境变量的方式一样,在/etc/profile增加一行
export LANG=”en_US.UTF-8″
然后source /etc/profile
我当前系统默认已经是utf-8,采用第二种解决
2、使用PYTHONIOENCODING
在运行python命令前添加参数 PYTHONIOENCODING=utf-8 python3 api.py
该参数的解释可查看
https://docs.python.org/3.6/using/cmdline.html
原创文章,作者:Tina,如若转载,请注明出处:https://python.01314.cn/201907548.html