`
zhang_xzhi_xjtu
  • 浏览: 524561 次
  • 性别: 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
分享到:
评论

相关推荐

    Tinyxml 源代码(VC6 & VS2005)

    TinyXML是一个简单小巧,可以很容易集成到其它程序中的C++ XML解析器。 它能做些什么 简单地说,TinyXML解析一个XML文档并由此生成一个可读可修改可保存的文档对象模型(DOM)。 XML的意思是“可扩展标记语言...

    xml入门教程/xml入门教程

    &lt;? xml版本信息 (编码信息) (文档独立性信息) ?&gt; 如:&lt;?xml version="1.0" encoding="gb2312" standalone="yes"?&gt; 文档类型声明 规定元素的结构和属性列表的取值 如:&lt;!DOCTYPE studinfo SYSTEM ...

    XML轻松学习手册--XML肯定是未来的发展趋势,不论是网页设计师还是网络程序员,都应该及时学习和了解

    实际情况也是这样的,XML设计的目的就是用来方便的共享和交互数据的。下一章,我们将系统的了解关于XML的各种术语。 二.DTD的有关术语 什么是DTD,我们上面已经简略提到。DTD是一种保证XML文档格式正确的有效...

    day023-xml解析笔记和代码.rar

    不同的语言都支持XML解析(将XML转换为对应语言中的数据) 1. 数据交换格式(一般不用了,用json代替了) 2. 配置文件都使用XML格式,框架都是用xml和Properties作为配置文件。 1.3. 使用:(掌握...

    quick-xml —高性能XML拉式读取器/写入器-Rust开发

    读者:几乎为零拷贝(尽可能使用Cow)是易于进行内存分配(API提供了一种重用缓冲区的方法)支持各种编码(具有编码功能),名称空间解析,特殊字符docs.rs语法受xml-rs启发。示例Reader使用quick_xml :: Reader;...

    android xml文件操作

    * 是从不同的文档创建的,不是从创建此节点的文档创建的,则引发此异常。 * NO_MODIFICATION_ALLOWED_ERR: 如果此节点或新节点的父节点为只读的,则引发此异常。 * NOT_FOUND_ERR: 如果 oldChild 不是此节点的...

    go-xml-parse:Go中的流式XML解析器示例

    该解析器也可以在流模式下使用,但是我发现在线文档和示例分别很简洁和不存在,因此这是我使用coding / xml解析Wikipedia的示例代码和一些解释! (完整的示例代码位于 ) 这是文档中示例Wikipedia页面的一小段...

    XML encoding exception Terminator-开源

    该程序可用于解决有关XML编码异常的问题。 步骤1:将XML转换为SXML; 步骤2:使用其他XML解析器库提取SXML中的数据ID; 步骤3:从SXML中提取原始数据。

    xml解析

    XML: 概念:Extensible Markup Language 可扩展标记语言 可扩展:标签都是自定义的。...encoding:编码方式。告知解析引擎当前文档使用的字符集,默认值:ISO-8859-1 standalone:是否独立 取值: yes:不依赖其

    php解析xml提示Invalid byte 1 of 1-byte UTF-8 sequence错误的处理方法

    也就是所虽然我们标识了要将xml保存为utf-8格式但实际上文件是以GBK格式来保存的,所以这也就是为什么能够我们使用GBK、GB2312编码来生成xml文件能正确的被解析,而以UTF-8格式生成的文件不能被xml解析器所解析的...

    PHP解析xml格式数据工具类示例

    本文实例讲述了PHP解析xml格式数据工具类。分享给大家供大家参考,具体如下: class ome_xml { /** * xml资源 * * @var resource * @see xml_parser_create() */ public $parser; /** * 资源编码 * * @...

    xsd2xml:来自xsd的python轻量级xml生成器

    它使用库解析给定的架构文档,然后填充一些硬编码的值。 请检查以下示例。 XSD &lt;? xml version = " 1.0 " encoding = " utf-8 " ?&gt; &lt; xs : element name = " empno " type = " xs:string " /

    8583报文解析框架Simple8583.zip

    CHAR(asc编码,直接使用字符串的getBytes(ENCODING)方法获取字节数组)  BINARY(二进制编码,在打包时将8位01值组装为一个字节), NUMERIC(BCD编码,即8421码), ...

    myEclipse乱码解决办法

    windows-&gt;Preferences-&gt;general-&gt;Context Types-&gt;Text,选择Java Source File,在下面的Default encoding输入框中输入UTF-8,点Update,则设置Java文件编码为UTF-8。 一、设置新建常见类型文件的默认编码格式,也...

    dom4j

    &lt;br&gt; /** 指定XML编码 */ &lt;br&gt; format.setEncoding("GBK"); &lt;br&gt; writer= new XMLWriter(new FileWriter(new File(filename)),format); &lt;br&gt; writer.write(document); &lt;br&gt; writer.close(); &lt;br&gt;...

    NekoHTML校验HTML

    如果为false,和被忽略,所有的内容都被解析。 http://cyberneko.org/html/features/document-fragment False 解析HTML片段时是否作标签增补。此功能不要用在DOMParser上,而要用在DOMFragmentParser上。 ...

    toml:带有反射的Golang TOML解析器

    带有反射的TOML解析器和编码器TOML代表汤姆(Tom)的“显而易见的最小语言”。 这个Go包提供了类似于Go的标准库json和xml包的反射接口。 此程序包还支持encoding.TextUnmarshaler和encoding.TextMarsh

    iuhyiuhkjh908u0980

    以下先列出初步的的ant构建文件的代码: build.xml &lt;?xml version="1.0" encoding=&quo ... by vb2005xu 2009-06-02 回复 (3) 相关讨论 持续集成简单总结 一、理论篇: 持续集成鼓励尽量短周期内项目团队的代码提交...

    java面试800题

    "&lt;?xml version=""1.0"" encoding=""GB2312""?&gt; …&lt;/root&gt;" Q0039 java接口与抽象类的区别 "1.接口可以多重继承 ,抽象类不可以 2.接口定义方法,不给实现;而抽象类可以实现部分方法 3.接口中基本数据类型的...

    解决中文乱码的几种解决方法(推荐)

    2. 后台中,我使用的是commons-fileUpload组件,ServletFileUpload 解析form表单和文件, 3. 设置 request.setCharacterEncoding(“UTF-8”); 4. 设置了ServletFileUpload .setHeaderEncoding(“UTF-8”); 5.Tomcat ...

Global site tag (gtag.js) - Google Analytics