XML手记一

  • Unicode

Unicode就是统一码,目的在于推广一个世界性的通行编码,能表示世界上大部分的语言文字 。

每个Unicode在用2个byte来表示,相当于216=65536种不同的组合。

Unicode是与ISO10646的UCS(Universal Character Set)保持一致的,它们使用相同的字库和字码。

由于康熙字典就有四万七汉字,为了用尽量少的字码表示尽量多的利用汉字,Unicode(和UCS)采用了“中日韩文整合”(CJK Unification),就是把相似的字用一个单码来表示,这样的汉字,统称为Unihan。在Unicode2.1和3.0标准中,有两万多统汉字。

  • UTF-8/UTF-16

UTF是Unicode/UCS Transformation Format, 8和6指的是bit:

UTF-16: 就是Unicode的双byte编码的实现,再加上一个应付未来扩展需要的编码机制。

UTF-8: 不等幅编码方式,用一个、两个或三个byte来表示一个字。(English只需要1个byte)

  • XML中对Unicode的要求

XML1.0要求,XML parser至少必须支持以UTF-8/UTF-16编码的Unicode字符串,默认为Unicode编码。

  • Unicode中的空间分配

Unicode的前256个字符和ISO8859-1一样,其中,从0000-00FF,就是ASCII码。

而Unihan,是从3400-9FFF之间,F9000-FAFF之间也有,其中,BIG5和GB2312是从4E00-9FFF之间。

  • UTF-8的编码原理和特性

UTF有三种编码方式:

一个byte: 以0开头,单byte,0000-007F,ASCII码(0x00-0x7F)不需要转换

两个byte: 以110开头,第二个byte以10开头,0080-07FF

三个byte:以1110开头,后面两个byte都以10开头,0800-FFFF

由于每个byte之间分割清楚,所以可以轻松地对UTF-8编码作处理,并和Unicode之间作转换。

  •  UTF的优点

由于Unicode都是双byte的,所以前256个字符都是以0x00开头的,而0x00在系统中一般有特别的含义,而且,双byte很难断字,需要从文件开头读起,如果某一个byte出错,从这个byte之后所有的字符都出错了。

而UTF就很容易断字,并且对于出错时的处理也有特别的规定。

  • UTF的缺点

很显然,UTF-8会使得大多数文字byte数目会膨胀,需要更多的byte来表示文字,Unihan会膨胀1.5倍。

而UTF-16会使得西文byte加倍。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值