Hey zusammen, ich brauche eure Hilfe:
Ich lese ein XML Dokument ein, welches in "ISO-8859-1" kodiert ist.
Dann ändere ich ein paar Knoten und mache darauf wieder das XML Dokument.
Dieses ist dann im Format "UTF-8".
Das Problem ist nun dass alle Sonderzeichen im Original XML Dokument ("ISO-8859-1" - z.B. Umlaute) in dem neu erstellten XML Dokument ("UTF-8") falsch (mit undefinierten Zeichen) dargestellt werden.
Das XML Dokument enthält somit Fehler.
Nun meine Frage wie ich das Problem beheben kann? Hier die Methoden mit denen ich das XML File einlese und wieder schreibe:
Als Parser verwende ich den DOM Parser.
Ich lese ein XML Dokument ein, welches in "ISO-8859-1" kodiert ist.
Dann ändere ich ein paar Knoten und mache darauf wieder das XML Dokument.
Dieses ist dann im Format "UTF-8".
Das Problem ist nun dass alle Sonderzeichen im Original XML Dokument ("ISO-8859-1" - z.B. Umlaute) in dem neu erstellten XML Dokument ("UTF-8") falsch (mit undefinierten Zeichen) dargestellt werden.
Das XML Dokument enthält somit Fehler.
Nun meine Frage wie ich das Problem beheben kann? Hier die Methoden mit denen ich das XML File einlese und wieder schreibe:
Als Parser verwende ich den DOM Parser.
Java:
public static Document createDocument(File aFile)
throws IllegalArgumentException, ParserConfigurationException,
SAXException, IOException {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db;
Document doc = null;
db = dbf.newDocumentBuilder();
doc = db.parse(aFile);
return doc;
}
public static boolean createXML(Document aDoc, File aFile)
throws IOException {
XMLSerializer serializer = new XMLSerializer(new OutputFormat());
serializer.setOutputCharStream(new FileWriter(aFile));
serializer.serialize(aDoc);
return true;
}