Начну с того, что я уже видел этот пост: Странное поведение печати на python с использованием 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.