如何使 ACS 变量显示在终端上

How to make ACS variables display on terminal

有没有办法强制在终端中显示来自 ncurses 的 ACS 变量? 在 urxvt 和文本模式下,一切都显示良好,但在其他终端上(我在 xfce4-terminal、xterm、gnome-terminal 上测试过)总是有问题。我想我对此无能为力,但我看到在 alsamixer 中一切都正确显示。我在 alsamixer 代码中为此循环并看到他们使用完全相同的方法来显示这些字符,例如

addch(ACS_RARROW);

在同一个终端上给他们 this result while same command gives me this。

在您的区域设置使用 UTF-8 的终端上(您可以通过 locale 命令显示的值的命名约定看到这一点),您必须这样做:

  • compile/link 与 ncursesw
  • initscr 之前初始化语言环境,例如,

    setlocale(LC_ALL, "");

请参阅 addch 手册页的 Initialization section of the ncurses manual, as well as the Line Graphics 部分。