[七天乐]五一第六天:ICU+Xerces-C的问题 |
小工头 发表于 2005/5/8 10:47:30 | 今天开始试着把ICU和Xerces-C结合在一起,使Xerces-C能够解析带有中文字符的XML文档。做了一整天的实验,始终没有成功。在实验中,得到以下结论:
一,ICU本身没有问题。使用ICU,将中文字符串转换成Unicode,再从Unicode转换回中文,得到的结果是一样的。不过要注意的是,将中文字符串转换成Unicode的时候字符串必须以'\0'结尾,调用转换函数时的长度参数时不包括\0',否则再转换回来会多出几个怪字符;
二,ICU不能很好地处理中英文字符混合字符串。如果直接使用ICU转换此类字符串再转换回来,ICU会在每一个英文字符后面都插入一个'\0'。怀疑ICU转过去的时候用了UTF-16,再转回来的时候没有做相应的处理;
三,Xerces-C不能直接处理UTF-8。分别使用ICU和WINAPI两种方法把中文字符串转换为UTF-8,得到的结果是一致的。用Xerces-C解析UTF8编码的XML文档,报出fetal error。试过指定encoding="UTF-8"以及去掉encoding,都不行。(刚刚发现UTF-8编码的XML文档中每个英文字符后面也有'\0',难道是因为这个?值得深入探讨)
四,ICU的文档和例子不全,很多函数调用的参数有限定范围,但是找不到详细描述的文档,也找不到合适的例子。
|
|
|

.: 公告
有人的地方就有恩怨 有恩怨的地方就是江湖 人在江湖漂,谁能不挨刀 |
|
« | August 2025 | » | 日 | 一 | 二 | 三 | 四 | 五 | 六 | | | | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | | | | | | | |
|
.: 我的分类(专题)
|

.: 最新日志
.: 最新回复
|

blog名称:少年包工头的工作日记 日志总数:629 评论数量:1458 留言数量:56 访问次数:8972952 建立时间:2004年12月8日 |
|

.: 留言板
|

.: 链接
|

|