Ecrire un String dans un fichier encodé en UTF-8
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 :
Code:
1 2 3 4
| File f = new File("c:/test.xml");
FileOutputStream fos = new FileOutputStream(f);
fos.write("éèà".getBytes("UTF-8"));
fos.close(); |
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.
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 :
Code:
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>"); |
Je vous remercie pour votre aide.