【发布时间】:2011-10-10 00:54:45
【问题描述】:
我有一个由具有该功能的 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 字符串。
非常感谢您!
【问题讨论】: