c - 使用 ncurses 在 C 中打印 Unicode 字符

标签 c string gcc unicode ncurses

我必须在 C 中使用 ncurses 绘制一个框;

首先,为了简单起见,我定义了一些值:

#define RB "\e(0\x6a\e(B"  (ASCII 188,Right bottom, for example)

我在 Ubuntu 上使用 gcc 编译,使用 -finput-charset=UTF-8旗帜。

但是,如果我尝试使用 addstr 或 printw 进行打印,则会得到六进制代码。
我做错了什么?

最佳答案

ncurses定义值 ACS_HLINE , ACS_VLINE , ACS_ULCORNER , ACS_URCORNER , ACS_LLCORNERACS_LRCORNER .您可以在 addch 中使用这些常量。和 friend ,这应该会导致您看到预期的框字符。 (还有更多 ACS 字符;您可以在 man addch 中找到完整列表。)
ncurses需要知道它在绘制什么,因为它需要始终准确地知道光标在哪里。输出控制台控制序列不是一个好主意;如果 ncurses 知道如何处理序列,它就有自己的特征抽象,您应该使用该抽象。 ACS(“替代字符集”)定义是这些抽象之一。

关于c - 使用 ncurses 在 C 中打印 Unicode 字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34538814/

相关文章:

c - 打印 size_t : format '%lu' expects argument of type 'long unsigned int'

c - 如何用C生成斐波那契数列

c++ - 异步网络接口(interface)状态检查

c++ - 使用G++编译C++程序时出错

Lua 中的字符串操作/处理,字符串中单词的旋转

java - 在没有 '+' 运算符的情况下替换字符串中的变量

c - 为什么(makefile)构建可以串行工作而不是并行工作,并且模式匹配会导致这样的问题吗?

c - intmax_t 文字的后缀

c - (为什么)正在使用未初始化的变量未定义行为?

javascript - 使用JavaScript检查字符串是否包含日语字符(包括汉字)