Lettura di InputStream come UTF-8

Sto provando a leggere da un file text/plain su internet, riga per riga. Il codice che ho adesso è:

 URL url = new URL("http://kuehldesign.net/test.txt"); BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream())); LinkedList lines = new LinkedList(); String readLine; while ((readLine = in.readLine()) != null) { lines.add(readLine); } for (String line : lines) { out.println("> " + line); } 

Il file, test.txt , contiene ¡Hélló! , che sto usando per testare la codifica.

Quando OutputStream ( out ), lo vedo come > ¬°H√©ll√≥! . Non credo che questo sia un problema con OutputStream dato che posso fare out.println("é"); senza problemi.

Qualche idea per la lettura di InputStream come UTF-8? Grazie!

Risolto il mio problema. Questa linea:

 BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream())); 

deve essere:

 BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream(), "UTF-8")); 

o da 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) { } 

Prova questo,.. 🙂

Ho incontrato lo stesso problema ogni volta che trova un carattere speciale lo contrassegna come . per risolvere questo, ho provato a utilizzare la codifica: ISO-8859-1

 BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("txtPath"),"ISO-8859-1")); while ((line = br.readLine()) != null) { } 

Spero che questo possa aiutare chiunque veda questo post.