最近在把JDK升级到1.6时碰到一个奇怪的问题。
在jdk1.6版本中,ibatis解析数据库映射文件时,如果文件的注释中出现基数个汉字,且和注释结束符间没有空格分开时,如<!-- 强-->,就会出现解析异常,异常信息如下:
org.xml.sax.SAXParseException: The string "--" is not permitted within comments.
解决方法:1.在注释结束符号前添加空格,如<!-- 强 -->。
注释中中文的编码问题,UTF-8编码的映射文件中的注释,如<!-- 强-->被当作GBK编码解析时,会变成<!-- 寮?->,从而破坏了整个文件的结构。
在UTF-8编码下,中文字用3个字节数表示,而在GBK编码下一个中文字用两个字节表示。
<!-- 强-->的UTF-8的字节编码为:3c 21 2d 2d 20 e5 bc ba
2d 2d 3e
用GBK解析时,e5 bc当作一个汉字解析,而ba 2d也被作为一个汉字解析了,
结果如下:<!-- 寮?->
注释中如果是偶数个汉字时,UTF-8下的字节数也为偶数个,用GBK解析时就不会多出一个字节。
问题:为什么jdk1.5就不会出错,只在jdk1.6时出错?
分享到:
相关推荐
1.内容中含有xml预定好的实体,如“<”和“&”,对xml来说是禁止使用的,针对这种字符,解决方式是使用CDATA部件以”<![CDATA[” 标记开始,以”]]>”标记结束,是CDATA内部内容被解析器忽略。具体说明参考...
你可以将上面的myfile.xml修改一下,比如将改为,然后用IE5直接打开myfile.xml,会得到一个出错信息页面: <?xml version="1.0" encoding="GB2312"?> <title>XML轻松学习手册 <author>ajie <Email>ajie@aolhoo....
与从头开始编写解析器相比,此方法具有巨大的优势,因为解析器容易出错并且难以更改。 图书馆的设计投入了重要思想。 这里描述了一些功能。 强大的令牌化和解析 正确处理分隔符,换行符和互换之间的带外数据。 ...
12.2.5 XML解析器和DOM 12.2.6 XML中的链接和查询 12.2.7 转换XML 12.3 为何使用XML 12.3.1 用于单位之间的信息交换 12.3.2 信息发布 12.4 SQL Server中的XML支持 12.4.1 Transact-SQL语言扩展 12.4.2 OPENXM 12.4.3...
12.2.5 XML解析器和DOM 12.2.6 XML中的链接和查询 12.2.7 转换XML 12.3 为何使用XML 12.3.1 用于单位之间的信息交换 12.3.2 信息发布 12.4 SQL Server中的XML支持 12.4.1 Transact-SQL语言扩展 12.4.2 OPENXM 12.4.3...
除了开箱即用的XML和JSON支持之外,您甚至可以使用自己的解析器自定义过渡,从而扩展与JSON可互换的任何数据格式。 产品特点 声明性XML / JSON数据验证和升级。 支持递归数据形状的友好类型注释。 基于承诺的异步...
eoe 客户端,注释详细,代码经典,具有一定的参考价值 以eclipse为例 启动Eclipse,导入Android客户端项目,请确保你当前的Android SDK是最新版。 如果编译出错,请修改项目根目录下的 project.properties 文件。 ...
抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。 2.继承: 继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确...
接着我们会解释在这个程序中需要的Java,Jsp和配置文件. 创建项 ... by Checkmate 2009-03-23 回复 (6) ivy中文参 ... 安装ivy主要有两种方式,手工安装或者自动安装。 1) 手工安装 从这里下载你想要的版本,在任何你...
A .POJO类中的任何布尔类型的变量,都不要加is,因为部分框架解析时有可能会出现序列化错误。 B .包名统一使用单数形式,如:com.alibaba.mpp.util。 C .中括号是数组类型的一部分,数组定义如下:String[] ...
2、解决部分系统权限原因导致无法正常取出文件MD5导致更新出错的问题; Edbug 一、网页调试 1、优化图片获取功能的文字提示; 2、优化请求是请求地址的智能判断,解决误输入导致访问异常的问题; 3、优化功能信息...
易语言5.1 相对于易语言5.0更新说明: ... 修改XML解析支持库,增加写出CDATA数据功能,解决解析XML时错误的丢弃换行和TAB字符的BUG,解决读取节点值时对CDATA数据进行转义处理的BUG。 20. 修改扩展界面支持库...
3. 改善 “文本_是否为汉字”增加正则方式判断 感谢 7141330054 的提醒 精易模块 V3.47 what’s new:(20131207) 1、增加“系统_关联右键菜单带图标”命令 2、增加“类_内存配置项”命令,感谢会员 微凉 提供的...
14.4 继承中关于属性的一些问题.169 14.5 小 结 .172 第四部分 深入了解 C#.174 第十五章 接 口 .174 15.1 组件编程技术 .174 15.2 接 口 定 义 .177 15.3 接口的成员 .178 15.4 接口的实现 .182 ...
11、修复“线程_等待”命令注释反的问题,返回真表示线程结束,假表示已超时。感谢易友【tone】反馈。 12、修复“类_识图->找图_从字节集”命令,载入大文件直接奔溃的BUG,感谢易友【tone】反馈。 精易模块 V3.80...
对于后处理,从历史上看,正确解释由这些系统生成或使用的GNSS SDR采样数据集一直是一个麻烦且容易出错的过程。 这是因为这些系统必须生成各种格式的数据集,当这些数据集的生产者和消费者之间进行通信时,其精妙之...
8.8.2 struts.xml文件配置出错 8.9 精彩回顾 第9章 庖丁解牛 ——揭密Struts2高级技术 9.1 本章学习任务 9.1.1 本章知识体系 9.1.2 实例开发任务 9.2 OGNL表达式语言 9.2.1 认识OGNL 9.2.2 Struts2框架中的OGNL ...
options:该参数可以省略,指定包含时的选项,包含encoding和parse两个选项,其中encoding指定包含页面时所用的解码集,而parse指定被包含文件是否作为FTL文件来解析,如果省略了parse选项值,则该选项默认是true. ...