Я намагаюся читати з text/plain
файлу через Інтернет, підряд за рядком. Зараз у мене код:
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);
}
Файл, test.txt
містить ¡Hélló!
, який я використовую для тестування кодування.
Коли я переглядаю OutputStream
( out
), я бачу це як > ¬°H√©ll√≥!
. Я не вірю, що це проблема з тим, що OutputStream
я можу обійтися out.println("é");
без проблем.
Будь-які ідеї для читання у формі InputStream
UTF-8? Дякую!
1
Протокол HTTP визначає кодування. Чому ви не використовуєте бібліотечний API, який обробляє це для вас? Вам ніколи не доведеться вгадувати таке кодування. Я не хочу бути негативним: у вас чудово виходить! Мені просто цікаво, чи немає простішого шляху.
—
tchrist
На
—
Кріс Куель
text/plain
жаль, у мене не буде доступу до сервера, який обслуговує файл, на жаль, і він не використовує кодування UTF-8. Я не знав жодної хорошої мережевої бібліотеки; будь-які пропозиції?
Дивлячись на документи , я не думаю, що вам взагалі доведеться вказувати кодування. Я здивований, що вони дають вам байт-потік! У вас є доступ до основної URLConnection , з якої ви можете перевірити Content-Encoding, а потім відкрити InputStreamReader з правильним аргументом. Швидка перевірка джерела не виявляє нічого, що, здається, робить це для вас, що здається досить похмурим кульгавим та схильним до помилок, тому я, можливо, щось пропустив.
—
tchrist