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)
War es hilfreich?

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
scroll top