[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

Popular

[C++] Jak obliczyć pole i obwód trapezu?

[HTML] Jak wyśrodkować tekst?

[PHP] Jak pobrać adres strony?