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

xml中文注释解析出错问题

    博客分类:
  • java
阅读更多

最近在把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 楼 qinghua0208 2009-02-17  
顶楼主,期待楼主的问题被解决

相关推荐

    c#中XML解析文件出错解决方法

    1.内容中含有xml预定好的实体,如“&lt;”和“&”,对xml来说是禁止使用的,针对这种字符,解决方式是使用CDATA部件以”&lt;![CDATA[” 标记开始,以”]]&gt;”标记结束,是CDATA内部内容被解析器忽略。具体说明参考...

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

    你可以将上面的myfile.xml修改一下,比如将改为,然后用IE5直接打开myfile.xml,会得到一个出错信息页面: &lt;?xml version="1.0" encoding="GB2312"?&gt; &lt;title&gt;XML轻松学习手册 &lt;author&gt;ajie &lt;Email&gt;ajie@aolhoo....

    stupidedi:用于解析和生成ASC X12 EDI事务的Ruby API

    与从头开始编写解析器相比,此方法具有巨大的优势,因为解析器容易出错并且难以更改。 图书馆的设计投入了重要思想。 这里描述了一些功能。 强大的令牌化和解析 正确处理分隔符,换行符和互换之间的带外数据。 ...

    SQLServer2000高级编程技术-已添加书签,想学存储过程、SQL编程务必要看,分析非常透彻

    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...

    SQLServer2000高级编程技术(part02)-想学存储过程 SQL编程 务必要看

    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...

    技术突破::construction:用简单的规则进行异步数据转换

    除了开箱即用的XML和JSON支持之外,您甚至可以使用自己的解析器自定义过渡,从而扩展与JSON可互换的任何数据格式。 产品特点 声明性XML / JSON数据验证和升级。 支持递归数据形状的友好类型注释。 基于承诺的异步...

    eoe客户端源代码

    eoe 客户端,注释详细,代码经典,具有一定的参考价值 以eclipse为例 启动Eclipse,导入Android客户端项目,请确保你当前的Android SDK是最新版。 如果编译出错,请修改项目根目录下的 project.properties 文件。 ...

    超级有影响力霸气的Java面试题大全文档

    抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。 2.继承:  继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确...

    iuhyiuhkjh908u0980

    接着我们会解释在这个程序中需要的Java,Jsp和配置文件. 创建项 ... by Checkmate 2009-03-23 回复 (6) ivy中文参 ... 安装ivy主要有两种方式,手工安装或者自动安装。 1) 手工安装 从这里下载你想要的版本,在任何你...

    阿里巴巴编码规范 基础技能认证 考题分析(考题+答案).docx

    A .POJO类中的任何布尔类型的变量,都不要加is,因为部分框架解析时有可能会出现序列化错误。 B .包名统一使用单数形式,如:com.alibaba.mpp.util。 C .中括号是数组类型的一部分,数组定义如下:String[] ...

    精易编程助手3.3+精易模块v6.3.1

    2、解决部分系统权限原因导致无法正常取出文件MD5导致更新出错的问题; Edbug 一、网页调试 1、优化图片获取功能的文字提示; 2、优化请求是请求地址的智能判断,解决误输入导致访问异常的问题; 3、优化功能信息...

    易语言程序免安装版下载

    易语言5.1 相对于易语言5.0更新说明: ... 修改XML解析支持库,增加写出CDATA数据功能,解决解析XML时错误的丢弃换行和TAB字符的BUG,解决读取节点值时对CDATA数据进行转义处理的BUG。 20. 修改扩展界面支持库...

    精易官方免费模块v3.60版

    3. 改善 “文本_是否为汉字”增加正则方式判断 感谢 7141330054 的提醒 精易模块 V3.47 what’s new:(20131207) 1、增加“系统_关联右键菜单带图标”命令 2、增加“类_内存配置项”命令,感谢会员 微凉 提供的...

    C#微软培训资料

    14.4 继承中关于属性的一些问题.169 14.5 小 结 .172 第四部分 深入了解 C#.174 第十五章 接 口 .174 15.1 组件编程技术 .174 15.2 接 口 定 义 .177 15.3 接口的成员 .178 15.4 接口的实现 .182 ...

    精易模块[源码] V5.15

    11、修复“线程_等待”命令注释反的问题,返回真表示线程结束,假表示已超时。感谢易友【tone】反馈。 12、修复“类_识图-&gt;找图_从字节集”命令,载入大文件直接奔溃的BUG,感谢易友【tone】反馈。 精易模块 V3.80...

    matlab读写文件的代码-GNSS-Metadata-Standard:GNSS软件定义的接收器元数据标准

    对于后处理,从历史上看,正确解释由这些系统生成或使用的GNSS SDR采样数据集一直是一个麻烦且容易出错的过程。 这是因为这些系统必须生成各种格式的数据集,当这些数据集的生产者和消费者之间进行通信时,其精妙之...

    Java Web编程宝典-十年典藏版.pdf.part2(共2个)

    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 ...

    freemarker总结

    options:该参数可以省略,指定包含时的选项,包含encoding和parse两个选项,其中encoding指定包含页面时所用的解码集,而parse指定被包含文件是否作为FTL文件来解析,如果省略了parse选项值,则该选项默认是true. ...

Global site tag (gtag.js) - Google Analytics