У меня есть список кодовых точек 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?