删除前导空格后边框不会中断(它只会被覆盖,我可以通过创建其他窗口来解决这个问题)。通常,显示宽度1
和显示宽度2
字符(亚洲字符具有宽度2
)之间以及起始光标位置的奇偶校验之间存在相互作用。如果未满足某些整体奇偶校验,则在其附近打印字符时边界会中断。这是OS X El Captain
,libncurses.5.4.dylib
。在Ubuntu
上,此问题不存在。
wchar_t helloStr[] = L" <asian character1><asian character2>...";
wmove(stdscr, 3, 3);
waddwstr(stdscr, helloStr);
wborder(stdscr, 0, 0, 0, 0, 0, 0, 0, 0);
可以采取哪些措施来解决这个问题?
PS。当我输入实际的中文字符时,Stackoverflow阻止发布。
答案 0 :(得分:1)
文件libncurses.5.4.dylib
是ncurses 5.7.20081102,它相当陈旧(实际上并不像OSX中捆绑的某些软件那么老)。在过去的7年中,对于双倍宽度字符进行了一些修复,例如20140823。
如果您想在OSX上使用ncurses进行开发,最好的方法是安装MacPorts等附加组件。