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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.