Java 使用dom读取XML文件及对中文字符的支持

2014-11-24 10:39:01 ? 作者: ? 浏览: 0

我本机的开发环境编码是UTF-8;


以下这个方法正常读取不含中文的XML文件是没问题的


public static Element returnRootElement(String fileName) {
String deviceInformation = "";
Document document = null;
Element root = null;
try {
deviceInformation = FileResource.readFile(fileName,UiUtilPlugin.PLUGIN_ID);
DocumentBuilder builder;
builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
InputStream is = new ByteArrayInputStream(
deviceInformation.getBytes());
document = builder.parse(is);
root = document.getDocumentElement();
return root;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}


但是遇到含有中文的字符呢 就会出现这个错误


org.apache.xerces.internal.impl.io.MalformedByteSequenceException: Invalid byte 1 of 1-byte UTF-8 sequence


这是因为SAX’s parser没有设置正确的编码格式,导致读取文件出错。


那原因知道了


我下面贴一下我修改的代码:


很简单,加入这几句就可以了


InputStream iStream= new ByteArrayInputStream(xmlInformation.getBytes());
Reader reader = new InputStreamReader(iStream,"GB2312");
InputSource iSource = new InputSource(reader);
iSource.setEncoding("GB2312");
document = builder.parse(iSource);


共同学习。


-->

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: