Skip to main content

Text von Konsolenanwendung mit Umlauten und Sonderzeichen ausgeben

Problem

Textausgabe in JAVA ist nicht ganz so trivial wie man meint. Denn Umlaute werden nicht richtig wiedergegegeben, da die Konsole eine andere CodePage verwendet. Das Betrifft z.B. alle Ausgaben von

System.out.println("äöüÄÖÜß");

Das Problem wird jedoch erst sichtbar, wenn man das Programm ausserhalb von Ecplise startet. In der IDE selbst fällt das Problem daher gar nicht auf.

Lösung

Diese Funktion schaltet vor Ausgabe auf die richtige Zeichentabelle 850 um und sichert somit die korrekte Ausgabe von Umlauten.

public void printlncp850(final String s)
{
  PrintWriter out = null;
 
  try
  {
     out = new PrintWriter(new OutputStreamWriter(System.out, "Cp850"));
  }
  catch (final UnsupportedEncodingException e)
  {
    e.printStackTrace();
  }
 
  out.print(s);
  out.flush();
}