【发布时间】:2016-07-29 10:19:09
【问题描述】:
我最近安装了新的 Windows 10 build 14393,我想使用新的 linux 子系统。所以我决定学习ncurses,但我找不到如何从getch 获得带有è 之类的重音字符的UTF-8 代码。
所以这是我的代码:
#include <iostream>
#include <string>
#include <curses.h>
using namespace std;
int main(int argc, char **argv)
{
char ch;
setlocale(LC_ALL, "fr_FR.UTF-8");
initscr();
cbreak();
noecho();
printw("èèè\n"); // i can print accents
ch = getch(); // if i press è it gives me 2 characters
printw("%d", ch);
ch = getch();
printw("%d", ch);
getch(); // wait for a key to exit
endwin();
return 0;
}
例如,如果我按è,它会给我两个字符代码,即-61 和-88,那么我如何从UTF-8 表中获得它的代码232?
我使用 ncursesw,这是我要编译的 g++ 命令:
g++ file.cxx -o file -lncursesw
我的语言环境配置为 fr_FR.UTF-8。 感谢您的任何回答。
【问题讨论】:
-
long story,简而言之 utf8 将不同的代码点编码为 1 个或多个字节的序列。