在 Python curses 中显示扩展的 Unicode 字符

Displaying extended Unicode characters in Python curses

我正在使用 curses 库编写游戏。我试图显示一些非标准的 Unicode 字符,但遇到了问题。

假设我想显示一个 Unicode 树字符。快速 google 呈现如下内容:

“” (U+1F332)

然而,当我尝试在我的 Python 终端、CMD 或使用 curses a curses window 显示它时,我得到的是:

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

是不是我使用的字体不支持这个字符?有没有办法向 curses 库添加额外的 Unicode 字符?

转义序列\u将以下四个字符(在您的情况下为1F33)解释为16位十六进制表达式,这不是您想要的。由于您的代码点不适合 16 位,因此您需要转义序列 \U 并提供 32 位(八个字符长)的十六进制表达式。

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

(我从你的输出中猜测你正在使用 python 3.)

您的终端编码和字体可能也有问题,但您当前的代码甚至无法做到这一点。