質問

どのように私は、Unicode文字列'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)
役に立ちましたか?

解決

ユニコードはラテン-1と互換性があるように設計されて、あなたはそれを使用すると、単純にバイト文字列をデコードすることができます:

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