dom4j如何处理中文问题

最近使用dom4j来操作xml文件,遇到一个中文处理的问题,弄了大半天才弄出来。。郁闷呀,现在把它记下来,以免以后再犯类似的错误

一、在读取xml文件的时候要记得设置编码,代码如下:
private Document getDocument(String fileName) {
  try {
SAXReader saxReader = new SAXReader();
saxReader.setEncoding("utf-8");
Document doc = saxReader.read(new File(fileName));
return doc;
} catch (DocumentException e) {
e.printStackTrace();
}
return null;
}
将SAXReader设置编码为utf-8

二、在对xml文件进行修改操作后,保存的时候一定要用FileOutputStream来读取,并使用OutputFormat进行编码设置,不然xml保存后编码为ASCII,这样读xml的文件时会出现错误的,代码如下:
private boolean doc2XmlFile(Document document,String fileName)
{
boolean flag = true;
try {
OutputFormat format = OutputFormat.createPrettyPrint();
  format.setEncoding("UTF-8");
XMLWriter writer = new XMLWriter(new FileOutputStream(fileName), format);  
  document.setXMLEncoding("utf-8");
  writer.write(document);
  writer.close();
} catch (Exception ex) {
     flag = false;
     ex.printStackTrace();
  }
  return flag;
}

以上就是对xml文件进行中文处理的方法,但是前提是一定要确保你目前的文件的格式是utf-8的,用EditPlus另存为一下就行了

你可能感兴趣的:(dom4j)