[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

Popular

[HTML] Jak wstawić obrazek?

[PHP|HTML] Odświeżenie strony

[PHP] Jak sprawdzić typ zmiennej?