OVH Cloud OVH Cloud

Problème d'affichage de caractères dans la console python

12 réponses
Avatar
david.hautbois
Salut
J'ai des soucis lors de l'affichage de chaines de caract=E8res 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=E8me.

Maintenant, on complique :
J'utilise l'environnement de d=E9veloppement 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=E9 le commandes suivantes :
unset LC_ALL
export LC_ALL=3D"en_US.UTF-8"
export LC_ALL=3D"fr_FR.UTF-8"

Rien n'y fait... toujours la m=EAme erreur.

Avez vous une id=E9e ?

Merci.

David.

2 réponses

1 2
Avatar
JB
J'utilise python2.5.
Je n'ai pas cette portion de code dans site.py.
Dans /usr/lib/python2.5, je n'ai aucun fichier qui contient la méthode > setencoding.
Le caractère qui pose problème n'est pas - , mais un long - (mal > retranscrit sur cette page)



ok je n'avais pas bien vu en effet le long - :)

chez moi (debian) site.py est dans /etc/python2.4/site.py et à la ligne
363 j'ai :

encoding = "ascii"

++

Julien

Avatar
jean-michel bain-cornu
Bonsoir,
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)

Verifier l'encodage par defaut dans le fichier lib/site.py de la distrib

python ?



Ce qui est tout de même fort, et que je ne m'explique pas, c'est que le
même programme lançé dans une boîte dos va donner un affichage correct
et va se planter s'il est lancé en GUI depuis par exemple Boa.
Et ça ne marche effectivement dans les deux cas que si l'on force
l'encodage dans site.py.
Pourquoi dans un cas l'encodage correct est initialisé, et pas dans
l'autre ?

nb: windows xp, python 2.4.4
Le programme :
# -*- coding: cp1252 -*-
print unicode("voilà l'été",'cp1252')





1 2