【发布时间】:2019-02-12 06:56:24
【问题描述】:
我有一个 UTF-16 代码点列表,我需要将其转换为它们以编程方式表示的实际字符。这在 Python 3 中似乎很难做到。
例如,我有一个字符的数字 55357 和 56501,我知道这是钞票表情符号:????但我不知道如何在 Python 中转换它。我第一次尝试chr(55357) + chr(56501),但 Python 似乎认为它是 UTF-8 编码的,因此给了我损坏的 Unicode。
然后我尝试重新编码该字符串,但由于它已损坏 UTF-8,它给了我似乎已损坏的 UTF-16。如果我告诉它不要管它(chr(55357) + chr(56501)).encode('utf-8', 'surrogatepass'),我实际上可以获得字符的有效字节,但它被编码在... CESU-8 中,原因我还不能理解。这不是 Python 原生支持的编码,我找不到可以转换它的编解码器。
我想我可以将这些写入磁盘,然后用正确的编码读取它们,但这听起来真的很糟糕。
在 Python 3 中是否有合理的方法来做到这一点?
【问题讨论】:
标签: python python-3.x utf-16