首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >终端:显示特殊字符

终端:显示特殊字符
EN

Unix & Linux用户
提问于 2013-10-26 11:46:15
回答 1查看 35.2K关注 0票数 17

在某些程序(如htop )中,线条和帧没有正确显示。相反,它们被显示为-/

但是在另一台机器上,它们被正确地显示为正确的行:

我不知道这是否一个终局问题,或是否需要一些方案。

如果是相关的话:我的系统是Debian,我的解释器是bash,我的终端模拟器是gnome-terminal

EN

回答 1

Unix & Linux用户

发布于 2016-04-16 22:27:19

奇怪的是,htop使用ncurses,它可以用/不使用Unicode绘制线条。然而,看看CRT.c中的源代码,就会看到这样的解释:

代码语言:javascript
运行
复制
#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;

CRT_treeStrUtf8值是

代码语言:javascript
运行
复制
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向开发人员报告。

进一步读:

  • 线条图 (ncurses手册页)
  • border,wborder,box,hline,whline,vline,wvline,mvhline,mvwhline,mvvline,mvwvline-create诅咒边框,水平线和垂直线
  • 对话框截图 (不需要使用UTF-8编码来使用行图)
票数 5
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/97688

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档