发现一个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 ?
分享到:
相关推荐
TinyXML是一个简单小巧,可以很容易集成到其它程序中的C++ XML解析器。 它能做些什么 简单地说,TinyXML解析一个XML文档并由此生成一个可读可修改可保存的文档对象模型(DOM)。 XML的意思是“可扩展标记语言...
<? xml版本信息 (编码信息) (文档独立性信息) ?> 如:<?xml version="1.0" encoding="gb2312" standalone="yes"?> 文档类型声明 规定元素的结构和属性列表的取值 如:<!DOCTYPE studinfo SYSTEM ...
实际情况也是这样的,XML设计的目的就是用来方便的共享和交互数据的。下一章,我们将系统的了解关于XML的各种术语。 二.DTD的有关术语 什么是DTD,我们上面已经简略提到。DTD是一种保证XML文档格式正确的有效...
不同的语言都支持XML解析(将XML转换为对应语言中的数据) 1. 数据交换格式(一般不用了,用json代替了) 2. 配置文件都使用XML格式,框架都是用xml和Properties作为配置文件。 1.3. 使用:(掌握...
读者:几乎为零拷贝(尽可能使用Cow)是易于进行内存分配(API提供了一种重用缓冲区的方法)支持各种编码(具有编码功能),名称空间解析,特殊字符docs.rs语法受xml-rs启发。示例Reader使用quick_xml :: Reader;...
* 是从不同的文档创建的,不是从创建此节点的文档创建的,则引发此异常。 * NO_MODIFICATION_ALLOWED_ERR: 如果此节点或新节点的父节点为只读的,则引发此异常。 * NOT_FOUND_ERR: 如果 oldChild 不是此节点的...
该解析器也可以在流模式下使用,但是我发现在线文档和示例分别很简洁和不存在,因此这是我使用coding / xml解析Wikipedia的示例代码和一些解释! (完整的示例代码位于 ) 这是文档中示例Wikipedia页面的一小段...
该程序可用于解决有关XML编码异常的问题。 步骤1:将XML转换为SXML; 步骤2:使用其他XML解析器库提取SXML中的数据ID; 步骤3:从SXML中提取原始数据。
XML: 概念:Extensible Markup Language 可扩展标记语言 可扩展:标签都是自定义的。...encoding:编码方式。告知解析引擎当前文档使用的字符集,默认值:ISO-8859-1 standalone:是否独立 取值: yes:不依赖其
也就是所虽然我们标识了要将xml保存为utf-8格式但实际上文件是以GBK格式来保存的,所以这也就是为什么能够我们使用GBK、GB2312编码来生成xml文件能正确的被解析,而以UTF-8格式生成的文件不能被xml解析器所解析的...
本文实例讲述了PHP解析xml格式数据工具类。分享给大家供大家参考,具体如下: class ome_xml { /** * xml资源 * * @var resource * @see xml_parser_create() */ public $parser; /** * 资源编码 * * @...
它使用库解析给定的架构文档,然后填充一些硬编码的值。 请检查以下示例。 XSD <? xml version = " 1.0 " encoding = " utf-8 " ?> < xs : element name = " empno " type = " xs:string " /
CHAR(asc编码,直接使用字符串的getBytes(ENCODING)方法获取字节数组) BINARY(二进制编码,在打包时将8位01值组装为一个字节), NUMERIC(BCD编码,即8421码), ...
windows->Preferences->general->Context Types->Text,选择Java Source File,在下面的Default encoding输入框中输入UTF-8,点Update,则设置Java文件编码为UTF-8。 一、设置新建常见类型文件的默认编码格式,也...
<br> /** 指定XML编码 */ <br> format.setEncoding("GBK"); <br> writer= new XMLWriter(new FileWriter(new File(filename)),format); <br> writer.write(document); <br> writer.close(); <br>...
如果为false,和被忽略,所有的内容都被解析。 http://cyberneko.org/html/features/document-fragment False 解析HTML片段时是否作标签增补。此功能不要用在DOMParser上,而要用在DOMFragmentParser上。 ...
带有反射的TOML解析器和编码器TOML代表汤姆(Tom)的“显而易见的最小语言”。 这个Go包提供了类似于Go的标准库json和xml包的反射接口。 此程序包还支持encoding.TextUnmarshaler和encoding.TextMarsh
以下先列出初步的的ant构建文件的代码: build.xml <?xml version="1.0" encoding=&quo ... by vb2005xu 2009-06-02 回复 (3) 相关讨论 持续集成简单总结 一、理论篇: 持续集成鼓励尽量短周期内项目团队的代码提交...
"<?xml version=""1.0"" encoding=""GB2312""?> …</root>" Q0039 java接口与抽象类的区别 "1.接口可以多重继承 ,抽象类不可以 2.接口定义方法,不给实现;而抽象类可以实现部分方法 3.接口中基本数据类型的...
2. 后台中,我使用的是commons-fileUpload组件,ServletFileUpload 解析form表单和文件, 3. 设置 request.setCharacterEncoding(“UTF-8”); 4. 设置了ServletFileUpload .setHeaderEncoding(“UTF-8”); 5.Tomcat ...