Как заставить ncurses правильно отображать символы UTF-8 в C? - PullRequest
7 голосов
/ 29 марта 2012

У меня есть программа, написанная на C с использованием ncurses.Это позволяет пользователю вводить и отображать его.Неправильно отображается, если пользователь вводил символы utf8.

Я сохранил введенные пользователем символы в файл.И я cat этот файл прямо в Shell, он отображается правильно.

Я искал stackoverflow и google, и попробовал несколько способов, таких как ссылка с ncursesw, отображать неправильно.1008 *: libncurses.so.5 => /usr/lib64/libncurses.so.5

screen может правильно отображать, какой ввод пользователя.

Как заставить ncurses правильно отображать символы UTF-8?

Каков общий способотобразить символы UTF-8 в C с помощью ncurses?

1 Ответ

14 голосов
/ 29 марта 2012

Вам нужно вызвать setlocale(LC_CTYPE, ""); (с настроенным языковым стандартом на основе UTF-8) перед инициализацией ncurses. Вы также должны убедиться, что ваши ncurses действительно собраны с широкой поддержкой char ("ncursesw"), но на современных дистрибутивах это сборка по умолчанию / only.

...