我为我的小项目添加了ncursesw支持,现在我可以将各种Unicode字符输出到终端模拟器("终结者"或"gnome-teminal"(。
问题是一些(但不是全部(按字母顺序排列的下标显示为空格!问题下标是:
h,k,l,m,n,p,s,t
(从u2095
到u209C
的连续街区(
下标a,e,i,j,u,v
正确显示。
终端仿真器可以在充分通知时显示这些字符,如命令的输出所证明的那样
echo -e 'u2095'
这些字符甚至可以"粘贴到"终端中,但只能直接粘贴到命令行中,而不是通过 nano 等程序,这让我怀疑 ncurses。
这些下标可以显示吗?
这取决于:根据 Unicode.org,这些字符是在 6.0 中添加的,可能不会出现在所有字体中,而且它们的信息可能不会出现在区域设置表中。 ncurses 使用区域设置表;没有信息的字符将显示为空白。
尽管 6.0 是在几年前发布的,但供应商需要几年时间才能对此类非关键功能进行更新的情况并不少见。
终端仿真器不一定使用区域设置表(除了处理双倍宽度和组合字符的特殊情况(,因此可以看到使用 cat
(不使用区域设置(显示的"正常"(但新(字符,但不能使用文本编辑器等应用程序。