从十六进制字符串转换为 unicode

发布于 2024-08-08 01:37:47 字数 577 浏览 5 评论 0 原文

如何将 'dead' 字符串转换为 unicode 字符串 u'\xde\xad'

这样做:

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

创建一个 字符串 '\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)

How can i convert the 'dead' string to an unicode string u'\xde\xad'?

Doing this:

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

creates a <type 'str'> string '\xde\xad'

Trying to use the Unicode.join() like this:

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

results in an error:

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

怀中猫帐中妖 2024-08-15 01:37:47

Unicode 被设计为与 Latin-1 兼容,您可以使用它并简单地解码字节串:

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

Unicode is designed to be compatible with Latin-1, you can use that and simply decode the bytestring:

In [2]: unhexlify('dead').decode('latin1')
Out[2]: u'\xde\xad'
荒人说梦 2024-08-15 01:37:47

请参阅此 Python unicode 操作方法,并使用类似于:

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

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

See this Python unicode how-to, and use something akin to:

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

or

unicode('\x80abc', errors='ignore')
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文