Python: convertir une chaîne de UTF-8 en Latin-1
Je me sens empilés ici d'essayer de changer les encodages avec Python 2.5
J'ai un fichier XML de réponse, qui, je l'encode en UTF-8: response.encode('utf-8')
. C'est bien, mais le programme qui utilise cette info n'aime pas ce jeu et je dois le convertir en autre page de code. Exemple réel, c'est que j'utilise ghostscript module python pour intégrer pdfmark données dans un fichier PDF - résultat final est avec des caractères incorrects dans Acrobat.
J'ai fait de nombreuses combinaisons avec .encode()
et .decode()
entre "utf-8" et "latin-1" et ça me rend fou car je ne peux pas sortie résultat correct.
Si je sortie de la chaîne de caractères dans un fichier avec .encode('utf-8')
et ensuite convertir ce fichier en UTF-8 pour CP1252 (aka latin-1) avec soit iconv.exe et intégrer les données, tout est parfait.
Fondamentalement quelqu'un peut-il m'aider à convertir à savoir le caractère á qui est codé en UTF-8 comme hex: C3 A1
de latin-1 hex: E1
?
Merci d'avance
source d'informationauteur romor | 2010-11-28
Vous devez vous connecter pour publier un commentaire.
Au lieu de
.encode('utf-8')
utilisez.encode('latin-1')
.Devrait le faire.
Peut vous fournir plus de détails à propos de ce que vous essayez de faire? En général, si vous avez une chaîne unicode, vous pouvez utiliser l'encodeur convertir en chaîne de codage approprié. Par exemple:
Si les réponses précédentes ne résolvent pas votre problème, vérifiez la source des données qui ne sont pas imprimer/convertir correctement.
Dans mon cas, j'ai été en utilisant
json.load
sur les données en lecture incorrecte de fichier en n'utilisant pas laencoding="utf-8"
. Essayez de/encoder la chaîne résultante àlatin-1
ne vient pas aider...