Отображение расширенных символов Юникода в Python curses - PullRequest
0 голосов
/ 28 октября 2018

Я пишу игру, используя библиотеку curses.Я пытаюсь отобразить некоторые нестандартные символы Юникода, и там я столкнулся с проблемой.

Допустим, я хочу отобразить символ дерева Unicode.Быстрый Google отображает что-то вроде этого:

«?» (U + 1F332)

Однако, когда я пытаюсь отобразить это в моем терминале Python, CMD или используя curses окно проклятий, всеget is this:

In: u'\u1F332'
Out: 'ἳ2' 

Это потому, что шрифт, который я использую, не поддерживает этот конкретный символ?Есть ли способ добавить дополнительные символы Unicode в библиотеку curses?

1 Ответ

0 голосов
/ 28 октября 2018

escape-последовательность \u интерпретирует следующие четыре символа (в вашем случае 1F33) как шестнадцатеричное 16-битное выражение, что не то, что вам нужно.Поскольку ваша кодовая точка не умещается в 16 битов, вам нужна escape-последовательность \U и предоставить шестнадцатеричное выражение длиной 32 бита (восемь символов).

In [1]: '\U0001F332'                                                            
Out[1]: '?'

(из ваших выводов я догадываюсь, что выиспользуя python 3.)

У вас также могут быть проблемы с кодировкой терминала и шрифтом, но текущий код не позволяет вам даже добраться до этой точки.

...