سؤال

كيف يمكنني تحويل 'dead' سلسلة إلى سلسلة Unicode 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)
هل كانت مفيدة؟

المحلول

تم تصميم Unicode ليكون متوافقًا مع Latin-1 ، يمكنك استخدام ذلك وفك تشفير البايت:

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

نصائح أخرى

يرى هذا python unicode, ، واستخدم شيئًا أقرب إلى:

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

أو

unicode('\x80abc', errors='ignore')
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top