XML mit Sonderzeichen abspeichern

Levin Beicht

Mitglied
Hallo allerseits,

ich stehe vor einem Problem was mich jetzt seit einiger Zeit beschäftigt.

Ich lasse mein Programm einen XML-Baum erstellen und versuche diesen dann als Datei zu speichern. Das klappt auch alles wunderbar, solange keine äöü usw. drin vorkommen.
Ich schätze mal das es da Probleme mit verschiedenen Zeichensätzen gibt, bin aber bisher nicht dahinter gestiegen wie ich das hinbekomme.

Hier der code wie ich das ganze abspeichere, ich denke mal, hier irgendwo hakt es.
Das ganze geschieht mit Xerces.
Gebe ich den stringOut einfach auf der Konsole aus, sind alle Sonderzeichen noch in Ordnung. Erst das schreiben mit dem PrintWriter zerhackstückt das ganze.

Code:
...

	Document doc = d.CtToDoc(results);
		
        OutputFormat format = new OutputFormat(doc);
        StringWriter stringOut = new StringWriter();
        XMLSerializer serial = new XMLSerializer(stringOut, format);

        try {
            serial.asDOMSerializer();
            serial.serialize(doc.getDocumentElement());
            
            PrintWriter pw = new PrintWriter(new FileWriter("test.xml"));


            pw.print(stringOut.toString());
            pw.close();

...

Gruß Levin
 
Ohwei, da hatte ich ja echt ein Brett vorm Kopf...

wenn das ne UTF-8 XML-Datei werden sollte, muss ich es natürlich auch als UTF-8 abspeichern. Ist heute nicht mein Tag ;)

Hier des Rätsels Lösung für alle mit ähnlichen Problemen:

Code:
...
            
            Writer w = new OutputStreamWriter(new FileOutputStream("test.xml"), "UTF-8");
            
            w.write(stringOut.toString());
            w.close();

...

Gruß Levin
 
Zurück