Здравствуйте! пишу первые программы на Си и столкнулся с такой проблемой -
при использовании библиотеки ncurses терминал упорно не хочет отображать
кириллические символы так как надо.
Пример кода.
/*
Программа печатает стихотворение.
*/
#include <stdio.h>
#include <ncurses.h>
#include <locale.h>
int main ()
{
setlocale(LC_CTYPE, "ru_RU.UTF8");
initscr();
start_color();
init_pair(1, COLOR_RED, COLOR_BLUE);
attron(COLOR_PAIR(1));
move(10,30);
printw("Буря мглою небо кроет, \n\r");
move(11,30);
printw("Вихри снежные крутя. \n\r");
move(12,30);
printw("То как зверь она завоет, \n\r");
move(13,30);
printw("То заплачет, как дитя.\n\r");
move(14,30);
printw(" А.С. Пушкин. \n\r");
getch();
endwin();
}
На экране появляется приблизительно следующее.
�~Q�~C�~@�~O мгло�~N небо к�~@ое�~B
�~Rи�~E�~@и �~Aнежн�~Kе к�~@�~C�~B�~O.
То как зве�~@�~L она завое�~B,
То запла�~Gе�~B, как ди�~B�~O.
�~P.С. �~_�~C�~Hкин
В книге Гриффитса А. Gcc - компилятор GNU нашел такой подход:
#include <locale.h>
#include <libintl.h>
#define PACKAGE "stalker"
#define LOCALEDIR "/usr/share/locale"
int main()
{
setlocale(LC_ALL, "");
bindtextdomain(PACKAGE, LOCALEDIR);
textdomain(PACKEGE);
printf("%s\n", gettext("This string will translate."));
}
Но тогда не понятно какой должен быть пакет (PACKAGE)?
В директорию заглядывал нашел там только модули кириллизации для отдельных программ.
Скажу только что терминал работает по умолчанию в кодировке UTF-8.
Пробовал менять кодировку терминала все безрезультатно.
В чем проблема?
Как сделать чтобы кириллические символы отображались правильно?