Python conversion latin1 pour UTF8
En Python 2.7, comment convertir une chaîne de caractères latin1 vers UTF-8.
Par exemple, je suis en train de convertir é de l'utf-8.
>>> "é"
'\xe9'
>>> u"é"
u'\xe9'
>>> u"é".encode('utf-8')
'\xc3\xa9'
>>> print u"é".encode('utf-8')
é
La lettre é, qui est la LETTRE minuscule LATINE E AIGUË (U+00E9)
L'UTF-8 octets codant pour est: c3a9
Le latin de codage octet est: e9
Comment puis-je obtenir de l'UTF-8 de la version latine de la chaîne? Quelqu'un pourrait-il donner un exemple de comment convertir le é?
Avez-vous lu le Python Unicode HOWTO encore? Si non, vous devriez!
J'ai, mais l'encodage est toujours un peu déroutant.
J'ai, mais l'encodage est toujours un peu déroutant.
OriginalL'auteur Eugene | 2013-01-21
Vous devez vous connecter pour publier un commentaire.
Pour décoder une séquence d'octets du latin 1 à Unicode, utilisez le
.decode()
méthode:Python utilise
\xab
échappe pour l'unicode codepoints ci-dessous\u00ff
.Le au-dessus de caractères Latin-1 peut être encodé en UTF-8:
OriginalL'auteur Martijn Pieters
Vous avez codé en UTF-8 séquence d'octets. N'essayez pas d'imprimer octets codés directement. Pour les imprimer, vous devez décoder les octets codés en arrière dans une chaîne Unicode.
Avis que l'encodage et le décodage sont à l'opposé des opérations qui s'annuler. Vous vous retrouvez avec l'original
u"é"
chaîne de retour, bien que Python imprime comme l'équivalentu'\xe9'
.OriginalL'auteur John Kugelman
Le faire, je ne suis pas sûr si c'est une bonne approche, mais il fonctionne à chaque fois !!
OriginalL'auteur Shashank Agarwal