`
leiwuluan
  • 浏览: 705422 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

Dom4J UTF-8 编码问题解决方案......

    博客分类:
  • java
阅读更多

这几天用到了xml技术但是发现了个问题就是无法以UTF-8保存xml文件,保存后再次读出的时候会报“Invalid byte 2 of 2-byte UTF-8 sequence.”这样一个错误

 

试着使用GBK、gb2312编码来生成的xml文件却可以正常的被解析。

 

后来在网上找到前辈的资料。

 public void createXML(String fileName) {

        Document doc = org.dom4j.DocumentHelper.createDocument();

        Element root = doc.addElement("book");

        root.addAttribute("name", "我的图书");

 

        Element childTmp;

        childTmp = root.addElement("price");

        childTmp.setText("21.22");

 

        Element writer = root.addElement("author");

        writer.setText("李四");

        writer.addAttribute("ID", "001");

 

        try {

            org.dom4j.io.XMLWriter xmlWriter = new org.dom4j.io.XMLWriter(

                    new FileWriter(fileName));

            xmlWriter.write(doc);

            xmlWriter.close();

        }

        catch (Exception e) {

            System.out.println(e);

        }

    }

 

 

改为这个就行了。

public void createXML(String fileName) {

        Document doc = org.dom4j.DocumentHelper.createDocument();

        Element root = doc.addElement("book");

        root.addAttribute("name", "我的图书");

 

        Element childTmp;

        childTmp = root.addElement("price");

        childTmp.setText("21.22");

 

        Element writer = root.addElement("author");

        writer.setText("李四");

        writer.addAttribute("ID", "001");

 

        try {
            //注意这里的修改

            org.dom4j.io.XMLWriter xmlWriter = new org.dom4j.io.XMLWriter(

                    new FileOutputStream(fileName));

            xmlWriter.write(doc);

            xmlWriter.close();

        }

        catch (Exception e) {

            System.out.println(e);

        }

    }

 

 

 

就这样就行了、、、、、忙也不多说了,呵呵希望对你们有帮助。

 

分享到:
评论
1 楼 oraple 2010-11-28  
实际上我会将UTF-8 改成utf8,这样貌似挺有效,不过再读一遍再写就出错了。
所以改用FileOutputStream还是最有效的

相关推荐

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

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

    dom4j 输出XML时中文乱码解决

    Dom4J 输出 XML 时中文乱码解决方案 Dom4J 是一个流行的 Java 库,用于解析和生成 XML 文档。然而,在使用 Dom4J 输出 XML 文档时,中文字符可能会出现乱码问题。这是因为 Dom4J 的默认编码方式可能不支持中文字符...

    PHP实例开发源码-小刀php网站自动收录 UTF-8.zip

    该源码由开发者小刀编写,使用UTF-8编码,确保了跨语言支持。下面将详细解释这个项目可能涉及的关键知识点。 1. **PHP基础**: PHP是一种广泛使用的服务器端脚本语言,特别适合于Web开发,可以嵌入到HTML中。这个...

    java处理BOM头的XML

    在UTF-8编码中,BOM是可选的,但某些编辑器如记事本默认会添加。 当XML文件以UTF-16编码并包含BOM头时,DOM4J在解析过程中可能会遇到问题,因为DOM4J默认并不期望XML文档以这种方式开始。这可能导致解析异常,例如`...

    cxf客户端出现GBK编码问题解决jar.rar

    CXF客户端在发送或接收包含GBK编码的数据时,如果默认采用的是UTF-8或其他非GBK的字符集,就可能出现问题。 **解决步骤** 1. **检查服务器配置**:首先,确保服务器端正确设置了字符编码为GBK。这可能需要在服务端...

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

    此外,解决汉字乱码问题通常需要确保服务器和客户端的字符编码一致,如UTF-8。在JavaScript中,使用正确的编码进行字符串处理,如`decodeURIComponent()`和`encodeURIComponent()`函数,可以确保汉字在生成二维码时...

    dom4j解析XML

    并且在Java代码中,使用UTF-8编码读写文件,避免乱码问题。 7. **TestDOM4j** 压缩包中的`TestDOM4j`文件可能是一个测试程序,它展示了如何应用上述操作。通过阅读和运行这个程序,你可以更好地理解DOM4J在实际...

    XML解析技术DOM4J解析

    DOM4J的开发目标与JDOM相似,即提供易于使用且直观的操作体验,但DOM4J更进一步,旨在成为解决所有Java/XML问题的完整方案。为了达到这一目标,DOM4J在防止应用程序错误方面可能不如JDOM那么严格,但它的灵活性和...

    Ajax,UTF-8还是GB2312 eval 还是execScript

    XMLHttpRequest对象的`responseText`属性默认会将响应内容解析为UTF-8编码。在处理非UTF-8编码的数据时,如果不正确地处理,会导致乱码。一种解决方案是让服务器在返回数据时明确指定编码,例如通过HTTP头的`Content...

    AJAX编码问题

    例如,当浏览器发送的数据是UTF-8编码,而服务器端默认使用ISO-8859-1编码解析时,就会导致数据解析错误,从而显示为乱码。 #### 二、AJAX POST请求乱码原因分析 1. **客户端与服务器端编码不一致**:这是最常见的...

    QT问题集锦-从学习Qt遇到的各种问题.docx

    - 解决:将文件编码转换为UTF-8。 6. **控件背景图片不显示**: - 解决:将图片添加到资源文件中,通过资源文件指定背景图片。 7. **程序异常结束**: - 原因:可能是在系统目录中添加了Qt的动态链接库(dll)...

    DOM4J/JDOM对XML的操作

    3. 社区支持:DOM4J拥有更活跃的社区和更频繁的更新,因此遇到问题时可能更容易找到解决方案。 4. 文档:DOM4J的文档相对更加详尽,使得开发者更容易上手。 在实际开发中,选择DOM4J还是JDOM,通常取决于项目需求和...

    PHP 中 DOMDocument保存xml时中文出现乱码问题的解决方案

    然而,在保存XML时,DOMDocument会默认使用UTF-8编码,这就可能导致中文字符显示为乱码。 以下是一个示例,展示了问题的发生: ```php $xml = new DOMDocument(); $xml->loadHTML('我就是测试看看</div>'); $dom =...

    hibernate常见错误解决方案

    当Hibernate尝试解析一个XML配置文件时,如果文件中的某些字符不符合UTF-8编码规则,就会抛出此类异常。 **解决方法:** - 确保所有XML配置文件中的文本都符合UTF-8编码标准。 - 使用文本编辑器或IDE检查并修复问题...

    Ajax的一些有用的小技巧.pdf

    4. **对获取的文本进行转码**:如果无法改变原始数据的编码方式,也可以考虑在输出文本之前将其转换为Unicode编码,或者直接将数据转换为UTF-8编码。 #### 处理IE下的缓存问题 Internet Explorer(IE)浏览器在...

    NativeXml-master.rar

    XMLDoc.Encoding := 'UTF-8'; XMLDoc.Active := True; XMLDoc.RootNode.NodeName := '根节点'; // 添加子节点 XMLDoc.RootNode.AddChild('子节点1'); end; ``` 2. **读取 XML 文档**: ```delphi uses ...

    datetimepicker 日期NaN错误 中文乱码(附修正版)

    1. **文件编码**:如果HTML、CSS或JavaScript文件本身编码不是UTF-8或者其他与服务器或浏览器预期一致的编码,就可能导致中文乱码。 2. **页面设置**:HTML文件中缺少`<meta charset="UTF-8">`标签,或者服务器发送...

Global site tag (gtag.js) - Google Analytics