设置Python文件的默认编码
我在调用一个API,这个API会返回一个包含三个属性的对象:
obj.name
obj.id
obj.text
这些属性可能会用不同的编码方式来表示。
为了正确地在我的终端上显示这些内容,我现在正在做:
print obj.name.encode('UTF-8')
print obj.id.encode('UTF-8')
print obj.text.encode('UTF-8')
有没有办法让我一次性设置默认编码为UTF-8呢?
我看到其他帖子提到可以用sys.setdefaultencoding('UTF-8'),但在Python 2.7.x中这个方法已经不再可用了。
请给我一些建议。
1 个回答
3
通常,Python会根据终端的设置自动检测输出的编码方式;你可以通过运行以下命令来查看Python检测到的编码:
import sys
sys.stdout.encoding
如果这样不奏效,你真的需要配置你的终端,以确保它使用正确的编码;例如,在POSIX系统上,你可以设置LC_CTYPE
这个环境变量。
你也可以通过设置PYTHONIOENCODING
这个环境变量,强制Python使用某种编码:
$ PYTHONIOENCODING=latin-1 python -c 'import sys; print sys.stdout.encoding'
latin-1
$ PYTHONIOENCODING=utf8 python -c 'import sys; print sys.stdout.encoding'
utf8