阅读后: 深入Python:Unicode讨论
我很好奇尝试打印我的名字indic script.我正在使用v2.7.2-
>>> import sys
>>> sys.getdefaultencoding()
'ascii'
>>> name = u'\u0935\u0948\u092D\u0935'
>>> print name
????
Run Code Online (Sandbox Code Playgroud)
我期待print name给我UnicodeError,因为defaultencoding被设置为ASCII使自动强迫ASCII从Unicode不应该工作.
我错过了什么?
print使用sys.stdout.encoding,而不是sys.getdefaultencoding():
当Python找到附加到终端的输出时,它会将sys.stdout.encoding属性设置为终端的编码.print语句的处理程序将自动将unicode参数编码为str输出.
>>> import sys
>>> print(sys.stdout.encoding)
utf-8
>>> print(sys.getdefaultencoding())
ascii
>>> name = u'\u0935\u0948\u092D\u0935'
>>> print name
????
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
136 次 |
| 最近记录: |