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 :
(Difficile de faire plus simple, vous en conviendrez
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 # -*- coding: utf-8 -*- print u'é')
et voici les différentes exécutions que j'en ai faites :
Donc mes questions sont les suivantes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
* Pourquoi python utilise un encodage différent suivant qu'on redirige la sortie ou pas et comment fait-il pour le savoir?
* Pourquoi ce script simplissime, qui est passé pourtant par 2to3 provoque une erreur de syntaxe avec python 3 ?
Partager