utf8 java utf-8 inputstream

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,.. :-)