【发布时间】:2020-06-20 15:38:21
【问题描述】:
我需要将包含未编码原始 unicode 数据的字节数组转换为 unicode 字符串,例如unicode \u2167 代表罗马数字 8:
print(u'\u2167')
Ⅷ
将此信息存储在字节数组中,我需要找到一种方法将其转换回 unicode。从例如解码'utf8' 显然不起作用:
b = bytearray([0x21,0x67])
print(b.decode('utf8'))
!g
有什么想法吗?
编辑
@Luke 的评论让我走上了正轨。显然,原始数据(不是我在这里展示的简化数据)被编码为 UTF-16le。数据是从 wxpython TextDataObject 获得的。 wxpython 内部通常使用 unicode。这就是让我认为我正在处理 unicode 数据的原因。
【问题讨论】:
-
我认为我们没有足够的信息来帮助您。您只给出了数据的两个字节:是否所有字符都使用两个字节对表示?如果您编写
print(b.decode("utf-16be")),您的单字符示例可以正确解码,但只有在整个数据中使用 UTF-16BE 时,它才会更普遍。
标签: python python-3.x unicode encoding