Bonjour,
je précise que je travaille sous Windows XP.
J'essaie d'écrire dans un fichier xml avec les méthodes OutputStreamWriter :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 public void ecrireElemenr(Element e) throws IOException { String corps; FileOutputStream fos = new FileOutputStream(Application.REPERTOIRE_DATA + "e_" + e.getId() + ".xml"); OutputStreamWriter out = new OutputStreamWriter(fos, "ISO-8859-1"); corps = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?>\n\n"; corps += e.toXml(); //Ecriture dans le fichier out.write(forceEncodage(corps,"ISO-8859-1")); //Fermeture du fichier out.close(); }
Cela fonctionne quand je lance l'application depuis Eclipse, mais lorsque que je lance le .jar que j'ai généré, les caractères spéciaux ne sont pas inscrits dans le fichier ( j'ai droit à des é ... ).
J'ai pourtant vérifié l'encodage du fichier xml avec notepad++.
De plus voici ma méthode qui force l'encodage :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 // forcer l'encodage en UTF-8 pour les caractères spéciaux private String forceEncodage(String stringXml,String charset) throws CharacterCodingException { CharsetEncoder encoder = Charset.forName(charset).newEncoder(); String resultFin = new String(encoder.encode(CharBuffer.wrap(stringXml.toCharArray())).array()); return resultFin; }
J'ai esayé d'écrire dans des fichiers xml en UTF-8 mais j'ai le même problème : ça fonctionne depuis eclipse mais pas depuis mon .jar.
N'hésitez pas à proposer vos idées pour corriger mon problème.
Merci d'avance![]()
Partager