Merci de ta réponse, mais il est vrai que j'ai pas mal fouillé de ce côté la.
Je vais vous donner ce que j'ai trouvé. Voici comment est fait le XML :
OutputStream out = new ByteArrayOutputStream();
XMLEncoder e = new XMLEncoder(out);
e.writeObject(monObjet);
e.close();
String monObjetEnXML = out.toString();
J'ai créé un objet contenant 3 chaines de caractères et l'une d'entre elle est initialisée avec la suite de caractères donnée dans mon 1er message.
Lorsque j'affiche monObjetEnXML, ça donne ceci :
<?xml version="1.0" encoding="UTF-8"?>
<java version="1.4.2_04" class="java.beans.XMLDecoder">
<object class="test.Test">
<void property="str1">
<string>123456</string>
</void>
<void property="str2">
<string>äþÞØ×�õðæ�„~°¶»¼öñ÷ÿß</string>
</void>
<void property="str3">
<string>987654</string>
</void>
</object>
</java>
Lorsque je modifie mon code, pour m'assurer que mon xml est bien en utf-8, en faisant ceci :
String monObjetEnXML = ((ByteArrayOutputStream)out).toString("utf-8");
Lorsque j'affiche monObjetEnXML, ça donne ça :
<?xml version="1.0" encoding="UTF-8"?>
<java version="1.4.2_04" class="java.beans.XMLDecoder">
<object class="test.Test">
<void property="str1">
<string>123456</string>
</void>
<void property="str2">
<string>äþÞØ×ÐõðæÝ„~°¶»¼öñ÷ÿß</string>
</void>
<void property="str3">
<string>987654</string>
</void>
</object>
</java>
Donc on dirait que le code XML généré n'est pas en UTF-8 bien qu'il devrait l'etre.
Si je n'ai pas de chaine de caractères pourrie par des caractères étranges, la 1ère méthode fonctionne et pas la 2ème.
Enfin voila, j'suis trop dans le flou
Et j'espère que qqn a déjà été confronté a ça pour m'aider.
Bye bye
Pilou
Partager