0
我想用XDrawString()
顯示西里爾符號,但在屏幕上它們顯示爲錯誤的編碼。XDrawString不正確的編碼
我已經在我的系統(ubuntu 14.04)中安裝了xfonts-cyrillic
,但仍然從xlsfonts
列表中顯示錯誤的結果。
我的代碼(main.cpp中):
#include <X11/Xlib.h>
#include <string.h>
int main(int, char**)
{
Display *d = XOpenDisplay(0);
Window r = DefaultRootWindow(d);
Window w = XCreateSimpleWindow(d, r, 0, 0, 256, 256, 0, 0, 0xffffff);
GC gc = DefaultGC(d, 0);
XMapRaised(d, w);
XSelectInput(d, w, ExposureMask);
Font font = XLoadFont(d, "9x15-cyrillic");
XSetFont(d, gc, font);
const char *msg = "тут текст"; // cyrillic symbols
while (1)
{
XEvent e;
XNextEvent(d, &e);
XDrawString(d, w, gc, 16, 16, msg, (int) strlen(msg));
}
}
編譯:
g++ -Wall -g -std=c++11 main.cpp -L/usr/lib/X11 -lX11 -o output
我的結果是:
爲什麼在結果窗口中的文字是錯誤的編碼?我錯過了什麼?