2

如何将'dead'字符串转换为 unicode 字符串u'\xde\xad'

这样做:

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

创建一个<type 'str'>字符串'\xde\xad'

尝试像这样使用 Unicode.join() :

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

导致错误:

UnicodeDecodeError: 'ascii' codec can't decode byte 0xde in position 0: ordinal not in range(128)
4

2 回答 2

5

Unicode 旨在与 Latin-1 兼容,您可以使用它并简单地解码字节串:

In [2]: unhexlify('dead').decode('latin1')
Out[2]: u'\xde\xad'
于 2009-10-13T09:18:49.703 回答
1

请参阅此 Python unicode how-to,并使用类似于:

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

或者

unicode('\x80abc', errors='ignore')
于 2009-10-13T09:17:59.533 回答