Question

Comment puis-je convertir la chaîne de 'dead' à une u'\xde\xad' chaîne unicode?

Faire ceci:

from binascii import unhexlify
out = ''.join(x for x in [unhexlify('de'), unhexlify('ad')])

crée une <type 'str'> chaîne de '\xde\xad'

Essayer d'utiliser la Unicode.join () comme ceci:

from binascii import unhexlify
out = ''.join(x for x in [u'', unhexlify('de'), unhexlify('ad')])

provoque une erreur:

UnicodeDecodeError: 'ascii' codec can't decode byte 0xde in position 0: ordinal not in range(128)
Était-ce utile?

La solution

Unicode est conçu pour être compatible avec le latin-1, vous pouvez l'utiliser et de décoder simplement le bytestring:

In [2]: unhexlify('dead').decode('latin1')
Out[2]: u'\xde\xad'

Autres conseils

Voir ce Python unicode how-to , et utiliser quelque chose comme:

unicode('\x80abc', errors='replace')

ou

unicode('\x80abc', errors='ignore')
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top