unicodeに16進数文字列から変換します
質問
どのように私は、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'
所属していません StackOverflow