UnicodeEncodeError seulement en cas de redirection
Bonjour,
Je m'arrache un peu (beaucoup) les cheveux sur python et l'unicode et j'aurai besoin d'un petit coup de main.
Voici le code :
Code:
1 2
| # -*- coding: utf-8 -*-
print u'é' |
(Difficile de faire plus simple, vous en conviendrez ;))
et voici les différentes exécutions que j'en ai faites :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| $ python2.6 test.py
é
$ python2.6 test.py > /dev/null
Traceback (most recent call last):
File "test.py", line 2, in <module>
print u'é'
UnicodeEncodeError: 'ascii' codec cant encode character u'\xe9' in position 0: ordinal not in range(128)
$ python3.1 test.py
File "test.py", line 2
print u'é'
^
SyntaxError: invalid syntax |
Donc mes questions sont les suivantes :
* Pourquoi python utilise un encodage différent suivant qu'on redirige la sortie ou pas et comment fait-il pour le savoir 8O?
* Pourquoi ce script simplissime, qui est passé pourtant par 2to3 provoque une erreur de syntaxe avec python 3 ?