`

解决使用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,就是这么简单。

分享到:
评论

相关推荐

    dom4j 输出XML时中文乱码解决

    然而,在使用 Dom4J 输出 XML 文档时,中文字符可能会出现乱码问题。这是因为 Dom4J 的默认编码方式可能不支持中文字符。解决这个问题的方法是将输出编码方式设置为 UTF-8。 设置输出编码方式 ------------------ ...

    Dom4j解析XML及中文问题

    本文将深入探讨如何使用Dom4j解析XML以及解决中文乱码的问题。 首先,让我们了解Dom4j的基本用法。在解析XML文件时,通常会使用`DocumentBuilderFactory`和`DocumentBuilder`来创建一个`Document`对象,然后通过这...

    dom4j 写UTF-8的xml乱码问题 使用FileOutputStream

    标题中的“dom4j 写UTF-8的xml乱码问题 使用FileOutputStream”涉及的是在使用Java编程语言处理XML文件时遇到的编码问题。DOM4J是一个强大的Java库,用于处理XML、XPath和XSLT,它提供了丰富的API来读取、写入、修改...

    dom4j中文彻底解决

    通过这种方式,我们可以确保DOM4J生成的XML文件采用正确的字符编码,避免了可能出现的乱码问题。同时,这也提醒我们在使用任何处理文本输出的API时,都要注意指定正确的编码,以保证跨平台和多语言环境下的兼容性。 ...

    Dom4j解析XML.pdf

    本文主要介绍了如何使用Dom4j库来解析XML文档,包括创建XML文档、添加、修改和删除节点,以及处理XML文档的格式化输出和中文问题。Dom4j是一个在SourceForge.net上的开源Java项目,它提供了对XML的高效解析功能,以...

    java jsp生成中文xml

    在我们的例子中,`dom4j-1.6.1.jar`是DOM4J库的版本1.6.1,我们需要将其导入到项目中作为依赖,以便能够利用其功能来生成XML。 生成XML的基本步骤如下: 1. **创建Document对象**:XML文档的核心是`Document`对象...

    基于jquery_二维码生成和打印_兼容IE6-IE8_解决汉字乱码问题.zip

    本资源“基于jquery_二维码生成和打印_兼容IE6-IE8_解决汉字乱码问题.zip”提供了一个解决方案,它使得在老旧的IE6-IE8浏览器上也能生成并打印包含汉字的二维码,这在很多情况下是非常实用的,因为这些老版本的IE...

    dom4j读取XML文件详解

    在实际应用中,dom4j经常用于读写XML文件,例如,在一个Java Web应用程序中,我们可以使用dom4j来读取XML配置文件,或者使用dom4j来生成XML报表等。 dom4j是一个功能强大且易用的Java XML API,广泛应用于读写XML...

    xml生成解析

    `WriteXml` 类展示了如何使用 dom4j 生成 XML 文档。这个过程包括: 1. 使用 `DocumentHelper.createDocument()` 创建一个新的 `Document` 对象。 2. 添加根元素 `root` 到 `Document` 中,通过 `addElement` 方法...

    关于用oracle的dbms_xmldom导出xml文档编码格式UTF-8的问题总结

    在处理Oracle数据库中使用DBMS_XMLDOM模块创建并导出XML文档时,经常会遇到有关文档编码格式的问题,尤其是如何确保导出的XML文档采用UTF-8编码格式。本文将对这一问题进行详细的探讨,并提供解决方法。 #### 问题...

    对Apache生产的XML文档生成和解析库的封装,支持XML中包含中文字符串

    在生成XML时,必须指定正确的字符编码,确保中文字符能被正确地序列化。在解析XML时,解析器需要识别并解码这个编码,以便正确地还原中文字符串。在使用Apache的XML库时,开发者需要设置合适的编码参数,避免乱码...

    PHP 生成的XML以FLASH获取为乱码终极解决

    针对PHP生成XML文件,在使用FLASH读取时出现乱码的问题,可以通过以下知识点进行详细的说明和解决: 1. FLASH读取XML乱码的原因: - FLASH在读取外部文本文件时,尤其是XML,会根据System.useCodepage静态属性来...

    【Qt】 XML流读写XML.rar

    3. QXmlStreamWriter:用于生成XML数据,也使用事件驱动的方式,逐个元素写入XML流。这种方式可以更有效地控制XML的输出格式。 三、XML读取 1. QDomDocument使用:首先,我们需要使用QDomDocument加载XML文件,...

    mxGraph插件,java代码xml导出成图片

    由于Linux默认可能不包含某些中文字体,因此在渲染图形时可能会出现乱码。解决方法是在服务器上安装必要的中文字体,或者在jGraphX的渲染过程中指定可用的中文字体。 总的来说,实现这个功能需要对前端的mxGraph和...

    android 三种方式解析XML(DOM,Pull,Sax) 带文件编码识别

    在解析XML前,需要确定正确的编码,否则可能会出现乱码。Android提供了`java.nio.charset.Charset`类来检测文件编码。可以先读取文件的前几个字节,然后尝试各种常见编码,看哪个能正确解码。 在实际应用中,如果...

    网站开发中遇到UTF8出现乱码问题.pdf

    网站开发过程中,尤其是在进行国际化的过程中,常常会遇到UTF-8编码相关的乱码问题。这些问题主要集中在以下几个方面: 一、HTML页面转UTF-8编码问题 1. 首先,需要在HTML文档的部分,标签之前添加标签来声明编码:...

    面试知识点总结--XML.pdf

    在使用JDOM解析XML时,可能会遇到字符编码问题,导致中文显示为乱码。解决方法是设置正确的编码方式,例如在生成或输出XML时指定编码为GBK或UTF-8。在给出的代码示例中,使用了`javax.xml.transform.Transformer`来...

    Xml.zip_Markup XML

    Markup库是一个用于处理XML的工具,它提供了解析、操作和生成XML文档的功能。在本压缩包中,你可以找到如何使用Markup库解析XML文件的源码示例。解析XML通常包括以下几个步骤: 1. 加载XML文档:使用Markup库的API...

    Word文档转xml

    在Android中,通常会使用诸如DOM、SAX或StAX这样的解析器来读取和解析XML内容,根据XML结构来获取所需的数据。 总之,将Word文档转换为XML在Android应用中是一项常见的任务,涉及到文件读写、XML处理和网络通信等多...

Global site tag (gtag.js) - Google Analytics