从unichr获取的UTF-8编码字符串分割

0 投票
3 回答
1227 浏览
提问于 2025-04-15 16:27

我有一组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']

撰写回答