原因为:以非utf-8的编码格式执行保存操作
1、最简单就是把<?xml version="1.0" encoding="UTF-8"?>改成<?xml version="1.0" encoding="gbk"?>:对于字符串直接替换;对于文件,先读取,替换,最后解析写回
2、或者把xml打开另存的时候把字符集改为UTF-8后保存
3、在代码解析的时候先把xml重新写一遍
SAXReader reader = new SAXReader();
org.dom4j.Document document = reader.read("D:\\ha.xml");
OutputFormat of = new OutputFormat();
of.setEncoding("UTF-8"); //改变编码方式
XMLWriter writer = new XMLWriter(new FileWriter "d:\\dom4j.xml"), of);
4、直接dom4j读取的时候用io来读,修改字符编码
FileInputStream in = new FileInputStream(new File(fileName));
Reader read = new InputStreamReader(in,"gbk");
Document document = reader.read(read);
5、还有可能出现以utf-8格式保存仍无法使用,此时,可使用org.w3c.dom.Document进行解析保存。