ncurses.h扩展字符在c中无法正确显示

问题描述 投票:0回答:1

我正在尝试通过使用ncurses扩展字符来美化我的程序。但是,其中一些显示为问号:⍰。当我尝试诸如以下功能时会发生这种情况:

addch(ACS_S1);
addch(ACS_LANTERN);
addch(ACS_S3);

依此类推。任何帮助,将不胜感激。

#include <ncurses.h>

int main()
{
  initscr();

  addch(ACS_S1);
  addch(ACS_S3);
  addch(ACS_S7);
  addch(ACS_S9);
  addch(ACS_LANTERN);

  refresh();
  getch();
  endwin();

  return 0;
}

编辑:我忘记添加代码示例。所以这次我加了编辑:我正在使用Ubuntu来编译我的代码

c ncurses
1个回答
0
投票

您忘了tell ncurs的语言环境是什么(如果您未使用ncursesw进行编译/链接,仍然会有limitations):

该库使用调用程序已初始化的语言环境。通常用setlocale

完成

setlocale(LC_ALL, "");

如果未初始化语言环境,则库将假定字符可以按照ISO-8859-1进行打印,以与某些旧版程序配合使用。您应该初始化语言环境,而不要依赖于未设置语言环境的库。

© www.soinside.com 2019 - 2024. All rights reserved.