使用dom4j 生成xml UTF-8 编码错误之解决

2023-11-02

                                                                     
                

   
   
  1.          //文件名称
  2.         String fileName = "test.xml";
  3.          // 格式化XML文档
  4.         OutputFormat format = OutputFormat.createPrettyPrint();
  5.                format.setEncoding( "UTF-8");     // 指定XML编码
  6.         
  7.          //这里用的是 FileWrite,默认是ANSI
  8.         XMLWriter writer = new XMLWriter( new FileWrite( new File(fileName)), format);
  9.         writer.write(document);
  10.         writer.close();

上面代码生成的xml文件编码,内容是utf-8的,但文件格式确是ANSI的,导致格式不统一.

原因分析:
  由于FileWriter默认的输出编码是ANSI编码,而Dom4j中的wirte方法提供的内容实际是以UTF-8保存的,因此造成了包括中文字符的XML文件无法正常阅读。
解决方法:
   不能使用简单的FileWriter,而应该是使用一个能指定具体输出编码的Writer,在JDK的io包中, OutputStreamWriter可以指定输出编码。
  正确的代码如下:
j


   
   
  1. XMLWriter writer = new XMLWriter( new FileOutputStream( new File(fileName)), format);
  2.         writer.write(document);
  3.         writer.close();


           
               
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用dom4j 生成xml UTF-8 编码错误之解决 的相关文章

随机推荐