Hallo zusammen,
ich möchte eine XML datei erzeugen, welche auf einen bestimmten Art codiert wird, und zwar "ISO-8859-15".
Nun wenn ich einen Writer erzeuge um diese in String umwandel, dann kriege ich UTF-8 kodierung.
ein Code ist:
result soll dann die XML sein.
m setzt die encoding="ISO-8859-15"
aber der writer hat UTF-8 und UTF-8 steht dann am Ende in der XML.
Kann mir einer sagen wieso es so ist nd wie ich das beheben kann.
Ich kann natürlich auch ganz einfach am ende vor return ein replace machen, aber ich denke das ist keine gute Lösung.
Danke
ich möchte eine XML datei erzeugen, welche auf einen bestimmten Art codiert wird, und zwar "ISO-8859-15".
Nun wenn ich einen Writer erzeuge um diese in String umwandel, dann kriege ich UTF-8 kodierung.
ein Code ist:
Code:
Art art= objectFactory.createElster();
art.setTransferHeader(getTransferHeader(fachContext, land));
art.setDatenTeil(getDatenTeil(rootElement, versionDerAnwendung));
try {
JAXBContext jc = JAXBContext.newInstance(art.class, kapestClass);
Marshaller m = jc.createMarshaller();
m.setProperty("jaxb.encoding", VerarbeitungService.OUTPUT_ENCODING);
Writer writer = new StringWriter();
m.marshal(art, NoNamespacesWriter.filter(writer)); // -> Namespaces komplett entfernen.
result = writer.toString();
result = result.replace("<Art>", "<Art xmlns=\"http://www.art.de/2002/XMLSchema\">");
} catch (Exception exception) {
throw new KapestException(TechnischeFehler.FCT0032, exception);
}
return result;
Code:
public interface VerarbeitungService {
public static final String OUTPUT_ENCODING = "ISO-8859-15";
}
m setzt die encoding="ISO-8859-15"
aber der writer hat UTF-8 und UTF-8 steht dann am Ende in der XML.
Kann mir einer sagen wieso es so ist nd wie ich das beheben kann.
Ich kann natürlich auch ganz einfach am ende vor return ein replace machen, aber ich denke das ist keine gute Lösung.
Danke