不处理会报错,方法有三:
第一,用程序添加头部字符串拼接到xml字符串之前,里面包含正确编码;
第二,parse的时候将string.getBytes("UTF8")增加参数"UTF8",DocumentBuilder默认的编码是UTF8,所以给他UTF8就是了;
第三,使用Transformer,设置source是StreamSource,设置Result是DOMResult,设置encoding,参考http://forums.sun.com/thread.jspa?threadID=289433&forumID=34,此方法未测试,代码如下,但是source和result调换一下即可:
TransformerFactory tFactory = TransformerFactory.newInstance();
Transformer transformer = tFactory.newTransformer();
DOMSource source = new DOMSource(doc);
StreamResult result = new StreamResult(out);
transformer.setOutputProperty("encoding" , "utf-16" );
transformer.transform(source, result);

本文介绍了三种解决XML文件因缺少头部编码声明而引发错误的方法:1. 在XML字符串前添加正确的编码声明。2. 在解析时指定正确的字符集名称。3. 使用Transformer设置输出编码。
485

被折叠的 条评论
为什么被折叠?



