【问题标题】:gcc ncurses printing extend characters (glyphs) such as char 223gcc ncurses 打印扩展字符(字形),例如 char 223
【发布时间】:2017-02-15 18:23:26
【问题描述】:

我正在使用 ncurses 为 Raspberry Pi 编写终端程序。我想在一个盒子周围添加一个阴影。我想使用mvaddch() 打印扩展字符,例如 char 233(上半框字符)。 mvaddch() 命令的语法是什么?还是有其他方法可以做到这一点?

【问题讨论】:

    标签: gcc ncurses extended-ascii


    【解决方案1】:

    您可能指的是code page 866 之类的东西。 ncurses 将假定您的终端显示与locale encoding 一致的字符,这可能是UTF-8。所以(除非你想在你的程序中转换字符)要走的路是使用 Unicode 值。

    Unicode 组织具有可用于查找特定代码的表,例如 ftp://ftp.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/PC/CP866.TXT。对于您的示例,相关行是

    0xdf   0x2580   #UPPER HALF BLOCK
    

    (因为 0xdf 是 223)。您将在调用函数 mvaddwstr 时使用 Unicode 0x2580,例如

    wchar_t mydata[] = { 0x2580, 0 };
    mvaddwstr(0,0, mydata);
    

    (同名wadd_wch使用的数据结构更复杂)。

    您必须链接到 ncursesw 库,当然还有 ncurses 手册页中提到的 initialize your program's locale using setlocale

    【讨论】:

      猜你喜欢
      • 2011-01-09
      • 2012-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-18
      相关资源
      最近更新 更多