我正在尝试通过 Internet 逐行读取 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 的任何想法?谢谢!
最佳答案
解决了我自己的问题。这一行:
BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
需要:
BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream(), "UTF-8"));
或从 Java 7 开始:
BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream(), StandardCharsets.UTF_8));
关于java - 将 InputStream 读取为 UTF-8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4964640/