在某些程序(如htop
)中,线条和帧没有正确显示。相反,它们被显示为-
和/
。
但是在另一台机器上,它们被正确地显示为正确的行:
我不知道这是否一个终局问题,或是否需要一些方案。
如果是相关的话:我的系统是Debian,我的解释器是bash
,我的终端模拟器是gnome-terminal
。
发布于 2016-04-16 22:27:19
奇怪的是,htop
使用ncurses,它可以用/不使用Unicode绘制线条。然而,看看CRT.c
中的源代码,就会看到这样的解释:
#ifdef HAVE_LIBNCURSESW
if(strcmp(nl_langinfo(CODESET), "UTF-8") == 0)
CRT_utf8 = true;
else
CRT_utf8 = false;
#endif
CRT_treeStr =
#ifdef HAVE_LIBNCURSESW
CRT_utf8 ? CRT_treeStrUtf8 :
#endif
CRT_treeStrAscii;
const char *CRT_treeStrUtf8[TREE_STR_COUNT] = {
"\xe2\x94\x80", // TREE_STR_HORZ ─
"\xe2\x94\x82", // TREE_STR_VERT │
"\xe2\x94\x9c", // TREE_STR_RTEE ├
"\xe2\x94\x94", // TREE_STR_BEND └
"\xe2\x94\x8c", // TREE_STR_TEND ┌
"+", // TREE_STR_OPEN +
"\xe2\x94\x80", // TREE_STR_SHUT ─
};
然而,ncurses (任何诅咒实现)都有可移植的符号,这些符号不依赖于编码是否为UTF-8。一些应用程序(例如对话框's --ascii-lines
选项)提供了一个使用ASCII行图的选项,但是一个甚至不尝试使用ncurses中提供的行图的应用程序并不能有效地利用库。
简而言之,当您遇到这样的程序时,您应该将其作为一个bug向开发人员报告。
进一步读:
https://unix.stackexchange.com/questions/97688
复制相似问题