Problème d'affichage de caractères dans la console python
12 réponses
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"
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)
Rien n'y fait... toujours la même erreur.
Avez vous une idée ?
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
jean-michel bain-cornu
Bonsoir,
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)
As-tu essayé :
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.py/JouerAvecUnicode pourrait être salutaire...
A+ jm
Bonsoir,
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)
As-tu essayé :
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.py/JouerAvecUnicode pourrait être
salutaire...
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)
As-tu essayé :
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.py/JouerAvecUnicode pourrait être salutaire...
A+ jm
NicolasP
ou print u'Int...ices u2014 what...idea'.encode('ascii','replace')
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
ou print u'Int...ices u2014 what...idea'.encode('ascii','replace')
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.
ou print u'Int...ices u2014 what...idea'.encode('ascii','replace')
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
jean-michel bain-cornu
Il faut juste connaitre l'encodage du flux de sortie pour faire la conversion. ...et si tu ne le connais pas, ('ascii','replace') passera à tous les
coups...
Il faut juste connaitre l'encodage du flux de sortie pour faire la
conversion.
...et si tu ne le connais pas, ('ascii','replace') passera à tous les
Il faut juste connaitre l'encodage du flux de sortie pour faire la conversion. ...et si tu ne le connais pas, ('ascii','replace') passera à tous les
coups... Je l'ai sous la main :
import locale print locale.getdefaultlocale()[1] permet de connaître le charset courant.
NicolasP
Il faut juste connaitre l'encodage du flux de sortie pour faire la conversion. ...et si tu ne le connais pas, ('ascii','replace') passera à tous les
coups... Je l'ai sous la main :
import locale print locale.getdefaultlocale()[1] permet de connaître le charset courant.
Tiens, j'ai le même résultat (CP1252) dans une boite DOS que dans une fenêtre Windows. Aurais-je dis une bêtise ? Il faut que je vérifie (mais c'est à la maison).
Il faut juste connaitre l'encodage du flux de sortie pour faire la
conversion.
...et si tu ne le connais pas, ('ascii','replace') passera à tous les
coups...
Je l'ai sous la main :
import locale
print locale.getdefaultlocale()[1]
permet de connaître le charset courant.
Tiens, j'ai le même résultat (CP1252) dans une boite DOS que dans une fenêtre Windows.
Aurais-je dis une bêtise ?
Il faut que je vérifie (mais c'est à la maison).
Il faut juste connaitre l'encodage du flux de sortie pour faire la conversion. ...et si tu ne le connais pas, ('ascii','replace') passera à tous les
coups... Je l'ai sous la main :
import locale print locale.getdefaultlocale()[1] permet de connaître le charset courant.
Tiens, j'ai le même résultat (CP1252) dans une boite DOS que dans une fenêtre Windows. Aurais-je dis une bêtise ? Il faut que je vérifie (mais c'est à la maison).
jean-michel bain-cornu
import locale print locale.getdefaultlocale()[1] permet de connaître le charset courant.
Tiens, j'ai le même résultat (CP1252) dans une boite DOS que dans une fenêtre Windows. Aurais-je dis une bêtise ?
Mé non, c'est juste. Exemple : import locale print locale.getdefaultlocale()[1] print "voilà l'été" affiche cp1252 en boîte dos comme en fenêtré. L'os nous rend sa page de code préférée dans les deux cas, mais l'affichage respecte le charset utilisé dans le code, ce qui produit un affichage incohérent dans la boite dos
import locale
print locale.getdefaultlocale()[1]
permet de connaître le charset courant.
Tiens, j'ai le même résultat (CP1252) dans une boite DOS que dans une
fenêtre Windows.
Aurais-je dis une bêtise ?
Mé non, c'est juste.
Exemple :
import locale
print locale.getdefaultlocale()[1]
print "voilà l'été"
affiche cp1252 en boîte dos comme en fenêtré.
L'os nous rend sa page de code préférée dans les deux cas, mais
l'affichage respecte le charset utilisé dans le code, ce qui produit un
affichage incohérent dans la boite dos
import locale print locale.getdefaultlocale()[1] permet de connaître le charset courant.
Tiens, j'ai le même résultat (CP1252) dans une boite DOS que dans une fenêtre Windows. Aurais-je dis une bêtise ?
Mé non, c'est juste. Exemple : import locale print locale.getdefaultlocale()[1] print "voilà l'été" affiche cp1252 en boîte dos comme en fenêtré. L'os nous rend sa page de code préférée dans les deux cas, mais l'affichage respecte le charset utilisé dans le code, ce qui produit un affichage incohérent dans la boite dos
JB
On Oct 6, 5:14 pm, JB wrote:
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) Rien n'y fait... toujours la même erreur. Avez vous une idée ? 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
chercher 'ascii' dans le fichier :
def setencoding(): """Set the string encoding used by the Unicode implementation. The default is 'ascii', but if you're willing to experiment, you can change this.""" encoding = "ascii" # Default value set by _PyUnicode_Init()
enfin en meme temps, le - est géré par ascii heureusement ;)
Julien
On Oct 6, 5:14 pm, JB <zo...@chez.Com> wrote:
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)
Rien n'y fait... toujours la même erreur.
Avez vous une idée ?
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
chercher 'ascii' dans le fichier :
def setencoding():
"""Set the string encoding used by the Unicode implementation. The
default is 'ascii', but if you're willing to experiment, you can
change this."""
encoding = "ascii" # Default value set by _PyUnicode_Init()
enfin en meme temps, le - est géré par ascii heureusement ;)
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) Rien n'y fait... toujours la même erreur. Avez vous une idée ? 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
chercher 'ascii' dans le fichier :
def setencoding(): """Set the string encoding used by the Unicode implementation. The default is 'ascii', but if you're willing to experiment, you can change this.""" encoding = "ascii" # Default value set by _PyUnicode_Init()
enfin en meme temps, le - est géré par ascii heureusement ;)
Julien
david.hautbois
On Oct 8, 6:02 pm, JB wrote:
On Oct 6, 5:14 pm, JB wrote:
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) Rien n'y fait... toujours la même erreur. Avez vous une idée ? Verifier l'encodage par defaut dans le fichier lib/site.py de la distr ib
python ?
Bon weekend
Julien.
Je ne vois nul part l'encodage par défaut
chercher 'ascii' dans le fichier :
def setencoding(): """Set the string encoding used by the Unicode implementation. The default is 'ascii', but if you're willing to experiment, you can change this.""" encoding = "ascii" # Default value set by _PyUnicode_Init()
enfin en meme temps, le - est géré par ascii heureusement ;)
Julien
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)
On Oct 8, 6:02 pm, JB <zo...@chez.Com> wrote:
On Oct 6, 5:14 pm, JB <zo...@chez.Com> wrote:
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)
Rien n'y fait... toujours la même erreur.
Avez vous une idée ?
Verifier l'encodage par defaut dans le fichier lib/site.py de la distr ib
python ?
Bon weekend
Julien.
Je ne vois nul part l'encodage par défaut
chercher 'ascii' dans le fichier :
def setencoding():
"""Set the string encoding used by the Unicode implementation. The
default is 'ascii', but if you're willing to experiment, you can
change this."""
encoding = "ascii" # Default value set by _PyUnicode_Init()
enfin en meme temps, le - est géré par ascii heureusement ;)
Julien
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)
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) Rien n'y fait... toujours la même erreur. Avez vous une idée ? Verifier l'encodage par defaut dans le fichier lib/site.py de la distr ib
python ?
Bon weekend
Julien.
Je ne vois nul part l'encodage par défaut
chercher 'ascii' dans le fichier :
def setencoding(): """Set the string encoding used by the Unicode implementation. The default is 'ascii', but if you're willing to experiment, you can change this.""" encoding = "ascii" # Default value set by _PyUnicode_Init()
enfin en meme temps, le - est géré par ascii heureusement ;)
Julien
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)