加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

Python:将Unicode-Hex-String转换为Unicode

发布时间:2020-12-16 22:16:13 所属栏目:Python 来源:网络整理
导读:我有一个由具有该函数的unicode字符串构成的十六进制字符串: def toHex(s): res = "" for c in s: res += "%02X" % ord(c) #at least 2 hex digits,can be more return reshex_str = toHex(u"...") 这将返回一个像这样的字符串: "80547CFB4EBA5DF15B585728

我有一个由具有该函数的unicode字符串构成的十六进制字符串:

def toHex(s):
    res = ""
    for c in s:
        res += "%02X" % ord(c) #at least 2 hex digits,can be more
    return res

hex_str = toHex(u"...")

这将返回一个像这样的字符串:

"80547CFB4EBA5DF15B585728"

这是一个由6个中国符号组成的序列.

u"Kn?del"

转换为

"4B6EF664656C"

我现在需要的是将其转换回原始unicode的功能.中文符号似乎具有2字节表示,而第二个示例具有所有字符的1字节表示.所以我不能只为每个1或2字节块使用unichr().

我已经试过了

binascii.unhexlify(hex_str)

但这似乎逐字节转换并返回一个字符串,而不是unicode.我也试过了

binascii.unhexlify(hex_str).decode(...)

不同的格式.从来没有得到原始的unicode字符串.

非常感谢你提前!

最佳答案
这似乎工作得很好:

binascii.unhexlify(binascii.hexlify(u"Kn?del".encode('utf-8'))).decode('utf-8')

回到原始对象.如果正确编码,您可以对中文文本执行相同操作,但是ord(x)已经破坏了您开始的文本.您需要先对其进行编码,然后再将其视为一串字节.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读