分类:
2010-07-01 11:09:43
UCS Universal Character Set, a large character set defined by ISO/IEC 10646-1.
1.
2.
3.
4.
ISO 10646是国际标准化组织制定的一套国际编码标准,这个标准含盖了世界各种主要语言中的字符,包括中文简繁体,指定了统一的内码。
1993年首个版本〈ISO/IEC 10646-1:1993〉, 含20,902个表意文字
2000年发布更新版〈ISO/IEC 10646-1:2000〉,新增扩展区A的6,582个表意文字,共27,484个表意文字
2001年发布〈ISO/IEC 10646-2:2001〉,作为对2000版的补充,新增扩展区B的42,711个表意文字,计共70,000个表意文字。其中包含了〈康熙字典〉, 〈汉语大字典〉,和〈汉语大词典〉内的汉字。
2004年发布的〈ISO/IEC 10646:2003〉合并了
表意文字是指字形与字义具有关系的文字。中文字符属于表意文字。
中文字符在ISO10646中被划分到三个主要编码区:中日韩表意文字区(CJK Unified Ideographs Block),中日韩表意文字区扩展区A(CJK Unified Ideographs Extension A Block)和中日韩表意文字区扩展区B(CJK Unified Ideographs Extension B Block)。前两个区中使用16Bit表示,B区使用32Bit表示。
统一码是由Unicode学术学会(Unicode Consortium)制定的字符编码系统。Unicode学术学会的成员主要是电脑软硬件厂商。Unicode与ISO有紧密的合作,Unicode可以被看作是ISO10646的实践版。因此,支持Unicode的产品也支持ISO10646.。
2000年推出Unicode 3.0,收录49,194个字符,包括27,484个东亚表意字符。对应
2001年推出Unicode 3.1,新增44,946个字符,其中42,711个是表意字符,计94,140个字符,表意字符超过70,000个。
2002年推出Unicode 3.2,新增1,1016字符,但表意字符没有增加。
2004年推出Unicode4.0,新增1,226个字符,表意字符没有增加。对应
ISO/IEC 10646和Unicode定义了几种编码格式:UTF-8;UCS-2, UTF-16;UCS-4, UTF-32。每一个编码由一个或几个编码单位(encoding unit)组成。在这几种格式中仅有UTF-8使用的编码单位是一个字节(octet)。
Char. number range (hex) |
UTF-8 octet sequence (binary) |
0000 0000-0000 007F |
0xxxxxxxx |
0000 0080-0000 07FF |
110xxxxx 10xxxxxx |
0000 0800-0000 FFFF |
1110xxxx 10xxxxxx 10xxxxxx |
0001 0000-0010 FFFF |
11110xxx 10xxxxxx 10xxxxxx 10xxxxxx |
一个例子
Unicode十六进制 |
Unicode二进制 |
UTF8二进制 |
UTF8十六进制 |
UTF8字节数 |
B |
00001011 |
00001010 |
B |
1 |
9D |
00010011101 |
11000010 10011101 |
C2 9D |
2 |
A89E |
10101000 10011110 |
11101010 10100010
10011110 |
EA A2 9E |
3 |
1. 根据上表决定编码的字节数n。
2. 生成每字节的高位,包括首字节的前m位(m=1 when n=1; m=n+1 when n=2,3,or 4),以及其他自己的头2位。
3. 由低向高填充表中的x位。
1. 初始化2进制数为0。要求至少21bit可用。
2. 根据首字节和每字节的前几位决定UTF-8的字节数。
3. 有低到高的将表中的x位填充到2进制数中。
1. 与US-ASCII兼容
2. 容易与其他编码转换
3. 首字节表明了字符的长度
4. 字节(octet)C0,C1,F5 to FF不会出现
5. 字符流容易定界
6. UTF-8字串的词法大小顺序保持不便。
GB2312-80是中国国家汉字信息交换用编码,由国家标准总局发布,1981年5月1日实施。
GB2312收录简化汉字及符号、字母、日文假名等共7445个字符,其中汉字6763个。 GB2312采用两个字节表示一个字符,习惯上第一个字节称做‘高字节’,第二个字节称做‘底字节’。GB2312将字符分为94个区,对应高字节;每个区94个位,对应低字节,两个字节的值分别为区号值和位号值加32(20H),因此也称区位码。01-09区为符号、数字区,16-87区为汉字区、10-15和88-94区是空白区。汉字被分为两级, 第一级3755个,位于16-55区,按拼音字母/笔形顺序排列;第二级3008个,位于56-87区,按部首/笔画顺序排列。GB2312最多表示6763个汉字。
GB18030-2000是继GB2312-1980和GB13000-1993之后最重要的汉字编码标准,未来我国计算机系统必须遵循的基础性标准之一。GB18030收录了27484个汉字,总编码空间超过150万个码位。
GB18030采用单字节、双字节和四字节三种方式对字符编码。单字节使用0x00到0x7F码位(对应ASCII)。双字节部分,首字节码位从0x81到0xFE,尾字节码位分别是0x40到0x7E和0x80到0xFE。四字节部分的第一、三字节编码码位是0x81到0xFE, 第二、四字节编码码位是0x30到0x39。
GB18030的双字节部分收录了包括GB13000.1全部CJK汉字20902个,有关标点符号、表意文字描述符13个、增补的汉字和部首/构件80个、双字节编码的欧元符号等。四字节部分收录了上述双字节字符之外的,包括CJK统一汉字扩充A在内的GB13000.1中的全部字符。