Application Java : Impossible de lire les iso-8859-1 fichier encodé correctement

J'ai un fichier qui est encodé en iso-8859-1, et contient des caractères tels que ô .

Je suis à la lecture de ce fichier avec le code java, quelque chose comme:

File in = new File("myfile.csv");
InputStream fr = new FileInputStream(in);
byte[] buffer = new byte[4096];
while (true) {
    int byteCount = fr.read(buffer, 0, buffer.length);
    if (byteCount <= 0) {
        break;
    }

    String s = new String(buffer, 0, byteCount,"ISO-8859-1");
    System.out.println(s);
}

Cependant le " caractère est toujours brouillé, généralement l'impression d'être un ? .

J'ai lu sur le sujet (et appris un peu sur le chemin), par exemple

mais ne peut toujours pas obtenir ce travail

Il est intéressant de noter cela fonctionne sur mon pc (xp), mais pas sur mon linux.

J'ai vérifié que mon jdk prend en charge le nécessaire charsets (ils sont de série, de sorte que ce n'est pas une surprise) à l'aide de :

System.out.println(java.nio.charset.Charset.availableCharsets());
  • Je dois ajouter que je suis capable de voir les personnages ou le fichier d'origine correctement à l'aide de mon terminal linux, si je chat le contenu du fichier
  • Ce codage de caractères utilisé par votre terminal?
  • Il est intéressant de noter - si j'ajoute le runtime java de propriété "-Dfile.encoding=UTF16" il fonctionne comme prévu, même si je ne vois pas pourquoi cela devrait avoir de l'importance - et je ne vois pas cela comme une solution, mais plus d'un hack. Il ne fonctionne pas avec la propriété définie à l'UTF8.
InformationsquelleAutor Joel | 2009-01-31