让我们以字符Latin Capital Letter a with Ogonek (U+0104)为例。
我有一个int表示它的utf-8编码形式:
my_int = 0xC484
# Decimal: `50308`
# Binary: `0b1100010010000100`
如果使用
unichr
函数,我得到:\uC484
或쒄
(u+c484)但是,我需要它输出:
Ą
如何将
my_int
转换为Unicode码位? 最佳答案
要将整数0xC484
转换为bytestring(unicode字符的utf-8表示形式),可以使用'\xc4\x84'
:
>>> import struct
>>> struct.pack(">H", 0xC484)
'\xc4\x84'
…其中,format string中的
Ą
表示big endian,而struct.pack()
表示unsigned short int。一旦有了UTF-8字节串,就可以像往常一样将其解码为Unicode:
>>> struct.pack(">H", 0xC484).decode("utf8")
u'\u0104'
>>> print struct.pack(">H", 0xC484).decode("utf8")
Ą