ncurses(终端仿真器)unicode 不可靠的下标?
ncurses (terminal emulator) unicode unreliable subscripts?
我为我的小项目添加了 ncursesw 支持,现在我可以将各种 unicode 字符输出到终端模拟器("terminator" 或 "gnome-teminal")。
问题是一些(但不是全部)字母下标显示为空格!
问题下标为:
h,k,l,m,n,p,s,t
(从\u2095
到\u209C
的连续块)
下标 a,e,i,j,u,v
显示正确。
终端仿真器可以在得到充分通知后显示这些字符,如
等命令的输出所证明
echo -e '\u2095'
这些字符甚至可以是 "pasted into" 终端,但只能直接到命令行,而不是通过像 nano 这样的程序,这让我怀疑 ncurses。
这些下标可以显示吗??
这取决于:according to Unicode.org,这些字符是在 6.0 中添加的,可能不会出现在所有字体中,它们的信息也可能不会出现在语言环境表中。 ncurses 使用语言环境表;没有信息的字符将显示为空白。
尽管 6.0 was released a few years ago,供应商花费数年时间对诸如此类的非关键功能进行更新的情况并不少见。
终端模拟器不一定使用语言环境表(除了处理双倍宽度和组合字符的特殊情况),所以可能会看到 "normal"(但新的)字符显示为使用cat
(不 使用语言环境),但不用于文本编辑器等应用程序。
我为我的小项目添加了 ncursesw 支持,现在我可以将各种 unicode 字符输出到终端模拟器("terminator" 或 "gnome-teminal")。
问题是一些(但不是全部)字母下标显示为空格! 问题下标为:
h,k,l,m,n,p,s,t
(从\u2095
到\u209C
的连续块)
下标 a,e,i,j,u,v
显示正确。
终端仿真器可以在得到充分通知后显示这些字符,如
等命令的输出所证明echo -e '\u2095'
这些字符甚至可以是 "pasted into" 终端,但只能直接到命令行,而不是通过像 nano 这样的程序,这让我怀疑 ncurses。
这些下标可以显示吗??
这取决于:according to Unicode.org,这些字符是在 6.0 中添加的,可能不会出现在所有字体中,它们的信息也可能不会出现在语言环境表中。 ncurses 使用语言环境表;没有信息的字符将显示为空白。
尽管 6.0 was released a few years ago,供应商花费数年时间对诸如此类的非关键功能进行更新的情况并不少见。
终端模拟器不一定使用语言环境表(除了处理双倍宽度和组合字符的特殊情况),所以可能会看到 "normal"(但新的)字符显示为使用cat
(不 使用语言环境),但不用于文本编辑器等应用程序。