我正在尝试text/plain
逐行从Internet 上读取文件。我现在拥有的代码是:
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 2011年
text/plain
不幸的是,我将无法访问正在提供文件的服务器,并且该服务器未使用UTF-8编码。我不知道有什么好的网络库。有什么建议?
查看文档,我认为您根本不必指定编码。我很惊讶他们给你一个字节流!你有机会获得潜在的URLConnection,从中你可以检查内容编码,然后打开用正确的参数的InputStreamReader。快速检查源代码并不会发现可以为您执行此操作的任何内容,这似乎很脚,容易出错,因此我可能错过了一些东西。
—
tchrist 2011年