Я пытаюсь прочитать 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? Спасибо!
java
utf-8
inputstream
Крис Кюль
источник
источник
text/plain
сожалению, у меня не будет доступа к серверу, который обслуживает файл, и он не использует кодировку UTF-8. Я не знал ни о каких хороших сетевых библиотеках; какие-либо предложения?Ответы:
Решил свою проблему. Эта строка:
должно быть:
или начиная с Java 7:
источник
CharsetDecoder dec
аргументом. Это та же ошибка дизайна Java, которуюOutputStreamWriter
имеют конструкторы: только один из четырех действительно снисходит до того, чтобы сообщить вам, когда что-то идет не так. И здесь вам снова придется использовать причудливыеCharsetDecoder dec
аргументы. Единственное безопасное и разумное решение - считать все остальные конструкторы устаревшими, поскольку им нельзя доверять.StandardCharsets.UTF_8
Попробуй это,.. :-)
источник
Я сталкивался с той же проблемой каждый раз, когда находил специальный символ, помечающий ее как . чтобы решить эту проблему, я попытался использовать кодировку: ISO-8859-1
Надеюсь, это поможет любому, кто увидит этот пост.
источник