org.dom4j.DocumentException: 2 字节的 UTF-8 序列的字节 2 无效。 Nested exception: 2 字节的 UTF-8 序列的字节 2 无效。异常解决办法

本人最近因为自身需求,开始接触了XML技术,利用dom4j做一个对XML读写操作的时候,给原XML添加一条数据时遇到了这个错误。

下面分享一下自己解决的心路历程吧。



这是xml文件的内容:

<?xml version="1.0" encoding="UTF-8"?>
<person>
    <people>
        <name id="1">张三</name>
        <age>20</age>
        <sex>男</sex>
        <adress>杭州</adress>
        <id>001</id>
    </people>
    <people>
        <name id="2">李四</name>
        <age>23</age>
        <sex>男</sex>
        <adress>长沙</adress>
        <id>002</id>
    </people>
    <people>
        <name>王五</name>
        <age>26</age>
        <sex>男</sex>
        <adress>武汉</adress>
        <id>003</id>
    </people>
    <people>
        <name>王二麻子</name>
        <age>25</age>
        <sex>男</sex>
        <adress>南京</adress>
        <id>004</id>
    </people>
    <people>
        <name>韩梅梅</name>
        <age>22</age>
        <sex>女</sex>
        <adress>苏州</adress>
        <id>005</id>
    </people>
</person>


这是对xml进行读写操作的代码:

public class Demo1 {

    @Test
    public void read() throws DocumentException {
        SAXReader reader = new SAXReader();
        Document document = reader.read(new File("src/person.xml"));
        Element rootElement = document.getRootElement();
        Element person = (Element) rootElement.elements("people").get(1);
        String str = person.element("name").attributeValue("id");
        String value = person.element("name").getText();
        System.out.println(value + str);
    }
    @Test
    public void write() throws Exception {

        SAXReader reader = new SAXReader();
        Document document = reader.read(new File("src/person.xml"));
        Element people = document.getRootElement().element("people");
        people.addElement("like").setText("Android编程");
        XMLWriter writer = new XMLWriter(new FileWriter("src/person.xml"));
        writer.write(document);
        writer.close();
    }
}


首先是这样写,运行测试的时候不会报错,但会出现乱码的问题,

这里只需要用dom4j里的OutputFormat设置一个编码格式即可,

然后本萌新设置好编码格式后,再次运行时,就抛出了这个错误,在网上查了很多资料也没有能解决,

最后的原因是因为,xml文件没有还原,所以导致的这个原因。

后来把文件还原后,再次运行的时候就没有问题了。


ps:可能这个错误很弱智,第一次更新博客,见谅见谅。千万记住,每次更新xml文件后出现乱码了,把乱码解决了一定要把xml的内容及时还原,就不会跟本萌新一样遇到这样弱智的问题了。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值