[IO] : Pb de lecture d'un fichier au format UTF-8.
Bonjour,
je dois lire un fichier encodé au format "UTF-8" pour conserver son contenu
dans une chaine de caractères (String).
Mon fichier s'affiche correctement (avec les accents) sous PsPad avec le format "UTF-8".
Voici le contenu du fichier : «
Code:
1 2 3 4 5 6 7 8 9 10 11
| <?xml version="1.0" encoding="UTF-8"?>
<import dateHeureImport="2008-03-21T11:25:35+01:00" code="954">
<evenements>
<!--Gestion de la liste des événements-->
<evenement codeEvenement="EV_ACCENT4">
<!--Description de l'événement EV_ACCENT-->
<libelleEvenement>Des accents : é à î è ' "</libelleEvenement>
<descriptionEvenement>Des accents : é à î è ' "</descriptionEvenement>
</evenement>
</evenements>
</import> |
J'ai essayé d'écrire 2 solutions pour lire mon fichier :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| 1) String flux = FileUtils.readFileToString(fichier, "UTF-8");
//(en utilisant l'API Apache commons-io)
2) java.io.BufferedReader br = new java.io.BufferedReader(
new java.io.InputStreamReader(
new java.io.FileInputStream(file[0]),
"UTF-8"
)
);
String ligne;
StringBuilder str = new StringBuilder();
int nbLignes = 1;
while((ligne = br.readLine())!=null){
if (nbLignes == 1) {
str.append("\n");
}
str.append(ligne);
nbLignes++;
}
String flux = str.toString(); |
Mais dans les deux cas, via le mode debug d'Eclipse et la fonctionnalité "inspect",
je constate que les accents de mon fichier sont valorisés avec le caractère "?" :
Voici le détail du fichier : «
Code:
1 2 3 4 5 6 7 8 9 10 11
| <?xml version="1.0" encoding="UTF-8"?>
<import dateHeureImport="2008-03-21T11:25:35+01:00" code="954">
<evenements>
<!--Gestion de la liste des ?v?nements-->
<evenement codeEvenement="EV_ACCENT4">
<!--Description de l'?v?nement EV_ACCENT-->
<libelleEvenement>Des accents : ? ? ? ? ' " </libelleEvenement>
<descriptionEvenement>Des accents : ? ? ? ? ' "</descriptionEvenement>
</evenement>
</evenements>
</import> |
».
C'est grave docteur ?
Comment faire pour récupérer le contenu du fichier dans un String tout en gardant
les accents ?
Avez-vous une idée ?
Merci d'avance pour votre aide,
F.