将unicode码点转换为python中的UTF8十六进制

16 投票
6 回答
37669 浏览
提问于 2025-04-15 11:36

我想把从文件中读取的一些unicode编码转换成UTF8编码。

比如,我想把字符串 'FD9B' 转换成字符串 'EFB69B'

我可以手动用字符串字面量来做到这一点,像这样:

u'\uFD9B'.encode('utf-8')

但是我不知道怎么通过编程的方式来实现这个转换。

6 个回答

3
data_from_file='\uFD9B'
unicode(data_from_file,"unicode_escape").encode("utf8")

当然可以!请把你想要翻译的内容发给我,我会帮你把它变得简单易懂。

4

这是一个完整的解决方案:

>>> ''.join(['{0:x}'.format(ord(x)) for x in unichr(int('FD9B', 16)).encode('utf-8')]).upper()
'EFB69B'
24

使用内置的 chr() 函数可以把数字转换成字符,然后再进行编码:

>>> chr(int('fd9b', 16)).encode('utf-8')
'\xef\xb6\x9b'

这就是字符串本身。如果你想把字符串转换成 ASCII 十六进制格式,你需要逐个字符地转换,每个字符 c 可以用 hex(ord(c)) 或类似的方法来转换。

注意:如果你还在用 Python 2,可以用 unichr() 来代替。

撰写回答