700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > dom4j解析创建Xml:org.dom4j.DocumentException: 2字节的UTF-8序列的2无效

dom4j解析创建Xml:org.dom4j.DocumentException: 2字节的UTF-8序列的2无效

时间:2021-07-25 16:14:41

相关推荐

dom4j解析创建Xml:org.dom4j.DocumentException: 2字节的UTF-8序列的2无效

最近刚刚做完Java版Dota改键软件KeyHelper的界面配置操作,配置信息保存到xml中,采用dom4j进行解析和创建,基本做的差不多,并导出为jar自己在使用测试。

在Eclipse中运行时没有任何异常和错误,但是导出jar包之后使用start java -jar keyHelper.jar运行的时候,报异常:org.dom4j.DocumentException: 2字节的UTF-8序列的2无效...后面是一大串错误stack信息。

搜索了一下,网上关于dom4j解析xml汉字乱码问题一大堆,其中解决办法基本没有,大都是在网上发发问题,但是没有人解决,只有一个提到说将xml的编码改成为GBK或者GB2312,这个测试了,基本上是可行的,但是一般的软件开发都是采用UTF-8,将配置换成其他编码,会导致软件界面上是乱码,所以这个解决办法其实有一点鸡肋。自己尝试过在创建保存xml的时候,利用构造的domcument,调用asXml()方法得到document的string字符串,然后采用java io利用utf-8编码写入文件中,但是到读取的时候依然会报错。

再三折腾之下,发现了一个既不用修改xml编码,又可以解决这个中文解析的异常,贴出我的解析的创建xml的代码。

一、解析Config.xml配置信息

其中代码:Document document = reader.read(newBufferedReader(newInputStreamReader(newFileInputStream(file), "UTF-8")));是关键。

二、创建Config.xml配置信息

其中代码:

OutputFormat format = newOutputFormat();

format.setEncoding("UTF-8");

XMLWriter writer = newXMLWriter(newFileOutputStream(newFile(CONFIG_FILE)), format);

是关键,请务必按照这个写法进行。具体为什么,我自己也不知道,唉~

Enjoy~

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。