J'essaie de lire un fichier text/plain
Sur Internet, ligne par ligne. Le code que j'ai maintenant est:
URL url = new URL("http://kuehldesign.net/test.txt");
BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
LinkedList<String> lines = new LinkedList();
String readLine;
while ((readLine = in.readLine()) != null) {
lines.add(readLine);
}
for (String line : lines) {
out.println("> " + line);
}
Le fichier, test.txt
, Contient ¡Hélló!
, Que j'utilise pour tester le codage.
Lorsque je passe en revue le OutputStream
(out
), je le vois comme > ¡Hélló!
. Je ne crois pas que ce soit un problème avec le OutputStream
puisque je peux faire out.println("é");
sans problèmes.
Des idées pour lire du InputStream
comme UTF-8? Merci!
Résolu mon propre problème. Cette ligne:
BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
doit être:
BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream(), "UTF-8"));
ou depuis Java 7:
BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream(), StandardCharsets.UTF_8));
String file = "";
try {
InputStream is = new FileInputStream(filename);
String UTF8 = "utf8";
int BUFFER_SIZE = 8192;
BufferedReader br = new BufferedReader(new InputStreamReader(is,
UTF8), BUFFER_SIZE);
String str;
while ((str = br.readLine()) != null) {
file += str;
}
} catch (Exception e) {
}
Essaye ça,.. :-)
J'ai rencontré le même problème chaque fois qu'il trouve un caractère spécial le marque comme. pour résoudre ce problème, j'ai essayé d'utiliser l'encodage ISO-8859-1.
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("txtPath"),"ISO-8859-1"));
while ((line = br.readLine()) != null) {
}
J'espère que cela peut aider tous ceux qui voient ce post.