La production codé en UTF-8 XML en Java
C'est le code que j'utilise
try {
String str = "\uC3BC and \uC3B6 and <&> für";
DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
Document doc = builder.newDocument();
Element root = doc.createElement("test");
root.setAttribute("attribute", str);
doc.appendChild(root);
DOMSource domSource = new DOMSource(doc);
//FileOutputStream out = new FileOutputStream("test.xml");
Writer out = new OutputStreamWriter(new FileOutputStream("test.xml"), "UTF8");
Transformer transformer = TransformerFactory.newInstance().newTransformer();
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
transformer.transform(domSource, new StreamResult(out));
out.close();
} catch (Exception e) {
e.printStackTrace();
}
De sortie est
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<test attribute="쎼 and 쎶 and <&> für"/>
Je veux à la sortie
attribute="쎼 and 쎶 ..."
Comment puis-je y parvenir ?
J'utilise la version 1.6 de Java-20
Ceci est similaire à Produit est valide XML avec Java et l'encodage UTF-8
- Quel est le problème?
- Pourquoi voulez-vous des références à des caractères à la place des caractères eux-mêmes? Puisque vous utilisez UTF-8, vous n'en avez pas besoin (et il porte exactement les mêmes renseignements de toute façon).
- Mes excuses, je n'ai pas d'état, ma question clairement. Je voulais échapper.
- Je l'ai eu, mais pourquoi voulez-vous échapper? Les deux formes sont exactement équivalents, il ne devrait pas faire une différence.
Vous devez vous connecter pour publier un commentaire.
Si vous ne voulez pas le XML encodé en UTF-8, vous ne devriez pas dire le transformateur de le faire.
Si je comprends votre question correctement
devrait produire la sortie que vous souhaitez