Hallo Kuerbis,
unter Windows ist entscheidend, welches Encoding in der Konsole eingestellt ist. Dein Programm liefert den Codepoint des durch den Tastendruck (je nach Tastaturlayout) erzeugten Zeichen in der aktuellen Codepage zurück.
Das Encoding stellst Du z.B. mit
chcp 1252 auf Windows-ANSI um. Standard ist in der Windows-Konsole 850. Damit bei anderen Encodings Zeichen in der Windows-Konsole korrekt ausgegeben werden, musst Du die Schriftart z.B. auf
Lucida Console umstellen.
Beispiel:
Ein
ä ist bei Einstellung cp850
0x84, bei Einstellung cp1252
0xe4.
Das funktioniert z.B. auch mit einem kyrillischen Tastaturlayout und cp1251.
Mit cp65001 (UTF-8) funktioniert es leider nicht: Zeichen jenseits von ASCII ergeben
0x00.
Unter Linux habe ich es nicht ausprobiert. Da dort das Standardencoding der Shell UTF-8 ist, hätte ich Hoffnung, dass es geht.
HTH
Grüße
payx
PS: Hoppla, ich sehe erst jetzt, dass Du ja explizit nach Linux gefragt hattest. Da wird Dich meine Windows-bezogene Antwort vielleicht nicht interessieren, sorry.
Editiert von payx: PS
Last edited: 2013-07-12 11:51:32 +0200 (CEST)