阅读后:Dive into Python: Unicode Discussion
我很想知道在indic script
中打印我的名字。我正在使用v2.7.2
-
>>> import sys
>>> sys.getdefaultencoding()
'ascii'
>>> name = u'\u0935\u0948\u092D\u0935'
>>> print name
वैभव
由于print name
设置为UnicodeError
,我希望defaultencoding
能够ASCII
给我ASCII
,因此从Unicode
自动强制到{{1}}不应该工作。
我错过了什么?
答案 0 :(得分:9)
print uses sys.stdout.encoding,而不是sys.getdefaultencoding()
:
当Python找到附加到终端的输出时,它会设置 sys.stdout.encoding属性到终端的编码。印刷品 statement的处理程序将自动将unicode参数编码为 str输出。
>>> import sys
>>> print(sys.stdout.encoding)
utf-8
>>> print(sys.getdefaultencoding())
ascii
>>> name = u'\u0935\u0948\u092D\u0935'
>>> print name
वैभव