2009-10-13 5 views
2

Как преобразовать строку 'dead' в строку unicode u'\xde\xad'?Преобразование из шестнадцатеричной строки в unicode

Делать это:

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) 

ответ

5

Unicode разработан, чтобы быть совместимым с Latin-1, вы можете использовать его и просто декодировать байтовой строки:

In [2]: unhexlify('dead').decode('latin1') 
Out[2]: u'\xde\xad' 
Смежные вопросы