Je commencerai par dire que j'ai déjà vu ce billet : Comportement étrange de l'impression en python avec l'unicode mais la solution proposée (utiliser PYTHONIOENCODING) n'a pas fonctionné pour moi.
Voici mon problème :
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
¦
fonctionne cependant très bien :
>>> 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)
provoque une erreur. L'article que j'ai linké en haut suggère que c'est parce que l'encodage par défaut de la console est 'ascii'. Cependant, dans mon cas, ce n'est pas le cas :
>>> sys.stdout.encoding
'UTF-8'
Avez-vous des idées sur ce qui se passe ici et sur la manière de résoudre ce problème ?
Remerciements D.