[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 to do rozwiązania? Oczywiście, ale konieczne jest do instalowanie nakładki ncursesw. Aby zacząć korzystać z ncursesw należy ją doinstalować, dołączyć nagłówek #include <ncursesw/ncurses.h>
oraz w funkcji (przed zainicjalizowaniem initscr()) zainicjować funkcję setlocale. Funkcja setlocale powinna zostać zainicjowała z odpowiednim identyfikatorem locale - dla polskich znaków będzie to 'pl_PL.UTF-8'.
Instalacja ncursesw
Instalacja na:
- 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 ncurses 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