首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >读取流时java编码问题

读取流时java编码问题
EN

Stack Overflow用户
提问于 2014-06-17 00:52:58
回答 2查看 2.6K关注 0票数 0

我正在尝试从ftp文件夹下载内容。有一个xml文件以标准化的xml代码开头。

代码语言:javascript
运行
复制
< ?xml version="1.0" encoding="utf-8"?>

当我读取这些文件(使用java.net.Socket)并获得输入流,然后尝试转换为String时,我会得到一些新的charecter。整个xml文档以“?”开头。例如:"?< ?xml version="1.0“encoding=”utf-8“?>.”

代码语言:javascript
运行
复制
BufferedInputStream reader = new BufferedInputStream(sock.getInputStream());

然后,我将使用下面的代码从这个阅读器获得一个字符串。

代码语言:javascript
运行
复制
StringBuilder sb = new StringBuilder();

String line;
BufferedReader br = new BufferedReader(new InputStreamReader(reader));

while ((line = br.readLine()) != null) {
    sb.append(line);
}
System.out.println ("sb.toString()");

不知道这里发生了什么。为什么我要介绍一些特殊的牧师?如果有什么建议,我将不胜感激。

然后,我使用了下面的代码来读取文件,在控制台中,我看到了一些特殊的牧师

代码语言:javascript
运行
复制
BufferedReader reader = new BufferedReader(new     FileReader("c:/Users/appd922/DocumentMeta06122014.xml"));
StringBuffer sb = new StringBuffer();
String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line);
}

String output = sb.toString();
System.out.println("reading from file"+output);

我开始输出“从file< ?xml版本读取……

我从哪弄到这些特别的牧师?

注意-忽略上面给出的xml文件行中的空格。没有这个空格,我就不能用合适的not在这里写作。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-06-17 01:41:15

这些字符被称为BOM,Byte Order Mark。如果将InputStreamReader的编码设置为'UTF-8',则可以看到它们被解释为单个字符,即BOM字符。

不幸的是,您必须自己处理这个字符,因为Java不会为您处理这个角色:java utf-8 and bom。通常你只需要把你的溪流去掉就行了。祝好运。

票数 1
EN

Stack Overflow用户

发布于 2014-06-17 01:01:15

在创建InputStreamReader以从ftp读取文件时指定编码,例如:

代码语言:javascript
运行
复制
BufferedReader br = new BufferedReader(new InputStreamReader(reader, "utf-8"));

否则,InputStreamReader将使用默认编码。另外,在读取下载的文件时指定编码。FileReader使用默认平台编码。使用InputStreamReader并指定编码,例如:

代码语言:javascript
运行
复制
BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(filePath), "utf-8"));
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24254264

复制
相关文章

相似问题

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