首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >以UTF-8格式读取InputStream

以UTF-8格式读取InputStream
EN

Stack Overflow用户
提问于 2011-02-11 09:17:34
回答 3查看 228.5K关注 0票数 101

我正试图通过互联网逐行读取一个text/plain文件。我现在拥有的代码是:

代码语言:javascript
复制
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有什么想法吗?谢谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-02-11 09:18:41

解决了自己的问题。这一行:

代码语言:javascript
复制
BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));

需要满足以下条件:

代码语言:javascript
复制
BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream(), "UTF-8"));

或从Java 7开始:

代码语言:javascript
复制
BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream(), StandardCharsets.UTF_8));
票数 198
EN

Stack Overflow用户

发布于 2013-06-17 18:42:10

代码语言:javascript
复制
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) {

}

试试这个,..:-)

票数 18
EN

Stack Overflow用户

发布于 2018-03-02 22:32:05

每次它发现一个特殊字符将其标记为��时,我都会遇到同样的问题。为了解决这个问题,我尝试使用编码: ISO-8859-1

代码语言:javascript
复制
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("txtPath"),"ISO-8859-1"));

while ((line = br.readLine()) != null) {

}

我希望这能帮助任何看到这篇文章的人。

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4964640

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档