Pergunta

Como posso converter o 'dead' string para uma string unicode u'\xde\xad'?

Fazendo isso:

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

cria um <type 'str'> corda '\xde\xad'

Tentando usar o unicode.join () como este:

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

resulta em um erro:

UnicodeDecodeError: 'ascii' codec can't decode byte 0xde in position 0: ordinal not in range(128)
Foi útil?

Solução

O Unicode foi projetado para ser compatível com o Latin-1, você pode usar isso e simplesmente decodificar o bytestring:

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

Outras dicas

Ver Este python unicode como fazer, e use algo semelhante a:

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

ou

unicode('\x80abc', errors='ignore')
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top