我先说一下,我已经看过这篇文章:Strange python print behavior with unicode,但是那里提供的解决方案(使用PYTHONIOENCODING)对我没用。
这是我的问题:
Python 2.6.5 (r265:79063, Apr 9 2010, 11:16:46)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-44)] on linux2
>>> a = u'\xa6'
>>> print a
¦
此功能运行良好,但是:
>>> sys.stdout.write(a)
Traceback (most recent call last):
File "<stdin>", line 1, in ?
UnicodeEncodeError: 'ascii' codec can't encode character u'\xa6' in position 0: ordinal not in range(128)
抛出错误。我在顶部链接的文章中提到,这是因为默认的控制台编码是“ascii”。但是,在我的情况下并不是这样:
>>> sys.stdout.encoding
'UTF-8'
那么对于这里发生的情况,您有什么想法并且如何解决这个问题呢?
谢谢 D.