Konvertieren von Hex-String in Unicode
Frage
Wie kann ich den 'dead'
String in einem Unicode-String u'\xde\xad'
konvertieren?
Auf diese:
from binascii import unhexlify
out = ''.join(x for x in [unhexlify('de'), unhexlify('ad')])
erzeugt eine <type 'str'>
Zeichenfolge '\xde\xad'
Der Versuch, die Unicode.join () wie folgt zu verwenden:
from binascii import unhexlify
out = ''.join(x for x in [u'', unhexlify('de'), unhexlify('ad')])
führt zu einem Fehler:
UnicodeDecodeError: 'ascii' codec can't decode byte 0xde in position 0: ordinal not in range(128)
Lösung
Unicode ist so konzipiert, mit Latin-1 kompatibel zu sein, Sie verwenden können und einfach die bytestring dekodieren:
In [2]: unhexlify('dead').decode('latin1')
Out[2]: u'\xde\xad'
Andere Tipps
Siehe diese Python Unicode-how-to und Verwendung so etwas wie:
unicode('\x80abc', errors='replace')
oder
unicode('\x80abc', errors='ignore')
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow