c - 带有 ncurses 的 C99 UTF8 字符
问题描述
我正在玩,ncurses
遇到了问题。我想用 Unicode 块字符 (U+2588, █) 绘制一个简单的框,但我无法让它正确显示:
如您所见,我想要的字符显示为~H
.
我按照类似问题的说明进行了发球。最小的工作示例:
#include <locale.h>
#include <ncurses.h>
int main() {
setlocale(LC_ALL, ""); // must be caled before initscr
WINDOW *win = initscr();
int w, h;
getmaxyx(win, h, w);
// should fill the left half of the
// terminal window with filled block characters
int i, j;
for (i = 0; i < h; i++) {
for (j = 0; j < w/2; j++) {
mvaddch(x, y, L'\u2588');
}
}
refresh(); // show changes
getch(); // wait for user input
endwin(); // kill window
return 1;
}
编译:
gcc main.c -o main -std=c99 -lncurses
我的 PC 语言环境是en_US.UTF-8
,并且我使用的是完全能够显示 utf8 的吸盘终端:
这是一个非常简单的程序,我不确定这里出了什么问题。有什么建议么?
解决方案
推荐阅读
- c - 使用 SSE 和/或 AVX 有条件地翻转浮动符号
- java - Netbeans 的项目属性中缺少打包
- r - 我可以在不使用 apply 的情况下附加这个字符向量吗?
- heroku - 在 Heroku,Phaser 2 上部署后未加载文件
- python - 如何编写一个将运算符放在数字之间的函数?
- node.js - 如何在 azure 中使用 docker-compose 部署 graphql API
- windows - 使用 MSVC 工具生成裸机二进制文件的过程是什么?
- python - tkinter 中的按钮 - 单击时:显示其背后的内容
- python - 为什么 Python 不从封闭变量范围切换到局部变量范围?
- python - Django 静态文件有时加载,有时不加载