`
zhang_xzhi_xjtu
  • 浏览: 536359 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

xml encoding和实际编码不同导致xml解析异常

    博客分类:
  • java
 
阅读更多
发现一个xml encoding和实际编码不同导致xml解析异常。

对于
<?xml version="1.0" encoding="GBK" ?><a>市</a>
使用了utf-8 getBytes后得到一个byte[],然后使用xml解析。
由于xml解析器会自动识别xml中的GBK,然后使用GBK解码,导致xml解析失败。


<?xml version="1.0" encoding="GBK" ?><a>市</a>
utf-8
3C3F786D6C2076657273696F6E3D22312E302220656E636F64696E673D2247424B22203F3E3C61 3E E5B8 82 3C  2F61 3E
gbk                                        
<?xml version="1.0" encoding="GBK" ?><a>甯?/a>
3C3F786D6C2076657273696F6E3D22312E302220656E636F64696E673D2247424B22203F3E3C61 3E E5B8 3F     2F61 3E

可以看到,由于编码问题,市的utf-8编码E5B882和<的utf-8编码3C被GBK解码时,
解析为E5B8, 3F(不能识别,默认?),导致</a>中的<被提前解析到text中,导致后续xml解析找不到<,解析失败。

16进制码值 打印字符
2F61 /a
61 a
3C <
3E >
3F ?


0
1
分享到:
评论

相关推荐

    XML编码批量转换工具

    如果XML文件没有正确的编码声明,或者文件实际编码与声明不符,解析器在读取文件时可能会遇到问题,导致无法正确显示非ASCII字符。 批量转换XML编码的过程可能涉及以下步骤: 1. **扫描文件**:工具首先会遍历指定...

    关于解析xml的一些demo

    XML(eXtensible Markup Language)是一种用于标记数据的语言,广泛应用于网络数据交换、配置文件存储等领域。在本文中,我们将深入探讨XML的基本概念、...在实际开发中,选择合适的解析方式取决于具体需求和资源限制。

    XML读取以及解析

    在不同的编程语言中,有许多成熟的XML解析库,例如: - Java:DOM4J、JAXB、Java的内置`javax.xml.parsers`包。 - Python:ElementTree、lxml。 - C#:System.Xml命名空间下的XmlDocument、XmlNodeReader等。 -...

    C语言XML解析库封装

    5. **错误处理**:处理XML解析过程中的语法错误和异常情况。通常,解析库会返回错误代码,并提供获取错误信息的接口。 6. **优化**:考虑性能和资源使用,比如通过预处理缓存信息,减少不必要的内存分配,或者使用...

    tinyxml解析库

    在实际应用中,TinyXML适用于小型项目或学习XML解析的入门级工具。然而,对于大型项目或对性能有高要求的场景,可能需要更强大的库,如pugixml、Xerces-C++或 RapidXML,它们提供了更高效和功能丰富的XML处理能力。 ...

    Android 解析gbk、gb2312编码的xml文件

    因此,我们需要捕获并处理可能的`UnsupportedEncodingException`和其他XML解析异常。 4. **其他解析库**: Android也支持其他的XML解析库,如`org.w3c.dom.DocumentBuilder`和`javax.xml.parsers.SAXParser`。这些...

    Android 生成和PULL解析xml

    在上述代码中,我们首先定义了XML的版本和编码,接着创建了一个根元素`&lt;root&gt;`,并添加了一个名为`&lt;element&gt;`的子元素。最后,我们将XML内容写入到应用的私有文件系统中。 接下来,我们讨论Android中的PULL解析器...

    解析XML数据

    XML(eXtensible Markup Language)是一种用于标记数据的...理解并熟练掌握XML解析技术,将有助于我们在各种场景下有效地处理和传递数据。对于初学者来说,观看像老罗这样的教学视频,结合实践,无疑是学习的好方法。

    xml.rar_UTF XML_UTF-8编码_utf_utf-8_xml utf-8

    XML解析库,如Java的JAXB、DOM4J,Python的ElementTree等,都提供了处理编码的方法。例如,读取XML时可以设置编码参数,写入XML时可以指定输出的编码格式。在编码转换过程中,我们可能需要借助第三方库,如Java的ICU...

    XML文件的创建和解析

    XML(eXtensible Markup Language)是一种用于存储和传输数据的标记语言,它以其结构化、自解释性和可扩展性而被广泛应用于...在实际开发中,可以根据项目需求选择合适的方法,结合DOM和SAX的优点,优化XML处理性能。

    html解析为xml

    XML 具有良好的结构化特性,易于被计算机识别和解析,适合于数据交换和跨平台应用。同时,许多现代的 Web 服务和应用程序更倾向于使用 XML 来处理数据,因此 HTML 转 XML 成为了一个重要的技术需求。 #### 二、...

    XML文件解析源码

    XML解析分为两种主要类型:DOM(Document Object Model)解析和SAX(Simple API for XML)解析。DOM解析将整个XML文档加载到内存中,形成一个树形结构,便于随机访问任何部分;而SAX解析则是事件驱动的,逐行读取XML...

    xml解析xml解析xml解析xml解析

    XML解析涉及理解XML文档的结构、使用不同的解析技术(DOM、SAX、StAX),以及掌握XML的命名空间、Schema和DTD验证。不同的解析方法适用于不同场景,选择合适的解析方式对于高效处理XML至关重要。同时,XML的广泛应用...

    XML文件解析实例

    XML(eXtensible Markup Language)是一种用于标记数据的语言,广泛应用在互联网上交换、存储和表示结构化...理解XML解析不仅有助于开发人员处理和存储数据,还能为构建基于XML的Web服务、配置文件和数据交换提供基础。

    解决读取XML元素时的中文乱码的程序

    2. **统一编码方式**:在整个程序处理XML的过程中,所有涉及读取、解析、操作和写入XML的组件都应使用相同的编码。例如,如果选择了UTF-8,那么读取文件、创建XML对象、写入文件等操作都应使用UTF-8。 3. **使用...

    xml 解析demo

    本教程将深入探讨XML解析的基本概念、方法以及在实际应用中的示例。 XML的设计目标是传输和存储数据,而非显示数据,这与HTML的主要区别在于HTML专注于数据的呈现方式。XML使用自定义的标签来描述数据结构,使得...

    XML解析技术DOM4J解析

    ### XML解析技术DOM4J解析 #### DOM4J解析概览 DOM4J是一种高性能、功能强大且极其易于...它不仅提供了强大的XML解析和生成能力,还支持XPath查询、XML Schema验证等高级功能,是Java开发者处理XML数据的理想工具。

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

    - 测试不同的编码格式(如UTF-8、GB2312)的效果,确保最终输出的XML文档能够被正确解析和显示。 5. **参考资料查阅:** - Oracle官方文档和技术支持论坛中的相关讨论,例如[Oracle Forums]...

    生成XML文件 并解析

    在"生成XML文件并解析"这个主题中,我们需要了解两个主要部分:XML文件的创建和XML文件的解析。 1. **生成XML文件**: - **XML结构**:XML文件由一系列元素(Element)组成,每个元素有开始标签、内容和结束标签,...

Global site tag (gtag.js) - Google Analytics