Bonjour
J'ai besoin d'un peu d'explication sur mon problème.
J'utilise python 2.6 sous Windows (Oui, on est sur LinuxFR, mais j'espère qu'on me pardonnera).
J'interroge un web service dont je récupère ça :
machaine = u'Param\xc3\xa8tres'
Je reconnais le C3A8 qui correspond au caractères 'è' en UTF-8.
J'ai besoin d'enregistrer cette chaine dans un fichier texte en UTF8.
J'ai commencé par travailler de manière réfléchie, puis tenter les decode/encode utf8/iso8859 au hasard.
La plupart du temps, je tombe sur l'erreur "UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 153: ordinal not in range(128)"
J'en viens à ne plus savoir ce que j'ai vraiment, ce que je dois en faire.
J'ai l'impression que machaine est codée en ASCII, mais contient des caractères non ASCII.
Pouvez vous me donner des informations sur le codage de machaine et ce que je peux en faire.
Merci pour votre aide.
David.
# Voir l'entête retournée par le webservice pour obtenir l'encodage
Posté par totof2000 . Évalué à 3.
Voir par exempl ce que l'on obtient sur la freebox :
A partir de là, soit l'information retournée est correcte et tu pourras faire les conversions nécessaires, soit l'encodage de ton webservice est pourre et tu ne pourrasd pas y faire grand chose, hormis te plaindre au développeur pour qu'il le corrige (ou développer un tas de routines de conversions spécifiques pour régler le problème).
Au passage, va lire http://sametmax.com/lencoding-en-python-une-bonne-fois-pour-toute/ et http://apprendre-python.com/page-python-encodage-encode-decode-unicode-ascii-codec-character-accents-probleme-string-utf8 par exemple.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.