Я пишу приложение ncurses с Rust.
Я хочу, чтобы пользователь мог вводить символы Юникода (UTF-8). Помимо вывода их на экран, я собираюсь создать строку поиска из символов.
Вот минимальный пример:
use ncurses::*;
fn main() {
initscr();
loop {
let input = get_wch();
match input.unwrap() {
WchResult::Char(ch) => {
match ch {
27 => break,
_ => { mvaddstr(0, 0, &format!("spam {}", ch)); }
}
},
WchResult::KeyCode(code) => { mvaddstr(0, 0, &format!("eggs {}", code)); }
}
}
endwin();
}
Мне сказали, что если я хочу прочитать UTF- 8 символов, я должен использовать get_wch()
, однако при вводе ć
выводится ~G
. Для символов ASCII выводится spam <ch>
.
Как правильно обрабатывать Unicode в приложении ncurses?