Estou tentando ler um text/plain
arquivo da Internet, linha por linha. O código que tenho agora é:
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);
}
O arquivo test.txt
,, contém ¡Hélló!
, que estou usando para testar a codificação.
Quando reviso o OutputStream
( out
), vejo como > ¡Hélló!
. Não acredito que isso seja um problema com o, OutputStream
já que posso fazer isso out.println("é");
sem problemas.
Alguma idéia para ler o formato InputStream
UTF-8? Obrigado!
1
O protocolo HTTP especifica a codificação. Por que você não está usando uma API de biblioteca que cuida disso para você? Você nunca deve ter que adivinhar a codificação dessa forma. Não quero ser negativo: você está indo muito bem! Eu só me pergunto se não existe uma maneira mais fácil.
—
cristão de
Não terei acesso ao servidor que está servindo o
—
Chris Kuehl
text/plain
arquivo, infelizmente, e ele não está usando a codificação UTF-8. Eu não conhecia nenhuma boa biblioteca de rede; alguma sugestão?
Olhando para os documentos , eu não acho que você teria que especificar a codificação. Estou surpreso que eles forneçam um fluxo de bytes! Você tem acesso ao URLConnection subjacente , a partir do qual pode verificar o Content-Encoding e, em seguida, abrir um InputStreamReader com o argumento correto. Uma verificação rápida da fonte não mostra nada que pareça fazer isso por você, o que parece muito ruim e sujeito a erros, então provavelmente esqueci alguma coisa.
—
cristão de