-
-
String fileName =
"test.xml";
-
-
OutputFormat format = OutputFormat.createPrettyPrint();
-
format.setEncoding(
"UTF-8");
// 指定XML编码
-
-
//这里用的是 FileWrite,默认是ANSI
-
XMLWriter writer =
new XMLWriter(
new FileWrite(
new File(fileName)), format);
-
-
上面代码生成的xml文件编码,内容是utf-8的,但文件格式确是ANSI的,导致格式不统一.
原因分析:
由于FileWriter默认的输出编码是ANSI编码,而Dom4j中的wirte方法提供的内容实际是以UTF-8保存的,因此造成了包括中文字符的XML文件无法正常阅读。
解决方法:
不能使用简单的FileWriter,而应该是使用一个能指定具体输出编码的Writer,在JDK的io包中, OutputStreamWriter可以指定输出编码。
正确的代码如下:
j
-
XMLWriter writer =
new XMLWriter(
new FileOutputStream(
new File(fileName)), format);
-
-