2

'dead'文字列をユニコード文字列に変換するにはどうすればよい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('\x80abc', errors='replace')

また

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