2011-02-13 5 views
3

J'ai données hébraïques telle que \ xE0 est le aleph Hebrew, et souhaitez le convertir en utf-8comment convertir Hebrew 8 bits utf-8 en python

+0

Vous pouvez également jeter un oeil à [que] (http://stackoverflow.com/questions/368805/python-unicodedecodeerror-am-i-misunderstanding-encode/370199#370199) réponse . Notez également que vos chaînes sont très probablement codées en tant que 'cp1255' (voir [ici] (http://en.wikipedia.org/wiki/Windows-1255)), et non' iso8859-8'. – tzot

Répondre

7

En général en Python, si vous avoir une chaîne d'octets dont vous avez besoin d'utiliser d'abord le décoder pour le convertir en représentation interne, ensuite vous pouvez l'encoder en UTF-8. Bien sûr, vous devez connaître le codage de \xe0 pour que cela fonctionne (je suppose que votre personnage est codé en utilisant ISO-8859-8):

'\xe0'.decode('iso-8859-8').encode('utf-8') 

EDIT: Une note de côté:

Assurez-vous d'utiliser la représentation interne dans votre programme aussi longtemps que possible. En général: décoder d'abord (en entrée), encoder en dernier (en sortie).

+1

L'encodage est probablement iso-8859-8, sinon Windows-1255. – Mikel

+0

http://en.m.wikipedia.org/wiki/ISO_8859-8 – Mikel

0

vous pouvez utiliser le « décodage » appel à la transformer en unicode

y = x.decode('iso8859-8') 

x est votre chaîne à 8 bits et y est la chaîne unicode alors vous pouvez le convertir en utf-8 en utilisant la encode appel

z = y.encode('utf-8') 
Questions connexes