Input/Output Konsole gibt trotz printf keine Umlaute aus

Tosty

Mitglied
Guten Tag,
ich bin momentan dabei Java zu lernen (mit Hilfe eines Buches also kein Studium oder so) und behandle gerade das Thema Ein-/ und Ausgabe. Ich nutze zunächst zum Erlernen auch kein Hilfsprogramm wie Eclipse sondern codiere mit Notepad++. Jetzt ist im Buch erklärt wie ich in der Konsole, mit Hilfe der printf Methode aus der Klasse Console, Umlaute ausgeben kann.
Nun habe ich folgenden Code wie mir beschrieben verwendet:
Java:
import java.io.Console;

public class Bildschirmausgabe {
    public static void main(String[] args) {
        Console cons = System.console();
        cons.printf("Grüße");
    }
}

Trotz dessen bekomme ich in der Konsole anstatt ü und ß nur die seltsame Zeichenfolgen raus die ich auch bei System.out.print bekäme.

Kann mir jemand sagen was ich falsch mache und mir weiterhelfen?

Vielen Dank im voraus

Tosty
 
Ich glaube ich habe gerade gefunden was du meinst. Bei Notepad++ ist ne Einstellung wo die Kodierung ist auf "UTF-8 ohne BOM" gestellt. Sollte ich das vllt umstellen? Wenn ja was muss ich nehmen?
 
Zuletzt bearbeitet:
Hab jetzt mal UTF-8 eingestellt und versucht zu kompilieren. Dann kommt folgende Fehlermeldung:
 

Anhänge

  • Console.png
    Console.png
    4,3 KB · Aufrufe: 58
Da scheint das BOM noch in der Datei enthalten zu sein. Es müsste helfen, die Datei mit Notepad++ zu öffnen (dann steht das Encoding vermutlich auf UTF-8 BOM), das Encoding auf UTF-8 zu ändern und die Datei wieder zu speichern.
Man kann das BOM im Konsolenfenster sehen, wenn man sich die Datei mit dem Befehl type anzeigen lässt.
 
Da scheint das BOM noch in der Datei enthalten zu sein. Es müsste helfen, die Datei mit Notepad++ zu öffnen (dann steht das Encoding vermutlich auf UTF-8 BOM), das Encoding auf UTF-8 zu ändern und die Datei wieder zu speichern.
Man kann das BOM im Konsolenfenster sehen, wenn man sich die Datei mit dem Befehl type anzeigen lässt.
Danke für die Antwort. Ich habe gerade nachgeguckt und verstanden was du meinst. Jetzt hab ich aber immer noch das Problem, dass ich ja eigentlich in der Konsole Umlaute ausgeben können will (wie das ü und das ß bei "Grüße"). Wenn ich also UTF-8 ohne BOM auswähle, kann ich die Datei zwar kompilieren aber die Umlaute werden nicht korrekt angezeigt. Wenn ich aber einfach nur UTF-8 nehme kann ich es gar nicht erst kompilieren.
Wie kann ich dieses Problem umgehen, bzw. lösen?
 
np.PNG
Das sind die Voreinstellungen bei Notepad, diese sind auch so zu belassen.
(Nichtsdestotrotz sollte es natürlich auch mit ANSI.. usw.. funktionieren.)
 
Ich habe jetzt mal ein notepad++-Update installiert. In meiner Version enthielt das Encoding "UTF-8" nämlich kein BOM und es gab weitere UTF-8-Encodings mit BOM. Das ist jetzt offenbar genau anders herum. Jetzt enthält "UTF-8" demnach ein BOM und man muß "UTF-8 ohne BOM" wählen, wenn man keines möchte.

Du könntest das Encoding beim Kompilieren mit angeben: javac -encoding utf8 Test.java

Oder du benutzt ein Encoding, bei dem das nicht nötig ist. Auf meinem Rechner funktioniert das z.B. mit ANSI. Ich weiß aber nicht, ob das generell die beste Einstellung ist.
 
Man muß bei den Encodings im notepad++ offenbar auch etwas aufpassen, welche Bezeichnungen man verwendet, denn in der Statuszeile wird es so angezeigt, wie es früher auch im Menü stand. Jetzt sind es unterschiedliche Bezeichnungen (siehe rote Markierungen im Screenshot). In meinem vorigen Posting habe ich mich auf die Bezeichnungen im Menü bezogen.
 

Anhänge

  • npp.png
    npp.png
    77,7 KB · Aufrufe: 45
Du könntest das Encoding beim Kompilieren mit angeben: javac -encoding utf8 Test.java
Oh mein Gott Danke! Mit dem Encoding beim Kompilieren funktionierts ^^' . Mit den Menüauswahlen jedoch immer noch nicht. Ich werde, wenn ich es dringend benötige, einfach deinen Trick anwenden.
Falls noch jemand Lösungen für das Problem mit den Einstellungen bei Notepad++ hat freu ich mich sehr über weitere Antworten!
 

Zurück
Oben