如何在终端上显示ACS变量

时间:2017-11-05 10:52:44

标签: c++ ncurses xterm urxvt

有没有办法强制在终端中显示来自ncurses的ACS变量? 在urxvt和text-mode上一切都很好,但在其他终端上(我在xfce4-terminal,xterm,gnome-terminal上测试)总是有问题。我觉得我对此无能为力,但我发现在alsamixer中一切都正常显示。我在alsamixer代码中为此循环,并看到他们使用exacly相同的方法来显示这些字符,例如

addch(ACS_RARROW);

给他们this结果,而同一命令在同一终端上给我this

1 个答案:

答案 0 :(得分:0)

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

  • 使用 ncursesw
  • 编译/链接
  • initscr之前初始化语言环境,例如,

    setlocale(LC_ALL,"");

请参阅ncurses手册的Initialization部分以及addch手册页的Line Graphics部分。