# Keine Umlaute im Dos Fenster



## tuttle64 (2. Okt 2012)

Wenn ich folgende Anweisung innerhalb von Eclipse laufen lassen, dann werden die Umlaute korrekt ausgegeben. 


```
System.out.println("Umlaute: äöü");
```

Rufe ich die Klasse direkt über ein Konsolenfenster auf, erscheint



> Umlaute: õ÷³



Wie kriege ich es hin, dass die Umlaute richtig erscheinen?


----------



## TryToHelp (2. Okt 2012)

Hi,
ich meine man kann bei Strings bei der Erstellung angeben in welchem Format sie sind. Und dann müsste es gehen.


```
String myString=new String(utf8, "UTF-8");
```

String()

Wenn du da dann den richtigen Charset angibst müsste es richtig ausgegeben werden.


----------



## Ikaron (2. Okt 2012)

Ich geh einfach mal davon aus, dass das nicht geht.. Sonst könntest du einfach alle Symbole von 0-255 ausgeben im Fenster und dir dann eine Art Lookup-Table schreiben, immer mit nem char z.B. 'ä' als key und einem char, der in der Kommandozeile als 'ä' ausgegeben wird.. Ist es aber IMHO nicht wert. Sonst könntest du dir noch eine eigene Konsole programmieren, mit JFrame, JTextArea usw.. Ist aber dadurch nicht mit allem kompatibel, da manche ja System.out verwenden, und das kann man ja nicht so leicht umlenken (€dit: Tatsache, die lassen sich leicht umstellen)

TryToHelp: Deine Lösung funktioniert nicht mit UTF-8 - Das wird dann als "?" dargestellt..


----------



## bone2 (2. Okt 2012)

windows standard console kann nur ASCII?!
windows powershell kann mehr


----------



## TryToHelp (2. Okt 2012)

Ich kann dem String ja auc als Format ASCII mitgeben, dann sollte die Ausgabe bei der normalen Konsole alo corecct sein.

Sie mögliche charsets


----------



## bone2 (2. Okt 2012)

was macht er dann? ü weglassen? ausgabe von utf8 geht nicht correct in ascii


----------



## tuttle64 (2. Okt 2012)

Das Problem ist hier nicht Java, sondern bei jeder Software, die Output über die Konsole generiert z.B. den Oracle Listener mit der Eingabe status:



> hat 1 Handler f³r diesen Dienst...



Ist ja echt ätzend! Ich werde es einmal mit der PowerShell versuchen und berichten.


----------



## troll (2. Okt 2012)

CMD.exe und auch die PowerShell laufen beide mit CP850 ... windows verwendet CP1252 ... und java nun mal UTF-8 ... ergo : ENCONDING FEHLER !

es ist NICHT möglich utf-8 sonderzeichen *was der compiler aus "äöü" macht* korrekt auf nem win-terminal auszugeben ...


----------



## bone2 (2. Okt 2012)

font geändert und





soviel zu nicht möglich


----------



## tuttle64 (2. Okt 2012)

bone2 hat gesagt.:


> font geändert und
> 
> 
> 
> ...



Innerhalb von Java klappt es mit UTF-8 und chcp 65000. Schön wäre es, wenn es bei anderen Programmen auch funktioniert zB. bei Oracle erhalte ich mit status beim  lsnrctl.exe immer noch



> Der Befehl wurde erfolgreich ausgefⁿhrt.



Sofern ich eine Lösung finde, werde ich diese hier posten.


----------



## bone2 (2. Okt 2012)

probier mal 65001, das oracle nutzt wohl ein anderes encoding

Code page - Wikipedia, the free encyclopedia

bzw öffnet oracle seine console selber, oder machst du sei vorher auf und startest dann oracle in der console? (nach chcp xy)


----------



## tuttle64 (2. Okt 2012)

bone2 hat gesagt.:


> probier mal 65001, das oracle nutzt wohl ein anderes encoding
> 
> Code page - Wikipedia, the free encyclopedia
> 
> bzw öffnet oracle seine console selber, oder machst du sei vorher auf und startest dann oracle in der console? (nach chcp xy)



Es handelt sich um Oracle Express. Die Konsole öffne ich selbst, dann gebe ich chcp 65001 und starte dann lsnrctl. Ich wollte damit nur ein Beispiel aus einem Buch "Oracle Express Edition" von S. Heitsiek nachvollziehen. Mit status in lsnrctl sieht man, ob der Oracle Listener gestartet ist. Klar, den Service sieht man auch über Verwaltung -> Dienste.

Leider hat chcp 65001 auch nicht weitergeholfen.



> Die folgenden Vorgõnge sind m÷glich.



Das Problem ärgert mich schon seit Langem. Seit ich mit Oracle mit der Kommandozeile arbeite, möchte ich es gerne fixen. Das Problem ist ja, dass die Konsole den Zeichensatz von DOS und nicht ASCII benutzt. S*ss DOS.


----------



## bone2 (4. Okt 2012)

und lsnrctl startest du aus diesem konsolenfenster herraus?
oracle schreibt dann das falsch codierte in die gleiche offene mit java funktionierende konsole?

eventuell setzt oracle auch einfach, weil es windows erkennt irgendein encoding


----------

