码迷,mamicode.com
首页 > 其他好文 > 详细

Dom4j读写文件时的编码问题

时间:2014-05-07 05:24:24      阅读:249      评论:0      收藏:0      [点我收藏+]

标签:dom   xml   utf-8   

1、Dom4j写文件时的编码问题

bubuko.com,布布扣


如上图代码所示,如果使用 writer = new XMLWriter(new FileWriter(new File(filepath)), xmlFormat); 下载的xml文件编码格式如下:

bubuko.com,布布扣


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

OutputStream out=FileOutputStream(fileName);

Writer wr = OutputStreamWriter(out, "UTF-8");   

writer = new XMLWriter(wr);

 writer.write(document); 

 writer.flush();

 writer.close();


2、Dom4j读文件时编码问题(常见问题:Invalid byte 1 of 1-byte UTF-8 sequence

原因分析:

中文环境下,我们将xml保存为utf-8格式但实际上文件是以GBK格式来保存的。

 
解决方法:

1、手动将文件另存为。。。 时,修改文件编码为UTF-8.

2、Dom4J读取文件时,用IO读,在IO流中修改字符编码

bubuko.com,布布扣













Dom4j读写文件时的编码问题,布布扣,bubuko.com

Dom4j读写文件时的编码问题

标签:dom   xml   utf-8   

原文地址:http://blog.csdn.net/wuseyukui/article/details/25053127

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!