PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Java - Umlaute stimmen nicht


ooAlbert
2007-11-23, 09:08:16
Hi,

ich hab eine Konsolenanwendung in Java geschreiben und hab jetzt das Problem, das die Umlaute nicht korrekt dargestellt werden. Scheinbar werden die schon beim einlesen von der Tastatur falsch interpretiert.

Wie kann man das korrigieren?

Shink
2007-11-23, 11:54:50
Kann das die übliche "char" vs. "byte"-Problematik sein? ("byte" ist ja Maschinen/Sprachen/etc. abhängig; "char" ist Unicode und wenn man es mischt bekommt man beliebigen Schwachsinn raus)

Vielleicht kannst du mal etwas Code posten, damit wir wissen was du da treibst.

Gast
2007-11-23, 12:51:22
Grundsätzlich habe ich das eigentlich immer - egal ob Java, C++, Python, etc.. alles was auf meiner Konsole unter Windows rauskommt, hat keine korrektne Umlaute.

Habe da für Python zwar schon Lösungen gesehen, aber meist waren mir Umlaute für den unwichtigen Kram, der auf der Konsole rauskommt, sowieso nicht so wichtig... :)

astro
2007-11-23, 13:06:13
Deine Problembeschreibung ist etwas ungenau, aber wenn es nur um die Ausgabe auf der Konsole geht, hilft dir vielleicht das weiter:

Tabelle 2.1 (http://www.galileocomputing.de/openbook/javainsel6/javainsel_02_001.htm)
Statt
System.out.println("Hallö");
schreibst Du dann entsprechend
System.out.println("Hall\u00f6");

astro
kein Glückskind mehr ;(

ooAlbert
2007-11-23, 15:30:30
nagut das würde helfen, wenn ich etwas bewust ausgebe aber wie ist es wenn etwas eingelesen wird über den bufferreader, da weiß ich es ja nie vorher was kommt ?

Ectoplasma
2007-11-23, 17:35:37
Du musst unter Windows eine Console-Anwendung mit dem VM Parameter -Dfile.encoding=CP850 starten ;)

Dann sollte es auch mit den Umlauten klappen. Den Code selbst zu modifizieren, ist nicht besonders schön.

Nachtrag: Es gibt auch diverse andere Encodings.

UTF-8
ISO-8859-1
ASCII
UNICODE

Einfach mal diese Encodings ausprobieren und schauen, was auf der Console passiert. Ist sehr anschaulich.