我正试图通过互联网逐行读取一个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有什么想法吗?谢谢!
发布于 2011-02-11 09:18:41
解决了自己的问题。这一行:
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));
发布于 2013-06-17 18:42:10
String file = "";
try {
InputStream is = new FileInputStream(filename);
String UTF8 = "utf8";
int BUFFER_SIZE = 8192;
BufferedReader br = new BufferedReader(new InputStreamReader(is,
UTF8), BUFFER_SIZE);
String str;
while ((str = br.readLine()) != null) {
file += str;
}
} catch (Exception e) {
}
试试这个,..:-)
发布于 2018-03-02 22:32:05
每次它发现一个特殊字符将其标记为��时,我都会遇到同样的问题。为了解决这个问题,我尝试使用编码: ISO-8859-1
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("txtPath"),"ISO-8859-1"));
while ((line = br.readLine()) != null) {
}
我希望这能帮助任何看到这篇文章的人。
https://stackoverflow.com/questions/4964640
复制相似问题