Problème d'encodage depuis un .jar
Bonjour,
je précise que je travaille sous Windows XP.
J'essaie d'écrire dans un fichier xml avec les méthodes OutputStreamWriter :
Code:
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:
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 :)