Я хочу сделать небольшую программу с помощью ncurses / python и иметь возможность использовать / печатать на французском и японском языках. Я понимаю, что должен установить язык и использовать стандарт Unicode.
Но как бороться с результатом из screen.getch ()? Я хотел бы отображать напечатанный символ в окне ncurses независимо от языка.
Я понимаю, что необходимо некоторое преобразование в Юникод, но не могу найти, что делать (и я довольно долго искал: это дело преобразования символов нелегко понять любителям).
Дополнительный вопрос: кажется, что для символов, отличных от ascii, мы должны использовать addstr () вместо addch (). Точно так же я должен использовать getstr () вместо getch ()?
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import curses
from curses import wrapper
import locale
locale.setlocale(locale.LC_ALL, '')
def main(scr):
# Following lines are some sort of "proof of concept"
# Indeed it print latin or japanese characters allright
scr.addstr(0, 0, u'\u3042'.encode('utf-8')) # print あ
scr.addstr(1, 0, 'é'.encode('utf-8')) # print é
# But here I would like to type in a character and have it displayed onscreen
while (True):
car = scr.getch()
if car == 27: # = Escape key
break
else:
# What should I put between those parenthesis to
# print the typed character on the third line of the screen
scr.addstr(3, 0, ???? )
wrapper(main)