J'espère que vous allez pouvoir m'aider :]
Ds mon script, si je mets ceci :
msg = "éèàç"
print msg
Il m'affichera correctement éèàç : Ok.
Si je mets ceci :
liste = ["Bonjour", "éèàç"]
print liste
Je me retrouve avec cela :
['Bonjour', '\xc3\xa9\xc3\xa8\xc3\xa0\xc3\xa7']
et ce, même si je mets :
# -*- coding: UTF-8 -*-
au début de mon code :]
Que se passe-t-il docteur ?
Merci bcp de votre aide :]
# hum
Posté par kolter (site web personnel, Mastodon) . Évalué à 4.
je suppute que lorque tu fais print sur une string , python fait implicitement la conversion dans le système de codage précisé (# -*- coding: UTF-8 -*-) sinon il utilise celui par défaut!
par contre si tu le fait sur une liste, python ne fait pas un analyse du contenu et affiche tout brut (donc pas de conversion) !!!
cela dit je pense pas que ce soit un problème si cela se produit juste lorsque tu fais un print sur une liste !
M.
[^] # Re: hum
Posté par Thymus . Évalué à 1.
Je n'avais même pas pensé à essayer ça -_- ...
En effet, ds ce cas, ça ne pose pas de problèmes :]
Merci
[^] # Re: hum
Posté par GCN (site web personnel) . Évalué à 5.
http://evanjones.ca/python-utf8.html(...)
Bonne chance !
# encodages
Posté par Brahici . Évalué à 2.
un bon point de départ pourrait être le tutorial unicode de Marc-André Lemburg, un des pères de l'unicode de python.
http://www.reportlab.com/i18n/python_unicode_tutorial.html(...)
pour en revenir à ton 'problème' (qui n'existe pas par ailleurs), il faut juste comprendre que les données ont une représentation interne et une représentation externe.
dans l'interpréteur python, quand tu donnes juste le nom d'une variable de type string, python va chercher la méthode de représentation externe de la chaîne, ce qui conduit donc à remplacer les caractères d'encodage par un caractère accentué ou spécial, d'où un \xc3\xa9 qui devient un é (en UTF8).
par contre pour une liste, la méthode de représentation externe ne fait pas de récursion dans les éléments de la liste, les éléments qui la consititue apparaissent sous la forme suivante [ elt0 , elt1 , ... ], mais chaque élément est affiché selon sa représentation interne, d'où l'apparition des caractères d'encodage pour les éléments de type string.
[^] # Re: encodages
Posté par aedrin . Évalué à 1.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.