Bonjour à tous,
J'ai un problème lors de l'écriture d'une chaîne de caractère générée par mon programme dans un fichier qui doit être au format UTF-8.
Lorsque je fais cela :
pas de problème, j'ai bien un fichier UTF-8 (je l'ouvre avec notepad++ et dans format j'ai "Encoder en UTF-8 (sans BOM)". A propos si quelqu'un peut me dire la différence entre UTF-8 et UTF-8 (sans BOM) je le remercie d'avance.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 File f = new File("c:/test.xml"); FileOutputStream fos = new FileOutputStream(f); fos.write("éèà".getBytes("UTF-8")); fos.close();
Par contre lorsque je remplace "éèà" par mon objet String construit dans mon programme, le fichier généré est au format "Encoder en ANSI".
Pour info, le String que je construis est une concaténation d'éléments constants (balises "<balise>", "</balise>", etc..), de saut de ligne ("\n") et de données récupérée d'une base oracle qui n'est pas encodé en UTF-8.
Exemple :
Je vous remercie pour votre aide.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 xml.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"); xml.append("<REFS>\n"); xml.append("<ref_1>"); xml.append(value); xml.append("</ref_1>").append("\n"); xml.append("</REFS>");
Partager