1
我已经阅读了很多关于Unicode以及Python 2.7中的各种编码/解码的知识,但是我仍然无法理解为什么IDLE似乎无法打印正确的字符串。Python 2.7 Unicode/IDLE混淆
我有一个unicode字符串:
>>> s = u"Hey I\u2019m Bob"
>>> print s
Hey I'm Bob
然而,当我编码成UTF-8,我得到:
>>> s.encode('utf-8')
'Hey I\xe2\x80\x99m Bob'
>>> print s.encode('utf-8')
Hey I’m Bob
我想不通为什么我不能打印此正确,但我可以写s.encode('utf-8')到一个文本文件,并且它正确地出来。不知道这是否与IDLE有关?
谢谢,有没有办法让IDLE支持UTF-8? – rottentomato56 2013-03-02 06:25:28
不确定。我使用支持UTF-8的[pywin32](http://sourceforge.net/projects/pywin32/files/pywin32/)扩展中的PythonWin。 – 2013-03-02 06:26:39
如果您在IDLE中打印Unicode字符串,即使stdout编码为“cp1252”(一种不支持中文的编码),我也能正确打印中文。所以只需打印不带编码的Unicode字符串。 – 2013-03-02 06:33:04