utf8 - bufferedreader utf 8 java
Lectura de InputStream como UTF-8 (3)
Me encontré con el mismo problema cada vez que encuentra un carácter especial que lo marca como . para resolver esto, traté de usar la codificación: ISO-8859-1
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("txtPath"),"ISO-8859-1"));
while ((line = br.readLine()) != null) {
}
Espero que esto pueda ayudar a cualquiera que vea esta publicación.
Estoy tratando de leer de un archivo de text/plain
través de Internet, línea por línea. El código que tengo ahora es:
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);
}
El archivo, test.txt
, contiene ¡Hélló!
, que estoy usando para probar la codificación.
Cuando reviso OutputStream
( out
), lo veo como > ¡Hélló!
. No creo que esto sea un problema con OutputStream
ya que puedo hacer out.println("é");
sin problemas.
¿Alguna idea para leer forma el InputStream
como UTF-8? ¡Gracias!
Resolvió mi propio problema. Esta línea:
BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
necesita ser:
BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream(), "UTF-8"));
o desde 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) {
}
Prueba esto,.. :-)