我有一组存储为整数的unicode代码点,我想将它们编码为UTF-8.如果我理解正确的话,UTF-8只是一种整数编码(尤其是用于unicode的事实对UTF-8来说并不是最基本的),所以这应该只是在UTF-8编码中编码一个整数的问题.是否有一个标准的实用程序来实现这一点,如果没有,是否有一种简单的手动实现方法?
我有一组存储为整数的unicode代码点,我想将它们编码为UTF-8.如果我理解正确的话,UTF-8只是一种整数编码(尤其是用于unicode的事实对UTF-8来说并不是最基本的),所以这应该只是在UTF-8编码中编码一个整数的问题.是否有一个标准的实用程序来实现这一点,如果没有,是否有一种简单的手动实现方法?
有一个简单的方法.如果在windows上,由于平台限制,超过UTF-16LE字符可能会遇到问题.在linux上,使用完整的unicode应该是安全的.
>>> my_unicode_codepoints = [1234, 2345, 3456, 4576] # example codepoints
>>> [chr(i) for i in unicode_codepoints] # step 1: use python automagic for casting to wide enough chars
['Ӓ', 'ऩ', '\u0d80', 'ᇠ']
>>> "".join([chr(i) for i in unicode_codepoints]) # step 2: join to string
'Ӓऩ\u0d80ᇠ'
>>> "".join([chr(i) for i in unicode_codepoints]).encode("utf-8") # step 3: encode your string
b'\xd3\x92\xe0\xa4\xa9\xe0\xb6\x80\xe1\x87\xa0'
最后一行是您要查找的结果.