Frage von chr0m92, 64

Java Umlaute Problem?

Hallo,

ich versuche Umlaute in eine Datei zu schreiben:

    FileWriter fww= new FileWriter("C://KBs//test2.xml");
    BufferedWriter bww=new BufferedWriter(fww);
    bww.write("Datenübertragung");
    bww.close();
    
    FileWriter fw= new FileWriter("C://KBs//test3.xml");
    BufferedWriter bw=new BufferedWriter(fw);
    bw.write("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>");
    bw.write(umlauteUmformen(umlauteErsetzen("Datenübertragung")));
    bw.close();
   }

Beim oberen geht es, beim unteren, wegen dem UTF-8 encoding nicht. Ich versuch das seit 2 Tagen irgendwie in den Griff zu bekommen, jedoch ohne Erfolg.

Ich habe bereits folgende Methoden geschrieben und es damit versucht, auch erfolglos: 

public String umlauteErsetzen(String s) {

 s=s.replaceAll("ö", "\u00f6").replaceAll("Ö", "\u00d6") .replaceAll("ä", "\u00e4").replaceAll("Ä", "\u00c4").replaceAll("ü", "\u00fc") .replaceAll("Ü", "\u00dc").replaceAll("ß", "\u00df");

 return s; 

}

Und: 

public String umlauteUmformen(String s) { 

byte ptext[] = s.getBytes(ISO_8859_1); 

String value = new String(ptext, UTF_8); 

return value;

}

Die XMLs sind vorgegeben, das UTF-8 encoding im XML kann nicht geändert werden. Ich bitte um Hilfe -_- LG

Expertenantwort
von KnusperPudding, Community-Experte für Java, 33

Wo genau besteht jetzt das Problem?

Wenn ich die Datei erstellen lasse, erhalte ich folgendes Ergebnis:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>Datenübertragung


Wenn du beim Datei erstellen eine Formatierung angeben willst, funktioniert das so:

BufferedWriter out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("F:/Temp/test4.xml"), "UTF-8"));

Was für eine Formatierung in der XML vorgegeben ist, steht wiederum auf einem anderen Blatt.

Wenn die XML mit Umlauten zwar gefüllt ist, aber im Browser z.b. falsch dargestellt wird, dann liegt es nicht an deiner Methode die Datei zu erstellen.Sondern an der Interpretierenden Software wie der Browser.

Kommentar von chr0m92 ,

Hallo,

ja im normalen Windows Editor wird es richtig angezeigt, in Adobe Dreamweaver oder Notepad++ nicht.

Die XML wird auf einem FTP weiter verarbeitet. Und wenn da statts Umlauten nur so Kästchen zu sehen sind, geht es nicht. 

Deshalb benutze ich den Dreamweaver als "Kontrolle".

Ich werde das gleich mal versuchen, was Du mir geschrieben hast, danke schon mal :-)

Kommentar von KnusperPudding ,

Notepad++ müsste die Datei auch richtig interpretieren (mit Umlauten).

Windows-Notepad interpretiert auch nur den Inhalt der Datei.

Keine passende Antwort gefunden?

Fragen Sie die Community