Wie kann man das ecncoding zu einem vorhandenen Document-Objekt ändern?

bobymiller

Grünschnabel
Servus !

Vielleicht kann mir jemand bei folgender Problematik weiter helfen:

Ich übergebe der unteren Methode xmlToString ein Document-Object mit vorhandenen XML-Daten. Jetzt enthält die erste Zeile der XML-Daten die folgende XML Deklaration.

XML:
<?xml version="1.0" encoding="IBM0114" standalone="no"?>

Ich möchte nun das encoding von encoding="IBM0114" aus encoding="UTF-8" umstellen.
Leider ist mir bisher keine Methode bekannt womit ich das encoding im Document-Objekt ersetzen oder neu setzen könnte.

Ich erhalte bisher immer folgende Warnung:

Warning: The encoding 'IBM0114' is not supported by the Java runtime.

Leider darf ich die Warnungen auch nicht per Compiler Einstellungen einfach so unterdrücken. Ich benötige eine Möglichkeit die Sache irgendwie innerhalb der Methode xmlToString zu ändern und das noch bevor die Transformation ausgeführt wird.

Java:
public static String xmlToString(Document xml) throws TransformerException {
	
		Transformer transformer = TransformerFactory.newInstance().newTransformer();
		transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
		transformer.setOutputProperty(OutputKeys.METHOD, "xml");
		transformer.setOutputProperty(OutputKeys.STANDALONE, "yes");
		transformer.setOutputProperty(OutputKeys.INDENT, "no");
		
		DOMSource dom = new DOMSource(xml);
		Writer out = new StringWriter();
		transformer.transform(dom, new StreamResult(out));
		
		return out.toString();
	}

Danke schon einmal für Eure Hilfe.

So long...
boby
 
Zuletzt bearbeitet von einem Moderator:

Cromon

Erfahrenes Mitglied
Hallo boby

Was erwartest du davon die Kodierung auf UTF-8 zu ändern? Wenn deine XML-Datei IBM01440 kodiert ist, dann nützt es nichts dem Transformator zu sagen er soll die Daten als UTF-8 ausgeben. Um sie als korrektes UTF-8-Strings zurück zu geben müsste es zuerst mal das IBM01440-Dokument verstehen, das kann die VM aber nicht, daher die Warnung. Diese Kodierung ist nicht eingebaut. Du müsstest die Kodierung der XML-Daten also ausserhalb von Java mit einem Programm, das die Kodierung verstehen und umwandeln kann bearbeiten und als UTF-8 abspeichern.

Viele Grüsse
Cromon