Problème d'affichage de caractères dans la console python
Le
david.hautbois
Salut
J'ai des soucis lors de l'affichage de chaines de caractères dans la
console.
Sur ma debian :
>>> print u'Internet radio devices \u2014 what a good/bad idea'
Internet radio devices - what a good/bad idea
Ok, pas de problème.
Maintenant, on complique :
J'utilise l'environnement de développement de la tablette Nokia N800.
>>> print u'Internet radio devices \u2014 what a good/bad idea'
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
UnicodeEncodeError: 'ascii' codec can't encode character u'\u2014' in
position 23: ordinal not in range(128)
On m'a conseillé le commandes suivantes :
unset LC_ALL
export LC_ALL="en_US.UTF-8"
export LC_ALL="fr_FR.UTF-8"
Rien n'y fait toujours la même erreur.
Avez vous une idée ?
Merci.
David.
J'ai des soucis lors de l'affichage de chaines de caractères dans la
console.
Sur ma debian :
>>> print u'Internet radio devices \u2014 what a good/bad idea'
Internet radio devices - what a good/bad idea
Ok, pas de problème.
Maintenant, on complique :
J'utilise l'environnement de développement de la tablette Nokia N800.
>>> print u'Internet radio devices \u2014 what a good/bad idea'
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
UnicodeEncodeError: 'ascii' codec can't encode character u'\u2014' in
position 23: ordinal not in range(128)
On m'a conseillé le commandes suivantes :
unset LC_ALL
export LC_ALL="en_US.UTF-8"
export LC_ALL="fr_FR.UTF-8"
Rien n'y fait toujours la même erreur.
Avez vous une idée ?
Merci.
David.

Poser une question


Verifier l'encodage par defaut dans le fichier lib/site.py de la distrib
python ?
Bon weekend
Julien.
Je ne vois nul part l'encodage par défaut
print u'Int...ices u2014 what...idea'.encode('ascii','ignore')
ou print u'Int...ices u2014 what...idea'.encode('ascii','replace')
qui va ignorer (ou remplacer par ? suivant le cas) l'affichage des
caractères non gérés ?
Au besoin, un ptit coup d'oeil sur
http://wikipython.flibuste.net/moin...vecUnicode pourrait être
salutaire...
A+
jm
ou mieux : print u'Int...ices u2014 what...idea'.encode('encodage','replace')
avec encodage = l'encodage de la console.
Tous les caractères sont conservés.
J'ai le même problème sous windows avec certains scripts qui affichent des chaines unicode qui viennent "d'ailleurs".
Quand le script est exécuté dans une boite DOS, ca marche mais quand c'est exécuté dans un environement IDLE, j'ai le une exception due à l'encodage si je ne change pas l'encodage de la chaine lors de l'affichage.
Une boite DOS a un encodage différent d'une fenêtre Windows (d'où le comportement différent).
Il faut juste connaitre l'encodage du flux de sortie pour faire la conversion.
Nicolas
coups...