`

解决使用dom4j生成xml会出现中文乱码的问题

阅读更多

在使用dom4j生成xml文件时,如果设置编码为gbk,如下面的代码,则不会出现中文乱码

OutputFormat format = OutputFormat.createPrettyPrint();  
            format.setEncoding("gb2312");
XMLWriter output = new XMLWriter(new FileWriter("event.xml"), format);
output.write(document);  
output.close();

这时,生成的xml头文件为 “<?xml version="1.0" encoding="gb2312"?>”

但要将format编码设置为utf-8时,则会出现问题,即用文本文档打开生成xml,中文不会出现问题,但用高级记事本编辑器,如editplus和eclipse打开时,都会出现中文乱码,此时xml的头文件为

<?xml version="1.0" encoding="UTF-8"?>

XML文件头部的encoding="utf-8"是告诉编辑器以什么编码方式解析文件内容,但改成utf-8出现乱码是因为:由于FileWriter默认的输出编码是ANSI编码,而Dom4j中的wirte方法提供的内容实际是以UTF-8保存的,因此造成了包括中文字符的XML文件无法正常阅读

所以可以修改为:

OutputFormat format = OutputFormat.createPrettyPrint();  
java.io.OutputStream out = new java.io.FileOutputStream("event.xml");
java.io.Writer wr = new java.io.OutputStreamWriter(out, "UTF-8");
XMLWriter output = new XMLWriter(wr,format); 
 output.write(document);  
 wr.close();
 out.close();            
 output.close();  

 其实就是用可改变编码的OutputStreamWriter代替了普通的FileWriter,就是这么简单。

分享到:
评论

相关推荐

    Tinyxml 源代码(VC6 & VS2005)

    如果使用STL,TinyXML会使用std::string类,而且完全支持std::istream,std::ostream,operator和operator&gt;&gt;。许多API方法都有 ‘const char*’和’const std::string&’两个版本。 如果被编译成不使用STL,则任何...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part4

    全书一共被压缩为5个rar,这是第四个!...21.2 中文乱码问题的解决方案 614 21.3 使用过滤器解决中文问题 616 21.4 让tomcat支持中文文件名 620 21.5 国际化与本地化 621 21.5.1 locale 621.. 21.5.2 资源包 623 ...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part2

    全书一共被压缩为5个rar,这是第二个!!!! 其他的请看ID:ljtt123(本人...21.3 使用过滤器解决中文问题 616 21.4 让tomcat支持中文文件名 620 21.5 国际化与本地化 621 21.5.1 locale 621.. 21.5.2 资源包 623 ...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part3

    全书一共被压缩为5个rar,这是第三个!!!! 其他的请看ID:ljtt123(本人...21.3 使用过滤器解决中文问题 616 21.4 让tomcat支持中文文件名 620 21.5 国际化与本地化 621 21.5.1 locale 621.. 21.5.2 资源包 623 ...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part5

    全书一共被压缩为5个rar,这是第五个!!!! 其他的请看ID:ljtt123(本人...21.3 使用过滤器解决中文问题 616 21.4 让tomcat支持中文文件名 620 21.5 国际化与本地化 621 21.5.1 locale 621.. 21.5.2 资源包 623 ...

    北京中科信软AJAX培训

    中文乱码问题及其解决方案 使用responseText处理返回的普通文本信息 实战技巧:数据校验 实战技巧:级联菜单 实战技巧:条目内容 实战技巧:级联下拉列表 使用responseXML处理返回的XML信息 实战技巧:获取元对象...

    JAVA 范例大全 光盘 资源

    常见问题 读取Properties文件出现中文乱码 182 第9章 Java异常处理与反射机制 183 实例73 运用throws、throw、try与catch 183 实例74 throws声明异常的实例 185 实例75 自定义异常类 187 实例76 使用finally...

    JTBC网站内容管理系统jenfy美化版

    1.该版本修正了jenfy美化版留言薄出现乱码的问题 2.增加了文章的上下篇功能 3.修正了幻灯片图片路径出错的BUG 4.实现了首页自动生成html文件功能 【JTBC(CMS)-jenfy美化修正无错版使用说明】 数据库路径为common/...

    Z-Blog v1.6 渡虎谷修改版

    服务器:Windows 2000及IIS5.0以上,需要ADO数据库、FSO、XMLDOM等系统组件支持和空间的读写权限,具体请查询网络服务商或查看本机配置。客户端:支持Mozilla FireFox 1.0、IE6.0、Opear 8.0及更高版本的浏览器。...

    Java学习笔记-个人整理的

    {14.4}dom4j}{207}{section.14.4} {14.5}XPath}{210}{section.14.5} {14.6}apache.commons}{211}{section.14.6} {15}sqlite3}{213}{chapter.15} {16}Web基础}{215}{chapter.16} {16.1}...

Global site tag (gtag.js) - Google Analytics