ich versuche mir in der Linux-CLI eine GUI mit pythons curses (ncurses) zu bauen. Das funktioniert auch relativ gut. Aber wenn ich versuche textpad zu benutzen, kann ich keine Umlaute eingeben und bekomme auch keine Umlaute zurück. In der Überschrift funktionieren die Umlaute, nur nicht beim eingeben und auslesen der Eingabe.
Ich hab keine Idee mehr wie ich Umlaute und nicht ASCII-Zeichen in die Textpad-Eingabe bekomme. Hat jemand von euch eine Idee dazu? Vielleicht mache ich ja irgendwas falsch.
Hier ist mein Beispielcode, mit dem ich herum experimentiere:
Code: Alles auswählen
import curses
import curses.textpad
import locale #aus der Doku
locale.setlocale(locale.LC_ALL, '') #aus der Doku
def main(stdscr):
stdscr.clear()
stdscr.refresh()
titel = curses.newwin(3, 60, 5, 10)
titel.box()
titel.addstr(1, 3, "Eingabe mit STRG+G äbbrechen") #test um zu prüfen ob Umlaute in addstr funktionieren
win = curses.newwin(5, 60, 15, 10)
tb = curses.textpad.Textbox(win, insert_mode=True)
titel.refresh()
text = tb.edit() #text hat das was eingetragen wurde
new=tb.gather() #new hat den Inhalt der Textbox
win.addstr(0, 0, text.encode('utf-8'))
result = curses.newwin(5, 60, 20, 10)
result.addstr(1, 0, new)
result.addstr(3, 3, text)
result.refresh()
curses.flash()
win.clear()
win.refresh()
win.getch()
curses.wrapper(main)
print(locale.getpreferredencoding()) #gibt utf-8 aus