[C++] ncurses Unicode / UTF-8 / polskie znaki
Trafiłeś na ten artykuł, ponieważ zapewne masz problem z polskimi znakami diakrytycznymi przy pracy z biblioteką ncurses. Czy jest na to sposób? Oczywiście, z pomocą przychodzi nakładka ncursesw. Aby zacząć korzystać z ncursesw należy ją najpierw doinstalować. Gdy ncursesw jest już w systemie należy dołączyć do programu nagłówek <ncursesw/ncurses.h>
oraz przed zainicjalizowaniem initscr() zainicjować setlocale. Funkcja setlocale powinna zostać zainicjowana z odpowiednim identyfikatorem locale - dla polskich znaków będzie to 'pl_PL.UTF-8'.
Instalacja ncursesw
Instalacja w:
- Debian/Ubuntu: apt-get install libncurses5-dev libncursesw5-dev
- Fedora 21/CentOS: yum install ncurses-devel
- Fedora 22: dnf install ncurses-devel
Przykład użycia ncursesw z UTF-8
#include <clocale>
#include <ncursesw/ncurses.h>
#include <string.h>
int main() {
setlocale(LC_ALL, "pl_PL.UTF-8");
int row, col;
initscr();
getmaxyx(stdscr,row,col);
mvprintw((row - 3) / 2, (col-strlen("Polskie znaki diakrytyczne:") - 6) / 2, "%s", "Polskie znaki diakrytyczne:\n\n");
mvprintw(row / 2, (col-strlen("ĄĘŁÓŚĆŻŹ ąęłóśćżź")) / 2, "%s", "ĄĘŁÓŚĆŻŹ ąęłóśćżź");
getch();
endwin();
return 0;
}
Komentarze
Prześlij komentarz
Dzięki za komentarz!