En ce qui concerne le fil de discussion suivant : Java App : Impossible de lire correctement un fichier encodé en iso-8859-1
Quelle est la meilleure façon de déterminer par programme l'encodage correct d'un flux d'entrée/fichier ?
J'ai essayé d'utiliser ce qui suit :
File in = new File(args[0]);
InputStreamReader r = new InputStreamReader(new FileInputStream(in));
System.out.println(r.getEncoding());
Mais sur un fichier dont je sais qu'il est codé avec ISO8859_1, le code ci-dessus donne ASCII, ce qui n'est pas correct, et ne me permet pas de restituer correctement le contenu du fichier à la console.
12 votes
Eduard a raison : "Vous ne pouvez pas déterminer l'encodage d'un flux d'octets arbitraire". Toutes les autres propositions vous donnent des moyens (et des bibliothèques) pour faire la meilleure estimation possible. Mais au final, ce sont toujours des suppositions.
11 votes
Reader.getEncoding
renvoie l'encodage que le lecteur a été configuré pour utiliser, qui dans votre cas est l'encodage par défaut.0 votes
System.getProperty("file.encoding")
il renvoie une chaîne de caractères. ex -FileInputStream fis = new FileInputStream(path); String encoding = System.getProperty("fis.encoding");