从unichr获取的UTF-8编码字符串分割
我有一组Unicode数字,我需要把它们转换成UTF-8格式,然后把结果分成十六进制的值打印出来。
比如:Unicode 0x80应该转换成UTF-8,然后打印成(0xc2,0x80)。
我尝试了以下方法:
str(unichr(0x80).encode('utf-8')).split(r'\x')[0]
但是结果是分成了['c2','80'],但我得到的是['\xc2\x80']。
我需要这个来生成代码。
3 个回答
1
你试着用 \x
来分割字符串,但 \x
在这个字符串里并不存在。\xc2\x80
只是你屏幕上显示的转义码(就像 \n
代表换行一样)。我觉得你想要的是这个:
print hex(ord(unichr(0x80).encode('utf-8')[0]))
2
你想要这样的效果吗?可以通过列表推导式来实现。
>>> ["%x"%ord(x) for x in unichr(0x80).encode('utf-8')]
['c2', '80']
2
要生成你UTF8编码字符串中字符的十六进制值列表,可以使用下面的代码:
>>> [hex(ord(x)) for x in unichr(0x80).encode('utf-8')]
['0xc2', '0x80']