我有一个字节类型的数据,像这样:
b"6D4B8BD5"
数据来自使用unicode-escape码的汉字。 它可以这样生成:
'测试'.encode('unicode-escape')
结果:
b'\\u6d4b\\u8bd5'
如何将b“ 6D4B8BD5”转换为b'\ u6d4b \ u8bd5'或 如何将b“ 6D4B8BD5”转换为“测试”?
答案 0 :(得分:1)
unhexlify
是获取字节,然后使用正确的编码进行解码的功能:
>>> from binascii import unhexlify
>>> s = b'6D4B8BD5'
>>> unhexlify(s).decode('utf-16be')
'测试'
答案 1 :(得分:0)
>>> str = b"6D4B8BD5"
>>> chr(int(str[0:4], 16))
'测'
>>> chr(int(str[4:8], 16))
'试'
答案 2 :(得分:0)
返回正确结果并适用于任何字符串的工作解决方案:)
Python 3.x
def convert(chars):
if isinstance(chars, bytes):
chars = chars.decode('ascii')
chars = [''.join(c) for c in zip(chars[::4], chars[1::4], chars[2::4], chars[3::4])]
return "".join([chr(int(c, 16)) for c in chars])
print(convert(b"6D4B8BD5"))
+++++++
#> python test123.py
测试
def convert(chars):
if isinstance(chars, bytes):
chars = chars.decode('ascii')
result = ''
for i in range(len(chars) // 4):
result += chr(int(chars[4 * i:4 * (i + 1)], 16))
return result
print(convert(b"6D4B8BD5"))
++++++++
#> python test123.py
测试