Dom4j读写文件时的编码问题

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



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


原因分析:
  由于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流中修改字符编码













评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值