Estoy intentando leer de un text/plain
archivo a 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 el OutputStream
( out
), lo veo como > ¡Hélló!
. No creo que esto sea un problema con el OutputStream
ya que puedo hacerlo out.println("é");
sin problemas.
¿Alguna idea para leer en formato InputStream
UTF-8? ¡Gracias!
1
El protocolo HTTP especifica la codificación. ¿Por qué no utiliza una API de biblioteca que se encarga de eso por usted? Nunca debería tener que adivinar la codificación de esta manera. No quiero ser negativo: ¡lo estás haciendo genial! Me pregunto si no hay una forma más fácil.
—
tchrist
text/plain
Desafortunadamente, no tendré acceso al servidor que está sirviendo el archivo y no está usando una codificación UTF-8. No conocía ninguna buena biblioteca de red; ¿alguna sugerencia?
Mirando los documentos , no creo que tenga que especificar la codificación en absoluto. ¡Me sorprende que te den un flujo de bytes! Tiene acceso a URLConnection subyacente , desde el cual puede verificar Content-Encoding, luego abrir un InputStreamReader con el argumento correcto. Una verificación rápida de la fuente no muestra nada que parezca hacer eso por usted, lo que parece bastante tonto y propenso a errores, por lo que probablemente me perdí algo.
—
tchrist