unicode简介

来源:互联网 发布:骑行路线 知乎 编辑:程序博客网 时间:2024/05/16 06:44

unicode编码简介:

最近做一个字符级别去噪的程序,接触了Unicode编码,顺便对对他做了简单的总结。

Unicode字符集可以简写为UCS(Unicode Character Set),目前已到版本6.0.0,具体见参考链接。

Unicode是国际组织制定的可以容纳世界上所有文字和符号的字符编码方案。

Unicode用数字0-0x10FFFF来映射这些字符,最多可以容纳1114112个字符,或者说有1114112个码位。

码位就是可以分配给字符的数字。

Unicode标准有UCS-2、UCS-4的说法。UCS-2用两个字节编码,UCS-4用4个字节编码。UCS-4根据最高位为0的最高字节分成2^7=128个group。每个group再根据次高字节分为256个平面(plane)。每个平面根据第3个字节分为256行 (row),每行有256个码位(cell)。group 0的平面0被称作BMP(Basic Multilingual Plane)。将UCS-4的BMP去掉前面的两个零字节就得到了UCS-2。每个平面有2^16=65536个码位。Unicode计划使用了17个平面,一共有17*65536=1114112个码位。
在Unicode 5.0.0版本中,已定义的码位只有238605个,分布在平面0、平面1、平面2、平面14、平面15、平面16。PUB,就是保留给大家放自定义字符的区域Unicode 5.0.0版本中,使用了238605-65534*2-6400-2408(pub)=99089个码位,每段码位区域对应的的字符参见参考链接
99089个已定义码位分布在平面0、平面1、平面2和平面14上,它们对应着Unicode目前定义的99089个字符,其中包括71226个汉字。平面0、平面1、平面2和平面14上分别定义了52080、3419、43253和337个字符。平面2的43253个字符都是汉字。平面0上定义了27973个汉字,汉字的分布:
Block名称开始码位结束码位字符数CJK统一汉字4E009FBB20924 CJK统一汉字扩充A34004DB56582 CJK统一汉字扩充B200002A6D642711 CJK兼容汉字F900FA2D302 CJK兼容汉字FA30FA6A59 CJK兼容汉字FA70FAD9106CJK兼容汉字补充2F8002FA1D542
在早期的Unicode版本中,CJK统一汉字区的范围是0x4E00-0x9FA5,也就是我们经常提到的20902个汉字。

当前版本的Unicode增加了22个字符,码位是0x9FA6-0x9FBB。

与去噪相关的几段区位码,其对应的可视化的字符见参考链接:
0000-007F:C0控制符及基本拉丁文 (C0 Control and Basic Latin)
2000-206F:常用标点 (General Punctuation)
2150-218F:数字形式 (Number Form)

2460-24FF:封闭式字母数字 (Enclosed Alphanumerics)
3000-303F:CJK 符号和标点 (CJK Symbols and Punctuation) 
31C0-31EF:CJK 笔画 (CJK Strokes)

31F0-31FF:日文片假名语音扩展 (Katakana Phonetic Extensions)

3200-32FF:封闭式 CJK 文字和月份 (Enclosed CJK Letters and Months)

3300-33FF:CJK 兼容 (CJK Compatibility)

3400-4DBF:CJK 统一表意符号扩展 A (CJK Unified Ideographs Extension A)
4E00-9FBF:CJK 统一表意符号 (CJK Unified Ideographs)

FE30-FE4F:CJK 兼容形式 (CJK Compatibility Forms)

FF00-FFEF:半型及全型形式 (Halfwidth and Fullwidth Form)

参考 http://www.unicode.org
http://hi.baidu.com/kalcaddle/blog/item/e3b634027c3c3f7d3912bb80.html

http://www.fmddlmyy.cn/text24.html

http://baike.baidu.com/view/40801.htm



http://www.nengcha.com/code/unicode/class/
原创粉丝点击