0

我正在调用某种 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 中不再可用

请指教。

4

1 回答 1

3

通常Python 从终端设置中检测输出编码;您可以通过运行查看 Python 检测到的内容:

import sys
sys.stdout.encoding

如果这对您不起作用,您真的想配置您的终端以指定正确的编码;LC_CTYPE例如,在 POSIX 系统上设置环境变量。

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
于 2013-02-19T14:19:46.647 回答