- 2
- 0
- 约1.24万字
- 约 77页
- 2017-06-05 发布于湖北
- 举报
* 中山大学计算机科学系 2.4 字符编码技术 UCS-2码只对BMP中的代码点进行双8位编码,共有216=65,536个代码点。例如 “A” U+0041 “€” U+20AC “汉” U+6C49。 UCS-2码基本上可以容纳所有的欧美字符和绝大部分的亚洲字符,因此,UCS-2字符集被普通支持。 小提示:在Word中,将输入点移至某个字符的右侧,按下Alt+X,该字符就转换为Unicode代码点,再按则转换回原字符 * 中山大学计算机科学系 2.4 字符编码技术 2.4.5.2 UTF编码 UTF是对Unicode字符集编码的实现方案,为每个Unicode字符给出机内表示格式, Unicode 字符的机内码 UTF规范定义了三种编码格式,即UTF-8、UTF-16和UTF-32,它们都能够正确地编码任何Unicode代码点。其中,UTF-8和UTF-16被广泛使用,而UTF-32很少使用。 * 中山大学计算机科学系 2.4 字符编码技术 一、UTF-32 UTF-32码是定长码,使用1个32位(即4字节)编码单元表示每个等值的Unicode代码点。例如,字符“A”的代码点U+41用4个字节表示等值的无符号整数41H。 UTF-32的优点在于编码简单,缺点是每个字符都需4字节表示,太浪费存储空间。 * 中山大学计算机科学系 2.4 字符编码技术 二、UTF-16 UTF-16码是变长码,使用1个或2个16位(即2字节)编码单元对Unicode代码点进行编码。 对BMP字符的表示方式等同于UCS-2,使用2个字节。例如用两个字节6CH和49H表示字符“汉”的代码点U+6C49 对于非BMP字符则使用4个字节表示。 UTF-16的优点在于几乎所有常见字符都使用双字节表示,便于统一处理;缺点是每个ASCII字符也要用2个字节表示。 * 中山大学计算机科学系 2.4 字符编码技术 UTF-16分类 由于UTF-16使用双字节编码单元,因此UTF-16码有两种形式: 大序UTF-16(UTF-16 big-endian):如“国”的代码点U+56FD表示为2字节序列56 FD 小序UTF-16(UTF-16 little-endian):如“国”表示为2字节序列FD 56。 标记字节序:使用BOM字符U+FEFF,即如果文档起始2个字节是FE FF,则表示文档是大序UTF-16;若这2个字节为FF FE,则文档为小序UTF-16。 * 中山大学计算机科学系 2.4 字符编码技术 例2.14 查看英文字符“a”和汉字“国”的小序UTF-16编码 ⑴启动“记事本”,输入文字“a国”,然后以“Unicode”编码格式保存。 ⑵启动 WinHex 编辑器查看。 * 中山大学计算机科学系 2.4 字符编码技术 三、UTF-8 UTF-8码也是变长码,使用1个或多个8位(即1字节)编码单元对Unicode代码点进行编码。 对BMP字符使用1~3个字节序列编码,如表2-11所示 对于非BMP字符则使用4个或更多字节表示 * 中山大学计算机科学系 2.4 字符编码技术 UTF-8编码示例 字符“汉”的代码点是U+6C49,根据表2-11所示格式,先将6C49写成二进制01001001,然后用这个比特流依次替换模板 1110xxxx 10xxxxxx 10xxxxxx 中的x,得10110001即UTF-8把字符“汉”编码为3字节序列 E6 B1 89。 * 中山大学计算机科学系 2.4 字符编码技术 UTF-8的优点在于与ASCII兼容、容错能力强、与字节序无关,便于在不同平台之间交流;其缺点是所有汉、日、韩等字符必须用3个字节表示。 UTF-8文档常起始于3字节序列EF BB BF(即字符U+FEFF的UTF-8编码) * 中山大学计算机科学系 2.4 字符编码技术 例2.15 查看字符“A”和“汉”的UTF-8编码 ⑴启动“记事本”,输入文字“A汉”,然后以“UTF-8”编码格式保存 ⑵启动 WinHex 编辑器查看 * 中山大学计算机科学系 2.4 字符编码技术 2.4.5.3 统汉字 Unicode 把经过中日韩整合(CJK Unification)的汉字称为统汉字(Unihan),共有2万多个。 2.4.5.4 Unicode与代码页 “代码页”(Code Page)是某种字符集的编号,如GB2312的代码页是20936、BIG5是950。由代码页可确定相应的字符编码转换表。 Windows系统内核已统一使用 Unic
原创力文档

文档评论(0)