Rob*_*ert 5 python unicode hex
我有一个由具有该函数的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"...")
Run Code Online (Sandbox Code Playgroud)
这将返回一个像这样的字符串:
"80547CFB4EBA5DF15B585728"
Run Code Online (Sandbox Code Playgroud)
这是一个由6个中国符号组成的序列.
但
u"Knödel"
Run Code Online (Sandbox Code Playgroud)
转换为
"4B6EF664656C"
Run Code Online (Sandbox Code Playgroud)
我现在需要的是将其转换回原始unicode的功能.中文符号似乎具有2字节表示,而第二个示例具有所有字符的1字节表示.所以我不能只为每个1或2字节块使用unichr().
我已经试过了
binascii.unhexlify(hex_str)
Run Code Online (Sandbox Code Playgroud)
但这似乎逐字节转换并返回一个字符串,而不是unicode.我也试过了
binascii.unhexlify(hex_str).decode(...)
Run Code Online (Sandbox Code Playgroud)
不同的格式.从来没有得到原始的unicode字符串.
非常感谢你提前!
这似乎工作得很好:
\n\nbinascii.unhexlify(binascii.hexlify(u"Kn\xc3\xb6del".encode(\'utf-8\'))).decode(\'utf-8\')\nRun Code Online (Sandbox Code Playgroud)\n\n回到原来的对象。如果编码正确,您可以对中文文本执行相同的操作,但是ord(x)已经破坏了您开始的文本。您需要先对其进行编码,然后才将其视为字节字符串。
| 归档时间: |
|
| 查看次数: |
14116 次 |
| 最近记录: |