第一篇 媒体

98
•第 2 第 第第 第第 第第第 第第 、、 •第 3 第 第第 第第 第第第第 第第第 、、、 MIDI 第第第 第第 、、 •第 4 第 第第第第第 第第 第第第 第第第 第第第 、、、、 3D 第第 •第 5 第 第第 第第 第第 第第第第第第 第第第 第第第第第第第 、、、、 传统 OpenGL •第 6 第 第第第第第第第 第第 第第第第第第 第第第第第 、、、 MPEG/H.26x AVS[+]

Upload: eaton-gonzalez

Post on 03-Jan-2016

47 views

Category:

Documents


7 download

DESCRIPTION

第一篇 媒体. 第 2 章 文字 输入、编码、输出 第 3 章 音频 频率、数字化、格式、 MIDI 、声卡、编码 第 4 章 图形与图像 种类、颜色、属性、格式、 3D 、显卡 第 5 章 动画 概述、传统动画、计算机动画、制作、动画描述语言、 OpenGL 第 6 章 视频与编码标准 电视、视频数字化、编码标准、 MPEG/H.26x 、 AVS[+]. 常见媒体. 第 2 章 文字. 2.1 文字输入 键盘输入、手写输入、语音输入、扫描输入 2.2 字符编码 西文编码、中文编码、国际编码 2.3 文字输出 字形技术、语音合成. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 第一篇  媒体

第一篇 媒体bull第 2 章 文字

输入编码输出bull第 3 章 音频

频率数字化格式 MIDI 声卡编码bull第 4 章 图形与图像

种类颜色属性格式 3D 显卡bull第 5 章 动画

概述传统动画计算机动画制作动画描述语言 OpenGL

bull第 6 章 视频与编码标准电视视频数字化编码标准 MPEGH26x AVS[+]

常见媒体

第 2 章 文字

bull 21 文字输入键盘输入手写输入语音输入扫描输入

bull 22 字符编码西文编码中文编码国际编码

bull 23 文字输出字形技术语音合成

文字bull 文字是语言的记录可以分为拼音文字(如英

文)和象形文字(如中文)两大类各类文字都是用图形符号(如字母和汉字)来表示的

bull 在多媒体技术出现之前文字是人们书面交流的主要手段在多媒体技术得到广泛应用的今天文字也是最重要的媒体元素之一

bull 计算机对文字的处理包括文字的输入编码与输出

bull 本章依次介绍文字输入字符编码与文字输出重点放在汉字编码标准之上

21 文字输入bull 将文字录入进计算机的方法主要有键盘输

入手写输入语音输入和扫描识别输入bull 键盘输入是传统和主要的文字录入手段bull 随着计算机技术的发展方便和快速的手

写与语音输入成为解决文字输入瓶颈的有效途径

bull 扫描输入主要应用在印刷品的大量文字自动录入方面

211 键盘输入bull 计算机的通用键盘源自传统的打字机本身是

为英文字母的键入而设计的非常适合于拼音文字的字母输入而像汉字这样的象形文字用键盘输入则十分困难

bull 汉字的三个要素是形音义汉字的编码输入主要可以分为形码(如五笔字型)和音码(如全拼)两大类各种形码和音码输入法可以结合汉字的词义与语义特性进行词汇与整句等智能化的输入(如微软拼音输入法)

212 手写输入bull 随着各种手持设备(如平板电脑智能手

机)的不断出现与普遍使用联机手写文字的实时识别与输入方法已经得到越来越广泛的应用

bull 手写输入是指人用手指或(特制的)笔在图形板上书写机器进行实时的识别并将对应文字的编码输入

bull 汉字的联机手写输入是自动汉字识别中最简单的一种

特点

bull 机器识别的是笔画而不是整字bull 识别结果可以及时反馈所以对识别率要

求不高bull 输入方便不需对输入人员进行培训bull 适合于边想边写bull 可利用图形板方便地进行编辑和修改

技术bull 人写字时手的抖动书写速度的变化图形板的

量化和感应噪声等会对识别产生干扰因此必须进行必要的平滑和去噪预处理

bull 识别时还需进行字符分割以区分哪些笔画属于同一汉字

bull 手写输入在技术涉及图像识别模式匹配人工智能语言文字书写方式与习惯等方面的知识和方法

bull 目前的手写识别方法和技术还有待于进一步改进和完善以提高识别率减少对输入的限制降低输入设备和识别软件的成本加强软件的自学习功能

213 语音输入bull 语音输入是指利用语音内容的识别技术

将人的话音实时转换为对应文字编码并录入计算机

bull 语音输入的核心技术是语音识别技术bull 语音识别技术现在正在发展过程中还

有待于进一步完善

语音识别技术bull 早期的语音识别技术一直很落后到上世纪 70年代中采

用线性预测编码 LPC 和同态信号处理 (homomorphic signal process) 方法技术有了长足的进步但效果不理想到了上世纪 80年代矢量量化 (VQ Vector Quantization) 和隐马尔科夫模型 (HMM Hidden Markov Model) 的成功使用使语音识别在上世纪 90年代达到了商用化程度不过仍然存在问题识别率一直难以进一步提高又进入了相对低潮的相持阶段2011年 10月 14日苹果公司推出的 iPhone 4S 手机支持智能语音指令输入虽然还存在不少问题但是却引发了业界对语音输入研究和应用的新热潮

bull 语音输入的字词识别涉及词库声母分类规则库声母与韵母结合规则库声调知识库这些统称为声学基元模型库句子识别还涉及语义语法句法语用知识库这些统称为语言模型库句子理解则涉及常识库(难)

语音识别的过程图语音输入

darr数据采集

darr波形自动分析

darr预处理 参数特征提取

分帧后的语音特征矢量集合rarrdarr 声学模型 时间对准larr声学基元模型库

darr 语言模型库rarr 组句分析 larr统计信息与规则

语句候选rarrdarr识别语句输出

语音识别系统分类bull 按可识别词汇量可分为

ndash 小词汇量语音识别系统 (lt100)ndash 中词汇量语音识别系统 (100~1000)ndash 大词汇量语音识别系统 (gt1000)

bull 按语音输入方式可分为ndash 孤立词语音识别系统(简单)ndash 连接词语音识别系统(较难)ndash 连续语音语音识别系统(难)

bull 按发言人类型可分为ndash 特定人( 1 人)ndash 限定人( n 人)ndash 非特定人(任意人)

语音识别的目标是开发大词汇量非特定人的连续语音识别系统

214 扫描输入bull 扫描输入是指将图书期刊打印材料和印刷

品中的印刷体文字先通过扫描仪变成计算机中的数字图像然后再利用文字识别软件 OCR 自动转换成对应得文字编码并录入计算机

bull 目前我国研制的多种 OCR 软件的识别率已经达到 95 以上不过受印刷品质量的影响比较大

bull OCR = Optical Character Recognition Reader 光学字符识别 阅读器

bull 计算机识别印刷汉字的核心问题是抓住汉字的字形特征它主要体现在笔画和关键点上

bull 另一个核心问题是版面的分析与理解包括从图文混排版面中自动排除图形部分自动区分横排和竖排自动识别标题和正文对分栏文本实现自动对接等

bull 扫描输入方法除了用于印刷体文字的识别和输入外也可以用于手写体印刷文字的输入其文字识别的方法与印刷体文字类似也与手写实时输入的方法相关不过失去了笔顺信息属于整字识别类型

22 字符编码bull 字符编码包括西文编码中文编码和国际通

用字符编码本节的重点放在常用的编码标准上

bull 221 西文编码( ASCII 等)bull 222 中文编码( GB 2312 GB 13000

GBKGB 18030 )bull 223 国际通用字符编码( Unicode IS

OIEC 10646 )

221 西文编码bull 西文编码主要介绍 ASCII 字符集然后简

单介绍 IBM公司的 EBCDIC 和两种扩展 ASCII 显示字符表

bull 1 ASCII

bull 2 EBCDIC

bull 3扩展 ASCII 显示字符

1 ASCII

bull ASCII ( American Standard Code for Information Interchange 美国信息交换标准码)是 ANSI于 1963年提出 1968年确定的一种英文字符编码标准( ANSI X34-1986 )广泛应用于计算机网络和信息产业

bull ANSI = American National Standards Institute 美国国家标准协会

bull ASCII采用 7位二进制数的(共计 128 个)代码来表示字符(包括图示符和控制符)加上奇偶校验位(或最高位置 0 )则每个字符由 8位(一个字节)组成

ASCII 字符集

0 1 2 3 4 5 6 7

0 NUL DLE SP 0 P ` p

1 SOH DC1 1 A Q a q

2 STX DC2 ldquo 2 B R b r

3 ETX DC3 3 C S c s

4 EOT DC4 $ 4 D T d t

5 ENQ NAK 5 E U e u

6 ACK SYN amp 6 F V f v

7 BEL ETB lsquo 7 G W g w

8 BS CAN ( 8 H X h x

9 HT EM ) 9 I Y i y

A LF SUB J Z j z

B VT ESC + K [ k

C FF FS lt L l |

D CR GS - = M ] m

E SO RS gt N ^ n ~

F SI US O _ o DEL

bull ASCII 字符集以 32 个字符为一组bull 第一组( 0x00~0x1F )为控制符

(非打印符)用于数据处理 通信系统及其相应设备中的信息交换

bull 后面的除了第一个字符( SP空格符 0x20 )和最后一个字符( DEL删除符 0x7F )外全都是可打印(显示)的图示符包括ndash 第二组( 0x20 ~0x6F )的数字空格

和常用标点符号ndash 第三组( 0x40~0x5F )的大写拉丁字

母(即英文字母)与少数标点符号ndash 第四组( 0x60~0x7F )的小写拉丁字

母与少数标点符号

ASCII 的国际标准bull 1972年美国的国家标准 ASCII 与其若干拉丁语系国家的变体一起成为国际标准 ISO 6461972 ( Information processing -- ISO 7-bit coded character set for information interchange 信息处理mdashmdash ISO 用于信息交换的七位编码字符集)

bull 这些变体主要是将 ASCII 字符集中不常用的符号ldquo $ [ ] ^ ` | ~rdquo替换为他们各自语言的重音符号

bull 1987年 ISO 646 中的 ASCII部分成为 646 的国际参考版( IRV = International Reference Version ) ISO 646IRV1987 但是其中的美元符 $被替换为国际通用货币符 curren

bull 1991年推出的修订版 ISOIEC 646IRV1991 还原成原始的美国 ASCII 所以又被称为 ISO 646-US 或 US-ASCII

替代标准bull 由于 ISO 646 中各国的变体存在明显的兼容和统一问题现在已经作废

bull 有关编码已经被新的国际标准 ISOIEC 8859-1~16 19871998 ( Information processingtechnology -- 8-bit single-byte coded graphic character sets 信息处理 技术mdashmdash 8位单字节编码的图形字符集)所替代

bull 后来 ISO 646 与 ISOIEC 8859 标准又都被纳入 ISOIEC 1064619932003 ( Information technology -- Universal Multiple-Octet Coded Character Set (UCS) 信息技术mdashmdash通用多八位编码字符集 (UCS) )标准之中

bull 其中的标准编号 ISO 10646 = ISO 646 + 10000

标准化组织bull ANSI = American National Standards Institute 美

国国家标准协会bull ISO = International Organization for Standardization

国际标准化组织是由 153 个国家的国家标准协会联合组成的一个非政府国际组织总部(中央秘书处)设在瑞士的日内瓦负责制定适应商业和广泛社会需要的各种国际标准网址为 httpwwwisoorg

bull IEC = International Electrotechnical Commission 国际电工技术委员会是一个成立于 1906年 6月的国际标准化权威组织属于联合国的甲级咨询机构负责制定关于电工电子各方面的标准有 42 个会员国总部也设在瑞士的日内瓦网址为httpwwwiecch我国于 1958年 8月参加

2 EBCDIC

bull 西文的字符编码方案除了通用的 ASCII外还有 IBM公司于 1960年代初提出的 EBCDIC ( Extended Binary-Coded Decimal Interchange Code扩充的二进制编码的十进制交换码)

bull EBCDIC 现在仍然(仅)在 IBM 的 OS390 与 TPF 以及富士通 - 西门子的 BS2000OSD 等大型机的操作系统中使用

bull EBCDIC 是一种八位编码其字符的编码方案与ASCII 的完全不同

EBCDIC 字符集 0 1 2 3 4 5 6 7 8 9 A B C D E F

0 NUL DLE DS SP amp - 0

1 SOH DC1 SOS a j ~ A J 1

2 STX DC2 FS SYN b k s B K S 2

3 ETX TM c l t C L T 3

4 PF RES BYP PN d m u D M U 4

5 HT NL LF RS e n v E N V 5

6 LC BS ETB UC f o w F O W 6

7 DEL IL ESC EOT g p x G P X 7

8 GE CAN h q y H Q Y 8

9 RLF EM ` i r z I R Z 9

A SMM CC SM cent | |

B VT CU1 CU2 CU3 $

C FF IFS DC4 gt

D CR IGS ENQ NAK ( ) _ lsquo

E SO IRS ACK + lt =

F SI IUS BEL SUB | ldquo EO

3扩展 ASCII 显示字符bull ( 1 ) IBM PC

ndash IBM PC 的扩展 ASCII 显示字符由 IBM公司为其 PC 机制定可以由原始的 IBM PC 显示器在 DOS状态下显示

bull ( 2 ) Microsoft Windows ndash Microsoft Windows 的扩展 ASCII 显示字符由

微软公司为其Windows操作系统制定可以在Windows环境的西文状态下被显示

IBM PC 的扩展 ASCII 显示字符表

Microsoft Windows 的扩展 ASCII 显示字符表

222 中文编码bull 1 GB 1988 与 GB 2311

bull 2 GB 2312

bull 3汉字编码的辅助集bull 4 Big5

bull 5少数民族文字编码bull 6 GB 13000

bull 7 GBK 与 GB 18030

汉字编码bull 为了计算机处理汉字必须先对汉字进行编码由于汉

字数量大(《康熙字典》收字 47 035 个《汉语大字典》收字 54 678 个据统计在形成楷体后出现的汉字约有 9万个左右)显然不能像 ASCII那样用 7位或单字节来进行编码至少需要两个字节(最多可表示 6万5千多个字符)

bull 1980年我国制定了著名的 GB 2312-80双字节汉字编码标准(其中 GB 为ldquo国标rdquo这两个汉字的拼音首字母)收汉字 6 763 个

bull 1993年底又推出了等同于国际通用字符编码标准 ISOIEC 106461-1993 的国家标准 GB 130001-93 收汉字 20 902 个

bull 由于 GB 13000 与 GB 2312 的编码不兼容作为过渡2000年又公布了 GB 18030-2000 ( GBK )收汉字2万 7千个

1 GB 1988 与 GB 2311

bull 为了能够同时表示和处理汉字和英文实现中外文混排汉字编码必须兼容通用的 ASCII 编码因此1980年我国制定了与国际标准 ISO 6461972 (即ASCII )对应的国家标准 GB 1988-80《信息处理交换用的七位编码字符集》

bull 汉字成千上万不可能像 ASCII 一样只用单字节的七位来表示必须扩展到八位和多字节但是不能随意扩充而应该符合国际规范因此我国于 1980年又制定了与七位代码扩充到八位编码的国际标准 ISO 2022兼容的国家标准 GB 2311-80《信息处理交换用七位编码字符集的扩充办法》

GB 1988-80 ( ASCII )的代码结构图

行 0 1 2 3 4 5 6 7

0 SP

1 helliphellip

15

16

32个

控制符

94个

图形字符

DEL

GB 2311-80 的八位编码结构图列

行 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0 SP 100

1

helliphellip

14

15

C0

32个

控制符

GL

94或 96个

图形字符

DEL

C1

32个

控制符

GR

94或 96个

图形字符

1515

2 GB 2312

bull GB 2312-80《信息交换用汉字编码字符集 middot基本集》是我国制定的一个使用最广泛的汉字编码的强制性国家标准由原第四机械工业部的华北计算机研究所(后改名为电子工业部第十五研究所)起草1980年批准 1981年 5月 1日起实施

bull GB 2312-80 是在已有的国家标准 GB 1988-80(对应于 ISO 646 )和 GB 2311-80 (对应于 ISO 2022 )的基础上制定的采用与 ISO 2022兼容的GB 2311 之 7位到八位的代码扩充办法用双字节编码表示汉字与 ASCII兼容

收录的字符bull GB 2312 对应的是汉字的基本集共收汉字 6 763 个

可达到 9999 的使用频率因此除了极少数生僻的人名地名和古文外 GB 2312 中的汉字已经能基本满足平时的使用了

bull 除了汉字外 GB 2312 还收录了 682 个非汉字图形符号包括 202 个一般符号(含间隔符标点运算符和制表符) 60 个序号符 22 个数字符 52 个英文字母 169 个日文假名 48 个希腊字母 66 个俄文字母 26 个汉语拼音符号和 37 个汉语注音字母

bull 所以在 GB 2312-80 标准中共收录了( 6 763 汉字 + 682 非汉字图符 = ) 7 445 图形字符

两级汉字bull GB 2312 将其收录的六千多个汉字分成两个级别bull 一级汉字有 3 755 个都为使用频率高的常用汉

字为便于检索像字典那样将这些汉字按拼音字母顺序排列(同音字再按笔顺的横竖撇捺点折序排列)

bull 二级汉字有 3 008 个大部分较生僻不易掌握读音所以按部首顺序排列(同部首的字按笔画数排列同笔画数的字再按笔顺排列)

编码方案bull GB 2312 对所有图形字符(包括汉字和非汉字图符)都采用两个字节表示每个字节的低七位用于编码最高位全为 1 这样可以兼容 ASCII 编码(字节的最高位全为 0 )

bull 虽然在一个字节中最高位为 1 的符号位置有 128 个但从前面 GB 2311 的分析可知为了与 ASCII 的代码结构兼容保留了( 32 + 2 = ) 34 个控制符位置最后只有( 128 ndash 34 = ) 94 个符号位可供图形字符编码使用

bull 图形字符在代码表中的位置用区位码表示将码表分成94 个区对应于编码的第一个字节取值 0x21~0x7E 每个区又分成 94 个位对应于编码的第二个字节取值 0x21~0x7E (参见表 2-6 )

bull 例如ldquo中山大学rdquo的编码为中 (0xD6D0) 山 (0xC9BD) 大 (0xB4F3) 学 (0xD1A7)

GB 2312-80 字符集结构 20 21 22 helliphellip 7D 7E 7F

位号

区号

1 2 helliphellip 93 94

20

21~29 1~9 非汉字图符(682个)

2A~2F 10~15 空白区

30~57 16~55 一级汉字(3 755个)

58~77 56~87 二级汉字(3 008个)

78~7E 88~94 空白区

7F

第 1 区的部分非汉字图符

1区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 middot ˉ ˇ uml 々 mdash ~ hellip lsquo rsquo ldquo

17~32 rdquo 〔 〕 〈 〉 《 》 「 」 『 』 〖 〗 【 】 plusmn

33~48 times divide ∶ and or sum prod cup cap isin ∷ radic perp ∥ ang

49~64 ⊙ int ∮ equiv ≌ asymp ∽ prop ne ltu gtu le ge infin ∵ there4

65~80 deg prime Prime $ curren ¢ £ permil sect

81~94 rarr larr uarr darr

第 16 区的部分一级汉字

16区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 啊 阿 埃 挨 哎 唉 哀 皑 癌 蔼 矮 艾 碍 爱 隘 鞍

17~32 氨 安 俺 按 暗 岸 胺 案 肮 昂 盎 凹 敖 熬 翱 袄

33~48 傲 奥 懊 澳 芭 捌 扒 叭 吧 笆 八 疤 巴 拔 跋 靶

49~64 把 耙 坝 霸 罢 爸 白 柏 百 摆 佰 败 拜 稗 斑 班

65~80 搬 扳 般 颁 板 版 扮 拌 伴 瓣 半 办 绊 邦 帮 梆

81~94 榜 膀 绑 棒 磅 蚌 镑 傍 谤 苞 胞 包 褒 剥

第 56 区的部分二级汉字

56区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 亍 丌 兀 丐 廿 卅 丕 亘 丞 鬲 孬 噩 丨 禺 丿 匕

17~32 乇 夭 爻 卮 氐 囟 胤 馗 毓 睾 鼗 丶 亟 鼐 乜 乩

33~48 亓 芈 孛 啬 嘏 仄 厍 厝 厣 厥 厮 靥 赝 匚 叵 匦

49~64 匮 匾 赜 卦 卣 刂 刈 刎 刭 刳 刿 剀 剌 剞 剡 剜

65~80 蒯 剽 劂 劁 劐 劓 冂 罔 亻 仃 仉 仂 仨 仡 仫 仞

81~94 伛 仳 伢 佤 仵 伥 伧 伉 伫 佞 佧 攸 佚 佝

3汉字编码的辅助集bull 除了GB 2312基本集的 6 763 个简体汉字外国家标

准还给出了汉字编码字符集的多个辅助集bull 第二 四辅助集分别增加了 7 237 7 039 个简体汉字bull 第一和三 五辅助集则分别是与基本集和第二 四辅助集所对应的繁体汉字字符集的国家标准

bull 基本集加上辅助集共有 21 039 个简体汉字和 21 142个繁体汉字

bull 繁体汉字之所以多一些是因为在第一辅助集中有时几个繁体字对应一个简体字因此比基本集多出 103 个汉字

bull 基本集和辅助集的代码页之间靠其编码字节的最高位来区分

编码字符的分页标志

双字节汉字编码的页面结构第二字节 列号

行号 0 middot middot middot 32 33 34 helliphellip 125 126 127 128middot middot 160 161 162 helliphellip 254 255 0 middot middot 32

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

33 34 middot middot middot 126

1 2 middot middot middot 94

第四五辅助集 (7 039个汉字)

127

(兼容ASCII)

128 middot middot 160

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

161 162 middot middot middot 254

1 2 middot middot middot 94

第二三辅助集 (7 237个汉字)

1 2 middot middot middot 94

基本集第一辅助集 (6 763 6 866个汉字) (682个非汉字图符)

第一字节

255

4 Big5

bull 除了中国大陆使用的简体汉字外在台湾香港澳门和海外华侨社区使用的是传统的繁体汉字

bull 简体汉字使用 GB (国标)系列编码标准bull 繁体汉字一般使用的是 Big5内码(大五码)即台湾的ldquo资讯工业策进会rdquo发布的《标准交换码 (Ⅲ码 )》收录汉字 13 053 个

bull Big5内码是 1984年由台湾财团法人资讯工业策进会与宏碁 (Acer) 神通 (MiTAC) 佳佳零壹 (Zero One) 大众 (FIC) 等五大软件公司联合推出故称为大五码

BIG5 的代码空间低位字节

00 hellip 3F 40 hellip 7E 7F hellip A0 A1 hellip FE FF

高位字节

00middot

80

81middot

A0用户定义区 用户定义区

A1A2A3

非汉字图符 非汉字图符

A4middot

C6常用汉字 常用汉字

C7C8

用户定义区 用户定义区

C9middot

F9次常用汉字 次常用汉字

FAmiddot

FE用户定义区 用户定义区

FF

5少数民族文字编码bull 中国共有 56 个民族除了汉回满族一般使用汉语外其他少数民族大多有自己的民族语言

bull 我国各民族使用的 50 多种文字可以分为字母式结构文字和非字母式结构文字两大类ndash 字母式结构的有拉丁文斯拉夫文蒙古文维吾尔文哈萨克文藏文和朝鲜文等字母式

ndash 非字母式结构的有汉字象形文字图画文字和音节文字等bull 各民族文字的书写方向也有不同

ndash 壮文藏文朝鲜文彝文等的字从左到右行从上到下ndash 维吾尔文哈萨克文和柯尔克孜文等的字从右到左行从上

到下ndash 蒙古文和满文的字从上到下行从左到右ndash 汉字的书写方向有两种

bull 大陆的简体汉字的字从左到右行从上到下bull 港台与古旧书的繁体汉字的字从上到下行从右到左

国家标准bull 下面按发布时间列出若干已经公布的我国少数民族文字

编码集的国家标准(这些字符集一般分成两类对字母式结构文字采用八位编码对非字母式结构文字采用双字节编码)ndash GB 8045-87《信息处理交换用蒙古文七位和八位编码图形字

符集》收 82 个蒙古文字母和 12 个其他符号共 94 个字符ndash GB 12050-89《信息处理交换用维吾尔文编码图形字符集》收 32 个维吾尔文字母一个维吾尔文复合字符和 37 个其他符号共 70 个字符

ndash GB 12052-89《信息交换用朝鲜文编码字符集》收 5297 个朝鲜文字和 682 个其他符号(与 GB 2132同)共 5 979 个字符

ndash GB 13134-91《信息交换用彝文编码字符集》收 1165 个彝文字符和 688 个其他符号共 1853 个字符

ndash GB 16959-1997《信息技术 信息交换用藏文编码字符集 基本集》收 41 个藏文字母 36 个藏文主字 13 个元音字符12 个语音字符 10 个藏文数字 10 个半值符一个控制用连接符和 46 个其他藏文图形符号共 169 个字符

6 GB 13000bull GB 13000 是与 ISOIEC 10646 等价的国际通用编码字符集标准收汉字 2万多个但是与 GB 2312 和 GBK 不兼容

bull 1993年 5月 ISO 与 IEC 联合推出了可用于世界各种文字的通用编码字符集的国际标准的第 1部分ndash ISOIEC 10646-11993 Information technology -- Universal Multiple-Octe

t Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane (信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

ndash 该标准收字符 96万个几乎涵盖世界上的所有文字其中包含汉字 21 003 个

bull 1993年底我国推出了等同于国际标准 ISOIEC 1064611993 的强制性国家标准 ndash GB 130001-93《信息技术 通用多八位编码字符集( UCS ) 第一部分

体系结构与基本多文种平面》ndash 该标准于 1993年 12月 24日被国家技术监督局批准 1994年 8月 1日起实施

GB 13000 的主要特点

bull 世界各语言文种字符统一编码避免冲突便于国际交流

bull 编码空间宽阔连续每个图形字符的编码唯一(一字一码)不再存在兼容性问题

bull 按文种而不是按语言编码避免重复和浪费(如中日韩汉字的统一编码 CJK )

bull 与 GB 2312 和 GBK 不兼容

体系结构bull UCS 的体系结构是基于所谓ldquo多八位rdquo的而ldquo八位rdquo就是一个字节ldquo多八位rdquo就是多个字节

bull UCS采用 4 个字节来表征组面行位的四维空间bull 整个 UCS空间包含 128 个组( 0x00组 ~0x7F组)每组有 256 个平面( 0x00 平面 ~0xFF 平面)每个平面有 256 行每行又由 256 个字位构成

bull UCS共有( 128 times 256 = ) 32 768 个平面每个平面有( 256 times 256 = ) 65 536 个字位每个字位对应于一个字符的编码

bull 目前的编码只限于 00组已经定义的平面有 00组的00 平面mdashmdash称之为基本多文种平面 BMP ( Basic Multilingual Plane ) 及若干辅助平面

UCS 的全部编码空间

每个平面256times256 个

字位

00组 00 平面

00组 FF 平面

01组 00 平面

7F组 00 平面00

01组

7F组

UCS 的 00组

BMPbull BMP = Basic Multilingual Plane 基本多文种平面bull BMP 用作双八位编码字符集称之为 UCS-2 它被

分成四个区ndash A- 区(字位 0x0000~0x4DFF 有 19 903 个字位)用于

字母文字音节文字以及各种符号ndash I- 区(字位 0x4E00~0x9FFF 共 20 992 个字位)用于中日韩统一汉字( CJK )

ndash O- 区(字位 0xA000~0xDFFF 共 16 384 个字位)保留未来标准化用

ndash R- 区(字位 0xE000~0xFFFD 共 8 190 个字位)为 BMP 的限制使用区包括专用字符变形显现形式及兼容字符

BMP总貌

A-区

00~33 拼音文字(见下页)

34~3D 朝鲜文

3E~44 朝鲜文补充 -A

45~4D 朝鲜文补充 -B

I-区 4E~9F CJK统一汉字O-区 A0~DF

R-区

E0~F8 专用区

F9~FA CJK兼容汉字FB 拼音文字变形显现形式

FC~FD 阿拉伯文变形显现形式 -A

FE半形组合用标志

CJK兼容形式

小写变体

阿拉伯文变形显现形式 -B

FF 半形及全形字符 特殊字符

BMP 的0x00~0x33

行字母文字区

00 基本拉丁文 拉丁文-1补充

01 拉丁文扩充-A 拉丁文扩充-B

02 拉丁文扩充-B 国际音标扩充 进格修饰字符

03 组合用发音符 基本希腊文 希腊符号及哥普特文

04 西里尔文

05 美亚尼亚文 希伯来文(基本和扩充)

06 基本阿拉伯文 阿拉伯文扩充

07

08

09 梵文 孟加拉文

0A 锡克教文 古吉拉特文

0B 奥利雅文 泰米尔文

0C 泰卢固文 卡纳达文

0D 德拉维族文

0E 泰文 老挝文

0F

10 格鲁吉亚文

11 朝鲜文字母

12~1D

1E 拉丁文扩充增补

1F 希腊文扩充

20 广义标点 上下标 货币符号 符号组合用区分标志

21 类似字母的符号 数字形式 箭头

22 数学运算符

23 零杂技术用符号

24 控制图符 光学识别符 带括号的字母数字

25 制表符 方块元素 几何图形符

26 零杂符号

27 示意符等

28~2F

30 CJK符号和标点 平假名 片假名

31 注音 朝鲜文兼容字母 CJK零杂字符

32 带括号的CJK字母及月份

33 CJK兼容字符

留作将来标准化用

非图形字符

表示形式bull GB 13000提供了字符编码表示的两种替代使用的形式

ndash 双八位 BMP 形式( UCS-2 )mdashmdash允许使用 BMP 中的字符且每个字符用两个字节表示

ndash 肆八位正则形式( UCS-4 )mdashmdash允许使用 GB 13000 中的全部字符且每个字符用四个字节表示

bull 除了 UCS-24外还有另外两种变形的表示形式ndash UTF-8 (单字节 ~ 多字节)ndash UTF-16 (双字节和 4 字节与 UCS-2 等价)ndash 目前在工业上的实现均为 UTF-16 ( UCS-2 )和 UTF-8ndash UTF = Unicode UCS Transformation Format 统一码 UC

S转换格式bull 关于统一码我们会在下一小节详细介绍

7 GBK 与 GB 18030bull 由于 GB 13000 标准与 GB 2312 标准的字符编码不兼容作为过渡在国家信息技术标准化委员会的主持下制定了与 GB 2312兼容的《汉字内码扩展规范( GBK )》( K 为扩展的ldquo扩rdquo字的拼音首字母)并于 1995年 12月 15日由原国家技术监督局标准司联合原电子工业部科技与质量监督司作为指导性技术规范发布实施

bull 2000年 GBK又被国家标准 GB 18030-2000《信息技术 信息交换用汉字编码字符集 基本集的扩充》所代替该标准收汉字 2万 7千个

bull 与 GB 2312 一样 GB 18030 也为中国的强制性国家标准微软公司的 Windows XPVista78 中文版与苹果公司的 Mac OS X 和 iOS 谷歌公司的 Android (安卓)等操作系统已经全面支持 GBK

GB 18030 的码位范围分布

字节数 码位空间 码位数目

单字节 0x00~0x7F 128

双字节第 1字节 第 2字节

23 9400x81~0xFE

0x40~0x7E 0x80~0xFE

四字节第 1字节 第 2字节 第 3字节 第 4字节

1 587 6000x81~0xFE 0x30~0x39 0x81~0xFE 0x30~0x39

GB 18030的

总体结构图

收录字符bull 单字节部分mdashmdash收录了GBT 11383 的 0x00~0x7F 全部 128 个字符(似 ASCI

I )bull 双字节部分mdashmdash收录内容如下 (21 003 个汉字和 884 个符号共 21 887 个字符 )

ndash GB 130001-93 的全部 CJK 统一汉字字符 20 902 个( GB 2312 的编码汉字在双字节 2 区其他 CJK 统一汉字在双字节 34 区)

ndash GB 130001-93 的 CJK兼容区挑选出来的 21 个汉字ldquo郎凉秊helliphellip﨨﨩rdquo( 0xFD9C~0xFDA0 和 0xFE40~0xFE4F )

ndash GB 130001-93 中收录而 GB 2312未收录的台湾地区使用的图形字符 139 个ldquoˊˋ˙helliphelliprdquo( 0xA840~0xA895 和 0xA940~0XA988 )

ndash GB 130001-93收录的其他字符 31 ( 13)个(在双字节 5 区)ndash GB 2312-80 中的非汉字字符 682 个( 0xA1A1~0xA9EF )ndash GB 12345-90 的竖排标点符号 19 ( 29)个ldquo︵︶︹helliphellip︳︴rdquo( 0xA6D9~0xA6

F5 )ndash GB 2312-80未收录的 10 个小写罗马数字ldquoⅰⅱⅲhelliphellipⅸⅹrdquo( 0xA2A1~ 0xA2A

A )ndash GB 2312-80未收录的带音调的汉语拼音字母 5 ( 4)个ldquo ńňǹrdquo 以及 ɑ 和 ɡ ( 0

xA8BB~0xA8C0 )ndash 汉字数字零ldquo〇rdquo (0xA996) 和欧元符ldquoeurordquo (0xA2E3)ndash 表意文字描述符 13 个ldquohelliphelliprdquo( 0xA989~0xA995 )ndash 对 GB 130001-93增补的汉字和部首 构件 80 个ldquohelliphellip䶮rdquo( 0xFE50~ 0x

FEA0 )bull 四字节部分mdashmdash收录了上述双字节字符之外的包括 CJK 统一汉字扩充 A 在内

的 GB 130001-93 中的全部字符

GB 18030双字节部分的码位安排

类别 区名 码位范围 码位数 字符数 内容

符号区双字节 1区 A1A1~A9FE 846 718

GB 2312非汉字字符等

双字节 5区 A840~A9A0 192 166 台湾图符等

汉字区双字节 2区 B0A1~F7FE 6768 6763 GB 2312汉字双字节 3区 8140~A0FE 6080 6080 CJK统一汉字双字节 4区 AA40~FEA0 8160 8160 CJK统一汉字等

用户自定义区双字节用户区 1 AAA1~AFFE 564

用户自定义字符双字节用户区 2 F8A1~FEFE 658

双字节用户区 3 A140~A7A0 672

GB 18030双字节部分的编码空间结构图 尾字节

0x40larr――rarr0x7E 0x80larr――rarr0xA0 0xA1larr――――――――――――rarr0xFE

0x81 uarr darr

0xA0

0xA1 uarr darr

0xA7

0xA8 0xA9

首字节

0xAA uarr | | | | | | | | | | darr

0xFE

双字节 3区

汉字区6 080个码位

双字节用户区 3

用户自定义区672个码位

双字节 5区 图形符号区192个码位

双字节 4区

汉字区8 160个码位

双字节 1区

图形符号区564个码位

双字节 2区

汉字区6 768个码位

双字节用户区 1 用户自定义区564个码位

双字节用户区 2 用户自定义区658个码位

223 国际通用字符编码

bull Unicode (统一码)是由多语言软件制造商组成的统一码协会( httpwwwUnicodeorg)所制定一种国际字符的编码标准

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull 本节主要介绍这两种关系密切的主流国际字符编码标准的来历编码方案各自特点与相互关系

1 Unicode 统一码bull 发展历史

ndash 1987年施乐( Xerox )公司的 Joe Becker 与 Lee Collins 和苹果( Apple )公司的 Mark Davis 等人开始讨论统一编码 1987年 12月 Joe Becker造词 Unicode (统一码)含义为ldquo unique universal and uniform character encodingrdquo (单一通用统一的字符编码) 1989年 2月开始定期召开统一码会议 1989年 9月公布 Unicode草案

ndash 1991年 1月 3 日由 Xerox Apple Sun IBM Aldis Microsoft 等公司出资在美国加州成立了统一码协会( Unicode Consortium )并由协会设立非盈利性的统一码公司( Unicode Inc )后来 HP Adobe Borland Digital Lotus Novell 等公司也纷纷加入 1991年 1月成立统一码技术委员会 UTC 并制定了其规程

ndash 1991年 2月在 Ed Hart 的推动下进行了ldquo统一码对 10464 国际标准草案 1rdquo 的对话Unicode 与 ISOIEC 10646开始走向融合

ndash 1991年 8月发布 Unicode 标准 10版的第 1卷(体系结构非表意字符) 1992年6月发表 Unicode 10版的第 2卷(表意字符) 1993年 6月发布 Unicode 11版与 1993年 5月公布的 ISOIEC 10646-11993 实现了合并

ndash 1996年 7月发布 Unicode 20版ndash 1999年 9月发布 Unicode 30版ndash 2003年 4月发布 Unicode 40版(对应于 ISOIEC 106462003 ) 2004年 3月 31日发布 Unicode 401版 2005年 3月 31日发布 Unicode 410版

ndash 2006年 7月 14日发布 Unicode 50版 2008年 4月 4日发布 Unicode 51版 2009年 12月 22日发布 Unicode 52版

ndash 2010年 10月发布 Unicode 60版 2012年 1月发布 Unicode 61版(对应于 ISOIEC 106462012 ) 2012年 9月推出 Unicode 62版 2013年 9月推出 Unicode 63版

ndash 2014年 6月 16日发布 Unicode 70版 ndash 2015年 6月 17日发布 Unicode 80版

字符集bull Unicode 字符集的空间分成双字节的基本多语言平面 (Basic Multilingual Pla

ne BMP) 和 4 字节的辅助多语言平面 (Supplementary Multilingual Plane SMP) 两种

bull BMPndash Unicode 的基本平面或基本多语言平面 BMP 对应于 ISOIEC 10646-1 的第 00组的 00 平面( BMP )即 Unicode 与 ISOIEC 10646 的 BMP 中的字符编码完全一致

bull SMPndash 鉴于 Unicode 原有的 16位元空间不足以应用从 Unicode 31版本开始设立了 16 个辅助平面使 Unicode 的可使用空间由六万多字增至约一百万字

ndash 原有的 Unicode双字节空间称为基本平面或基本多语言平面 BMP 辅助多语言平面 SMP 字符要用 4 字节来储存

ndash 第一辅助平面摆放拼音文字(主要为现时已不再使用的文字)及符号范围在 U+10000 - U+1FFFD

ndash 第二辅助平面又称为表意文字补充平面 (Supplementary Ideographic Plane 简称 SIP) 现时摆放ldquo中日韩统汉字扩展 B 区rdquo共 43253 个汉字范围在 U+20000 - U+2FFFD

ndash 第三至十三辅助平面尚未使用ndash 第十四辅助平面又称为特殊用途补充平面 (Supplementary Special-purpose Pl

ane 简称 SSP) 摆放 Language tags 和 Variation Selectors 它们都是控制字符范围在 U+E0000 - U+E01FF

ndash 第十五至十六辅助平面都是私人使用区它们的范围是 U+F0000 - U+FFFFD 及 U+100000 - U+1000FD

bull Unicode 字符集的具体编码方式参加第 4小节ldquo 4 UTFrdquo

2 ISOIEC 10646

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull ISOIEC 10646 标准由 ISO 与 IEC 联合成立的 ISOIEC JTC1SC2WG2 制定ndash JTC 1 ( Joint Technical Committee 1 on Information

technology ISOIEC信息技术联合技术委员会 1 )负责信息技术方面标准的制定工作

ndash SC 2 ( SubCommittee 2 on Coded character sets 编码字符集分会 2 )下的 WG 2 ( Working Group 2 on Universal coded character set 通用编码字符集工作组 2 )负责制定国际通用字符编码标准即后来公布的 ISOIEC 10646

发展历史bull 1984年 ISO 的一些会员国发起制定新的国际字符编码标准同年 4月 ISO

与 IEC 联合成立 ISOIEC JTC1SC2WG2 1987年 3月制定出编码架构1992年 6月投票通过第二版国际标准草案

bull 1993年 5月推出 10646 标准时将内容分成两个部分标准首先发布的是其中的第 1 个部分(体系结构与基本多文种平面)的第 1版( Edition 1 ) ISOIEC 10646-11993 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane(信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

bull 2000年 3月推出 10646 标准第一个部分的第 2版( Edition 2 ) ISOIEC 10646-12000 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane

bull 2001年 10月推出 10646 标准第 2版的第二个部分(辅助平面)的第 1版( Edition 1 ) ISOIEC 10646-22001 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 2 Supplementary Planes

bull 2003年 10月推出的 10646新标准(第 1版 Edition 1 )将老标准中的两个部分标准合并成了一个单一的标准 ISOIEC 106462003 Information technology -- Universal Multiple- Octet Coded Character Set (UCS) 后来又于 2010年 2012年和 2014年分别推出了 ISOIEC 106462010 (第 2版)ISOIEC 106462012 (第 3版)和 ISOIEC 106462014 (第 4版)

UCS 通用字符集bull 通用字符集( Universal Character Set UCS )是

ISOIEC 10646 标准所定义的字符编码方式采用 4字节编码又称为 Universal Multiple-Octet Coded Character Set (通用多八位编码字符集)

bull 通用字符集是所有包括了其他字符集它保证了与其他字符集的双向兼容即如果你将任何文本字符串翻译到 UCS 格式然后再翻译回原编码你不会丢失任何信息

bull UCS 包含了已知语言的所有字符除了拉丁语希腊语斯拉夫语希伯来语阿拉伯语亚美尼亚语格鲁吉亚语还包括中文日文韩文这样的象形文字 UCS 还包括大量的图形印刷数学科学符号

名字与组合字符bull UCS 不仅给每个字符分配一个代码而且赋予了

一个正式的名字表示一个 UCS 或 Unicode值的十六进制数通常在前面加上ldquo U+rdquo 例如ldquo U+0041rdquo代表字符ldquo Ardquo

bull UCS里有些编码点分配给了组合字符组合字符机制允许在任何字符后加上重音符或其他指示标记 这在科学符号中特别有用 比如数学方程式和国际音标字母 可能会需要在一个基本字符后组合上一个或多个指示标记

实现级别bull 并不是所有的系统都需要支持像组合字符这样的的先进

机制因此 ISO 10646 指定了如下三种实现级别ndash 级别 1不支持组合字符和韩语 Hangul Jamo 字符 ( 一种特

别的 更加复杂的韩国文的编码 使用两个或三个子字符来编码一个韩文音节 )

ndash 级别 2类似于级别 1 但在某些文字中允许一列固定的组合字符 (例如 希伯来文 阿拉伯文 Devangari 孟加拉语 果鲁穆奇语 Gujarati Oriya 泰米尔语 Telugo 印 埃纳德语 Malayalam 泰国语和老挝语 ) 因为如果没有最起码的几个组合字符 UCS就不能完整地表达这些语言

ndash 级别 3支持所有的 UCS 字符如可以在任意一个字符上加上一个箭头或 和一个 tilde(颚化符号即字母上面的~ )

编码方式bull UCS 有如下两种编码方式

ndash UCS-2与 Unicode 的 2 字节编码基本一样ndash UCS-4 4 字节编码目前是在 UCS-2 前加

上 2 个全零的字节bull UCS 还有 UTF 编码方式参见下面第 4小节ldquo 4 UTFrdquo

3 Unicode 与 ISOIEC 10646bull 关系

ndash 历史上存在两个独立的尝试创立单一字符集的组织即国际标准化组织( ISO )和多语言软件制造商组成的统一码协会组织( Unicodeorg )前者开发的 ISO 10646项目后者开发的 Unicode项目因此最初制定了不同的标准

ndash 1991年前后两个项目的参与者都认识到世界不需要两个不兼容的字符集于是它们开始合并双方的工作成果并为创立一个单一编码表而协同工作

ndash 从 Unicode20开始 Unicode采用了与 ISO 10646-1相同的字库和字码 ISO 也承诺 ISO10646 将不会替超出 U+10FFFF 的 UCS-4 编码赋值以使得两者保持一致

ndash 两个项目仍都存在并独立地公布各自的标准但 Unicode协会和 ISOIEC JTC1SC2 都同意保持两者标准的码表兼容并紧密地共同调整任何未来的扩展

异同bull Unicode协会公布的 Unicode 标准包含了 ISO 10646-1 实现级别

3 的基本多文种平面在两个标准里所有的字符都在相同的位置并且有相同的名字

bull ISO 10646 标准就像 ISO 8859 标准一样只不过是一个简单的字符集表它定义了一些编码的别名指定了一些与标准有关的术语并包括了规范说明指定了怎样使用 UCS连接其他 ISO 标准的实现等

bull Unicode 标准额外定义了许多与字符有关的语义符号学并详细说明了绘制某些语言(如阿拉伯语)表达形式的算法处理双向文字(比如拉丁文和希伯来文的混合文字)的算法排序与字符串比较所需的算法等等

bull 考虑到 Unicode 标准有一个易记的名字既便宜又包括更多的辅助信息因而它使用得更广泛然而

bull 一般认为用于打印 ISO 10646-1 标准的字体在某些方面的质量要高于用于打印 Unicode 20 的专业字体设计者总是被建议说要两个标准都实现但一些提供的样例字形有显著的区别 ISO 10646-1 标准同样使用四种不同的风格变体来显示表意文字如中文日文和韩文 (CJK) 而 Unicode 20 的表里只有中文的变体

4 UTFbull Unicode 和 UCS 都是一个字符集可以看作为内码bull UTF ( UnicodeUCS Transformation Format 统一码

通用字符集转换格式)是一种编码方式它的出现是因为 Unicode 和 UCS 不适宜在某些场合直接传输和处理

bull UCS 和 Unicode 只是分配整数给字符的编码表现在存在好几种将一串字符表示为一串字节的方法(如高或低位字节在前)

bull 最显而易见的两种方法是将 UCS 和 Unicode 文本存储为 2 个 或 4 个字节序列的串这两种方法的正式名称分别为 UCS-2 和 UCS-4

bull 常用的 UTF具体编码方式有 UTF-8 UTF-16 和 UTF-32

UTF-8

bull UTF-8 是 UTF 的一种具体编码方式在 ISO 10646-1 的附录 R 和 IETF 的 RFC 2279 里定义

bull 由于要使文档中的文字与 ASCII兼容故 UTF-8 选择了使用可变长度字节来储存 Unicode 和 UCS 例如ndash ASCII 字母继续使用 1 字节储存ndash 重音文字希腊字母或西里尔字母等使用 2 字节来储存ndash 常用的汉字就要使用 3 字节ndash 辅助平面字符则使用 4 字节ndash 即 ASCII 不作变换其他字符做变长编码每个字符 1~4 字节

bull UTF-8 通常作为外码bull 在 UTF-8 文件的开首很多时都放置一个 U+FEFF 字符

(UTF-8 以 EF BB BF 代表 ) 以显示这个文字档案是以UTF-8 编码

UTF-8 的优点bull 与 CPU 字节顺序无关可以在不同平台之间交流

bull 容错能力高任何一个字节损坏后最多只会导致一个编码码位损失不会链锁错误 ( 如 GB 码错一个字节就会整行乱码 )

UTF-8 的缺点bull UTF-8 使用可变长度字节储存使计算机程序设计变得复杂 (故此在计算机程序或操作系统内部多采用 UCS-2 编码 )

bull 在旧式的中文日文及朝鲜文编码之中每字符都使用 2 字节储存而 UTF-8 须使用 3 字节 (采用 UTF-16 编码则可只使用 2字节储存 )

bull 泰语以往使用的 ISO 8859-11 每字符只使用 1 字节储存而 UTF-8 须使用 3 字节

UTF-8储存的多字节串字符bull U-00000000 - U-0000007F 0xxxxxxx bull U-00000080 - U-000007FF 110xxxxx 10xxxxxx

bull U-00000800 - U-0000FFFF 1110xxxx 10xxxxxx

10xxxxxx bull U-00010000 - U-001FFFFF 11110xxx 10xxxxx

x 10xxxxxx 10xxxxxx bull 在多字节串中第一个字节的开头ldquo 1rdquo 的数目就

是整个串中字节的数目bull 每个使用 UTF-8储存的字符除了第一个字节外其余字节的头两个位元都是以 10 开始使文字处理器能够较快地找出每个字符的开始位置

UTF-16bull UTF-16 是 UTF 的另一种具体编码方式在 ISO 1064

6-1 的附录 Q 和 IETF 的 RFC 2781 里定义bull UTF-16 是变长码( 2 或 4 字节)大致相当于 20位编码值在 0 到 0x10FFFF 之间基本上就是 Unicode 编码的实现 UTF-16 与 CPU 字序有关但因为最省空间常作为网络传输的外码 UTF-16 是 Unicode 的完美编码

bull lt0x10000 的直接用其对应的 16位整数编码位于 0x10000 ~ 0x10FFFF 之间的用 0xD800~0xDBFF 的 16位整数后跟 0xDC00~0xDFFF 的 16位整数的 4 字节编码 gt 0x10FFFF 的不能用 UTF-16 表示

bull 在 Unicode 的 BMP 中定义的字符(无论是拉丁字母汉字或其他文字或符号)一律使用 2 字节存储而在辅助平面定义的字符则以两个 2 字节的值来存储

UTF-16 的特点bull UTF-16比起 UTF-8 的好处在于大部分字符都以固定长

度的 2 字节存储但 UTF-16却无法相容于 ASCII 编码bull UTF-16 有两种编码模式即大尾序( big Endian 高位字节在前)和小尾序( little Endian 高位字节在后)储存形式(一般來說以 Macintosh 制作和存储的文字使用大尾序格式以 Microsoft 或 Linux 制作和存储的文字使用小尾序格式)

bull 为了弄区分 UTF-16 文件的大小尾序在 UTF-16 文件的开头都会放置一个 U+FEFF 字符作为字节顺序标记 (UTF-16LE 以 FF FE代表 UTF-16BE 以 FE FF代表 ) 以显示该文档是以 UTF-16 编码的

UTF-32

bull UTF-32 仅使用了 Unicode范围 (0 到 0x10FFFF) 的 32位编码相当于 UCS-4 的子集

bull 由于 Unicode 和 ISOIEC 10646 的编码和结构与前面讲过的 GB 13000 类似或等价这里就不再做详细的介绍

5支持bull 现在 UnicodeUCS 已经获得了十分广泛的支

持ndash网络与浏览器(如 HTML 4050 XML 与 IE

Safari Netscape Firefox Chrome Opera Edge 等)

ndash操作系统(如 Windows NT2000XPVista7810 Mac OS X iOS Android和 Linux )

ndash 编程语言新版本(如 CC++JavaObjective-CC Swift 等)

Unicode 代码的浏览器显示代码 字符标准名称 (英语 )

浏览器的显示

amp65 大写拉丁字母 A A

amp223 小写拉丁字母 Sharp S szlig

amp254 小写拉丁字母 Thorn thorn

amp916 大写希腊字母 Delta Δ

amp1049 大写斯拉夫字母 Short I Й

amp1511 希伯来字母 Qof ק

amp1605 阿拉伯字母 Meem م

amp3671 泰文数字 7 ๗amp4688 埃塞俄比亚音节文字 Qha ቐ

amp12354 日语平假名 A あamp12450 日语片假名 A アamp21494 简体汉字 叶 叶amp33865 繁体汉字 葉 葉amp50685 韩国音节文字 Yeob 엽

23 文字输出bull 文字输出是指将计算机内的字符编码通过计算机的输出设备(如显示器打印机喇叭)展现出所对应字符的图形或声音供人们阅读或聆听

bull 本节主要介绍文字图示输出的字形技术bull 文字声音输出属于语音合成只在本节的末尾作简单的介绍

231 字形技术bull 文字 = 图形bull 不论是象形文字中的单字还是拼音文字

中的字母都是用图形来表示的bull 在计算机里文字的表示 输出(显示和打

印)涉及ndash 字型ndash 字体ndash 字库

1字型bull 字型指构造和生成字形的方法一般可分为

ndash 点阵字 DOS 显卡 ROM 金山 科印特点似位图显示快占空间(字库大)放大后有马赛克效应

bull 显示字母 88 汉字 1616bull 打印 2424 4848 6464

ndash 矢量字单线条用于笔式绘图仪特点字库小算法简单难看

ndash 轮廓字用曲线描绘字的轮廓输出效果好所见即所得(WYSWYG) 可无级放大易实现空心 阴影 填充 变形等各种特效功能轮廓曲线一般采用样条曲线如 TrueType (Apple 1991 Mac OS Microsoft 1992 Windows 31)用的是二次 B 样条 Bezier曲线中文之星 RichWin采用的是三次 B 样条 Bezier曲线

字型种类

2字体bull 字体指字的形状风格如

ndash 汉字的

ndash 英文的

宋体楷体黑体仿宋

行楷隶书新魏幼圆

Times New Roman Arial Narrow Courier New

常用汉字字体bull 宋体mdashmdash宋体来自于北宋时雕版刻书所采用的欧体字(唐朝欧阳询体)宋体字的横顿拉捺挑钩别具特色间架平正疏密适中字体秀丽遒劲但笔画横细竖粗适合于刀刻不宜于手写现在宋体广泛用于印刷常来表现文档的正文

bull 仿宋体mdashmdash 1920年钱塘的丁辅之与丁善之等人将明代以后盛行的方廓形字体加以改造创造出长形和方形的聚珍仿宋后来演化为现在的仿宋体仿宋体比较接近于手写体为宋体和楷体的折中是采用的宋体的结构和楷体的笔法而成现常来表现打印文件以及文档的摘要和注释等

bull 黑体mdashmdash黑体是适应工艺美术的发展而出现的一种等线体是从日本引进的黑体的结构与宋体没有什么差别只是其笔画粗细一致健实粗壮主要用于文档的标题和重点及标语广告等方面

bull 楷体mdashmdash楷体源于楷书楷体的笔画圆浑笔调灵活结构端正美观但不宜于木板雕刻所以直到清末西洋的石板印刷术传入后才开始广泛用于印刷现代的楷体创造于 20世纪的二三十年代主要用于文档的正文(多用于中小学教材)也可用于工艺美术等方面

3字库bull 字库为一种文字的某一字体的所有字符的集合一般存放在一个磁盘文件中

bull 由于象形文字中单字的数量大(成千上万)而拼音文字中字母的数量小(不到一百个)所以字库的大小有很大的差别

bull 为了使文档界面丰富多彩常见的字处理软件都支持多种字体带有众多字库

4点阵字型的国家标准bull 我国已经公布了若干字体的点阵字型之国家标准

ndash GB 50071-19852001 信息技术 汉字编码字符集(基本集) 24 点阵字型

ndash GB 50072-19852001 信息技术 汉字编码字符集(辅助集) 24 点阵字型

ndash GB 5199-19862001 信息技术 汉字编码字符集(基本集) 16 点阵字型 宋体

ndash GB 6345-19862001 信息技术 汉字编码字符集(基本集) 32 点阵字型 宋体

ndash GB 12041-2001 信息技术 汉字编码字符集(基本集) 48点阵字型 宋体

ndash GB 17698-1999 信息技术 通用多八位编码字符集( I 区) 汉字 16 点阵字型

232 语音合成bull 文字的声音输出主要使用的是语音合成的技术bull 语音合成功能是ldquo文rarr语rdquo转换bull 文语转换 TTS (Text-To-Speech) 是将文本形式的信息转换成自然语音的一种技术其最终目标是使计算机输出清晰而又自然的声音

bull 英语的语音合成在上世纪 80年代就早已成熟而中文 汉语的合成现在也趋于成熟并有了广泛的应用(如汽车导航仪智能手机等)

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 2: 第一篇  媒体

常见媒体

第 2 章 文字

bull 21 文字输入键盘输入手写输入语音输入扫描输入

bull 22 字符编码西文编码中文编码国际编码

bull 23 文字输出字形技术语音合成

文字bull 文字是语言的记录可以分为拼音文字(如英

文)和象形文字(如中文)两大类各类文字都是用图形符号(如字母和汉字)来表示的

bull 在多媒体技术出现之前文字是人们书面交流的主要手段在多媒体技术得到广泛应用的今天文字也是最重要的媒体元素之一

bull 计算机对文字的处理包括文字的输入编码与输出

bull 本章依次介绍文字输入字符编码与文字输出重点放在汉字编码标准之上

21 文字输入bull 将文字录入进计算机的方法主要有键盘输

入手写输入语音输入和扫描识别输入bull 键盘输入是传统和主要的文字录入手段bull 随着计算机技术的发展方便和快速的手

写与语音输入成为解决文字输入瓶颈的有效途径

bull 扫描输入主要应用在印刷品的大量文字自动录入方面

211 键盘输入bull 计算机的通用键盘源自传统的打字机本身是

为英文字母的键入而设计的非常适合于拼音文字的字母输入而像汉字这样的象形文字用键盘输入则十分困难

bull 汉字的三个要素是形音义汉字的编码输入主要可以分为形码(如五笔字型)和音码(如全拼)两大类各种形码和音码输入法可以结合汉字的词义与语义特性进行词汇与整句等智能化的输入(如微软拼音输入法)

212 手写输入bull 随着各种手持设备(如平板电脑智能手

机)的不断出现与普遍使用联机手写文字的实时识别与输入方法已经得到越来越广泛的应用

bull 手写输入是指人用手指或(特制的)笔在图形板上书写机器进行实时的识别并将对应文字的编码输入

bull 汉字的联机手写输入是自动汉字识别中最简单的一种

特点

bull 机器识别的是笔画而不是整字bull 识别结果可以及时反馈所以对识别率要

求不高bull 输入方便不需对输入人员进行培训bull 适合于边想边写bull 可利用图形板方便地进行编辑和修改

技术bull 人写字时手的抖动书写速度的变化图形板的

量化和感应噪声等会对识别产生干扰因此必须进行必要的平滑和去噪预处理

bull 识别时还需进行字符分割以区分哪些笔画属于同一汉字

bull 手写输入在技术涉及图像识别模式匹配人工智能语言文字书写方式与习惯等方面的知识和方法

bull 目前的手写识别方法和技术还有待于进一步改进和完善以提高识别率减少对输入的限制降低输入设备和识别软件的成本加强软件的自学习功能

213 语音输入bull 语音输入是指利用语音内容的识别技术

将人的话音实时转换为对应文字编码并录入计算机

bull 语音输入的核心技术是语音识别技术bull 语音识别技术现在正在发展过程中还

有待于进一步完善

语音识别技术bull 早期的语音识别技术一直很落后到上世纪 70年代中采

用线性预测编码 LPC 和同态信号处理 (homomorphic signal process) 方法技术有了长足的进步但效果不理想到了上世纪 80年代矢量量化 (VQ Vector Quantization) 和隐马尔科夫模型 (HMM Hidden Markov Model) 的成功使用使语音识别在上世纪 90年代达到了商用化程度不过仍然存在问题识别率一直难以进一步提高又进入了相对低潮的相持阶段2011年 10月 14日苹果公司推出的 iPhone 4S 手机支持智能语音指令输入虽然还存在不少问题但是却引发了业界对语音输入研究和应用的新热潮

bull 语音输入的字词识别涉及词库声母分类规则库声母与韵母结合规则库声调知识库这些统称为声学基元模型库句子识别还涉及语义语法句法语用知识库这些统称为语言模型库句子理解则涉及常识库(难)

语音识别的过程图语音输入

darr数据采集

darr波形自动分析

darr预处理 参数特征提取

分帧后的语音特征矢量集合rarrdarr 声学模型 时间对准larr声学基元模型库

darr 语言模型库rarr 组句分析 larr统计信息与规则

语句候选rarrdarr识别语句输出

语音识别系统分类bull 按可识别词汇量可分为

ndash 小词汇量语音识别系统 (lt100)ndash 中词汇量语音识别系统 (100~1000)ndash 大词汇量语音识别系统 (gt1000)

bull 按语音输入方式可分为ndash 孤立词语音识别系统(简单)ndash 连接词语音识别系统(较难)ndash 连续语音语音识别系统(难)

bull 按发言人类型可分为ndash 特定人( 1 人)ndash 限定人( n 人)ndash 非特定人(任意人)

语音识别的目标是开发大词汇量非特定人的连续语音识别系统

214 扫描输入bull 扫描输入是指将图书期刊打印材料和印刷

品中的印刷体文字先通过扫描仪变成计算机中的数字图像然后再利用文字识别软件 OCR 自动转换成对应得文字编码并录入计算机

bull 目前我国研制的多种 OCR 软件的识别率已经达到 95 以上不过受印刷品质量的影响比较大

bull OCR = Optical Character Recognition Reader 光学字符识别 阅读器

bull 计算机识别印刷汉字的核心问题是抓住汉字的字形特征它主要体现在笔画和关键点上

bull 另一个核心问题是版面的分析与理解包括从图文混排版面中自动排除图形部分自动区分横排和竖排自动识别标题和正文对分栏文本实现自动对接等

bull 扫描输入方法除了用于印刷体文字的识别和输入外也可以用于手写体印刷文字的输入其文字识别的方法与印刷体文字类似也与手写实时输入的方法相关不过失去了笔顺信息属于整字识别类型

22 字符编码bull 字符编码包括西文编码中文编码和国际通

用字符编码本节的重点放在常用的编码标准上

bull 221 西文编码( ASCII 等)bull 222 中文编码( GB 2312 GB 13000

GBKGB 18030 )bull 223 国际通用字符编码( Unicode IS

OIEC 10646 )

221 西文编码bull 西文编码主要介绍 ASCII 字符集然后简

单介绍 IBM公司的 EBCDIC 和两种扩展 ASCII 显示字符表

bull 1 ASCII

bull 2 EBCDIC

bull 3扩展 ASCII 显示字符

1 ASCII

bull ASCII ( American Standard Code for Information Interchange 美国信息交换标准码)是 ANSI于 1963年提出 1968年确定的一种英文字符编码标准( ANSI X34-1986 )广泛应用于计算机网络和信息产业

bull ANSI = American National Standards Institute 美国国家标准协会

bull ASCII采用 7位二进制数的(共计 128 个)代码来表示字符(包括图示符和控制符)加上奇偶校验位(或最高位置 0 )则每个字符由 8位(一个字节)组成

ASCII 字符集

0 1 2 3 4 5 6 7

0 NUL DLE SP 0 P ` p

1 SOH DC1 1 A Q a q

2 STX DC2 ldquo 2 B R b r

3 ETX DC3 3 C S c s

4 EOT DC4 $ 4 D T d t

5 ENQ NAK 5 E U e u

6 ACK SYN amp 6 F V f v

7 BEL ETB lsquo 7 G W g w

8 BS CAN ( 8 H X h x

9 HT EM ) 9 I Y i y

A LF SUB J Z j z

B VT ESC + K [ k

C FF FS lt L l |

D CR GS - = M ] m

E SO RS gt N ^ n ~

F SI US O _ o DEL

bull ASCII 字符集以 32 个字符为一组bull 第一组( 0x00~0x1F )为控制符

(非打印符)用于数据处理 通信系统及其相应设备中的信息交换

bull 后面的除了第一个字符( SP空格符 0x20 )和最后一个字符( DEL删除符 0x7F )外全都是可打印(显示)的图示符包括ndash 第二组( 0x20 ~0x6F )的数字空格

和常用标点符号ndash 第三组( 0x40~0x5F )的大写拉丁字

母(即英文字母)与少数标点符号ndash 第四组( 0x60~0x7F )的小写拉丁字

母与少数标点符号

ASCII 的国际标准bull 1972年美国的国家标准 ASCII 与其若干拉丁语系国家的变体一起成为国际标准 ISO 6461972 ( Information processing -- ISO 7-bit coded character set for information interchange 信息处理mdashmdash ISO 用于信息交换的七位编码字符集)

bull 这些变体主要是将 ASCII 字符集中不常用的符号ldquo $ [ ] ^ ` | ~rdquo替换为他们各自语言的重音符号

bull 1987年 ISO 646 中的 ASCII部分成为 646 的国际参考版( IRV = International Reference Version ) ISO 646IRV1987 但是其中的美元符 $被替换为国际通用货币符 curren

bull 1991年推出的修订版 ISOIEC 646IRV1991 还原成原始的美国 ASCII 所以又被称为 ISO 646-US 或 US-ASCII

替代标准bull 由于 ISO 646 中各国的变体存在明显的兼容和统一问题现在已经作废

bull 有关编码已经被新的国际标准 ISOIEC 8859-1~16 19871998 ( Information processingtechnology -- 8-bit single-byte coded graphic character sets 信息处理 技术mdashmdash 8位单字节编码的图形字符集)所替代

bull 后来 ISO 646 与 ISOIEC 8859 标准又都被纳入 ISOIEC 1064619932003 ( Information technology -- Universal Multiple-Octet Coded Character Set (UCS) 信息技术mdashmdash通用多八位编码字符集 (UCS) )标准之中

bull 其中的标准编号 ISO 10646 = ISO 646 + 10000

标准化组织bull ANSI = American National Standards Institute 美

国国家标准协会bull ISO = International Organization for Standardization

国际标准化组织是由 153 个国家的国家标准协会联合组成的一个非政府国际组织总部(中央秘书处)设在瑞士的日内瓦负责制定适应商业和广泛社会需要的各种国际标准网址为 httpwwwisoorg

bull IEC = International Electrotechnical Commission 国际电工技术委员会是一个成立于 1906年 6月的国际标准化权威组织属于联合国的甲级咨询机构负责制定关于电工电子各方面的标准有 42 个会员国总部也设在瑞士的日内瓦网址为httpwwwiecch我国于 1958年 8月参加

2 EBCDIC

bull 西文的字符编码方案除了通用的 ASCII外还有 IBM公司于 1960年代初提出的 EBCDIC ( Extended Binary-Coded Decimal Interchange Code扩充的二进制编码的十进制交换码)

bull EBCDIC 现在仍然(仅)在 IBM 的 OS390 与 TPF 以及富士通 - 西门子的 BS2000OSD 等大型机的操作系统中使用

bull EBCDIC 是一种八位编码其字符的编码方案与ASCII 的完全不同

EBCDIC 字符集 0 1 2 3 4 5 6 7 8 9 A B C D E F

0 NUL DLE DS SP amp - 0

1 SOH DC1 SOS a j ~ A J 1

2 STX DC2 FS SYN b k s B K S 2

3 ETX TM c l t C L T 3

4 PF RES BYP PN d m u D M U 4

5 HT NL LF RS e n v E N V 5

6 LC BS ETB UC f o w F O W 6

7 DEL IL ESC EOT g p x G P X 7

8 GE CAN h q y H Q Y 8

9 RLF EM ` i r z I R Z 9

A SMM CC SM cent | |

B VT CU1 CU2 CU3 $

C FF IFS DC4 gt

D CR IGS ENQ NAK ( ) _ lsquo

E SO IRS ACK + lt =

F SI IUS BEL SUB | ldquo EO

3扩展 ASCII 显示字符bull ( 1 ) IBM PC

ndash IBM PC 的扩展 ASCII 显示字符由 IBM公司为其 PC 机制定可以由原始的 IBM PC 显示器在 DOS状态下显示

bull ( 2 ) Microsoft Windows ndash Microsoft Windows 的扩展 ASCII 显示字符由

微软公司为其Windows操作系统制定可以在Windows环境的西文状态下被显示

IBM PC 的扩展 ASCII 显示字符表

Microsoft Windows 的扩展 ASCII 显示字符表

222 中文编码bull 1 GB 1988 与 GB 2311

bull 2 GB 2312

bull 3汉字编码的辅助集bull 4 Big5

bull 5少数民族文字编码bull 6 GB 13000

bull 7 GBK 与 GB 18030

汉字编码bull 为了计算机处理汉字必须先对汉字进行编码由于汉

字数量大(《康熙字典》收字 47 035 个《汉语大字典》收字 54 678 个据统计在形成楷体后出现的汉字约有 9万个左右)显然不能像 ASCII那样用 7位或单字节来进行编码至少需要两个字节(最多可表示 6万5千多个字符)

bull 1980年我国制定了著名的 GB 2312-80双字节汉字编码标准(其中 GB 为ldquo国标rdquo这两个汉字的拼音首字母)收汉字 6 763 个

bull 1993年底又推出了等同于国际通用字符编码标准 ISOIEC 106461-1993 的国家标准 GB 130001-93 收汉字 20 902 个

bull 由于 GB 13000 与 GB 2312 的编码不兼容作为过渡2000年又公布了 GB 18030-2000 ( GBK )收汉字2万 7千个

1 GB 1988 与 GB 2311

bull 为了能够同时表示和处理汉字和英文实现中外文混排汉字编码必须兼容通用的 ASCII 编码因此1980年我国制定了与国际标准 ISO 6461972 (即ASCII )对应的国家标准 GB 1988-80《信息处理交换用的七位编码字符集》

bull 汉字成千上万不可能像 ASCII 一样只用单字节的七位来表示必须扩展到八位和多字节但是不能随意扩充而应该符合国际规范因此我国于 1980年又制定了与七位代码扩充到八位编码的国际标准 ISO 2022兼容的国家标准 GB 2311-80《信息处理交换用七位编码字符集的扩充办法》

GB 1988-80 ( ASCII )的代码结构图

行 0 1 2 3 4 5 6 7

0 SP

1 helliphellip

15

16

32个

控制符

94个

图形字符

DEL

GB 2311-80 的八位编码结构图列

行 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0 SP 100

1

helliphellip

14

15

C0

32个

控制符

GL

94或 96个

图形字符

DEL

C1

32个

控制符

GR

94或 96个

图形字符

1515

2 GB 2312

bull GB 2312-80《信息交换用汉字编码字符集 middot基本集》是我国制定的一个使用最广泛的汉字编码的强制性国家标准由原第四机械工业部的华北计算机研究所(后改名为电子工业部第十五研究所)起草1980年批准 1981年 5月 1日起实施

bull GB 2312-80 是在已有的国家标准 GB 1988-80(对应于 ISO 646 )和 GB 2311-80 (对应于 ISO 2022 )的基础上制定的采用与 ISO 2022兼容的GB 2311 之 7位到八位的代码扩充办法用双字节编码表示汉字与 ASCII兼容

收录的字符bull GB 2312 对应的是汉字的基本集共收汉字 6 763 个

可达到 9999 的使用频率因此除了极少数生僻的人名地名和古文外 GB 2312 中的汉字已经能基本满足平时的使用了

bull 除了汉字外 GB 2312 还收录了 682 个非汉字图形符号包括 202 个一般符号(含间隔符标点运算符和制表符) 60 个序号符 22 个数字符 52 个英文字母 169 个日文假名 48 个希腊字母 66 个俄文字母 26 个汉语拼音符号和 37 个汉语注音字母

bull 所以在 GB 2312-80 标准中共收录了( 6 763 汉字 + 682 非汉字图符 = ) 7 445 图形字符

两级汉字bull GB 2312 将其收录的六千多个汉字分成两个级别bull 一级汉字有 3 755 个都为使用频率高的常用汉

字为便于检索像字典那样将这些汉字按拼音字母顺序排列(同音字再按笔顺的横竖撇捺点折序排列)

bull 二级汉字有 3 008 个大部分较生僻不易掌握读音所以按部首顺序排列(同部首的字按笔画数排列同笔画数的字再按笔顺排列)

编码方案bull GB 2312 对所有图形字符(包括汉字和非汉字图符)都采用两个字节表示每个字节的低七位用于编码最高位全为 1 这样可以兼容 ASCII 编码(字节的最高位全为 0 )

bull 虽然在一个字节中最高位为 1 的符号位置有 128 个但从前面 GB 2311 的分析可知为了与 ASCII 的代码结构兼容保留了( 32 + 2 = ) 34 个控制符位置最后只有( 128 ndash 34 = ) 94 个符号位可供图形字符编码使用

bull 图形字符在代码表中的位置用区位码表示将码表分成94 个区对应于编码的第一个字节取值 0x21~0x7E 每个区又分成 94 个位对应于编码的第二个字节取值 0x21~0x7E (参见表 2-6 )

bull 例如ldquo中山大学rdquo的编码为中 (0xD6D0) 山 (0xC9BD) 大 (0xB4F3) 学 (0xD1A7)

GB 2312-80 字符集结构 20 21 22 helliphellip 7D 7E 7F

位号

区号

1 2 helliphellip 93 94

20

21~29 1~9 非汉字图符(682个)

2A~2F 10~15 空白区

30~57 16~55 一级汉字(3 755个)

58~77 56~87 二级汉字(3 008个)

78~7E 88~94 空白区

7F

第 1 区的部分非汉字图符

1区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 middot ˉ ˇ uml 々 mdash ~ hellip lsquo rsquo ldquo

17~32 rdquo 〔 〕 〈 〉 《 》 「 」 『 』 〖 〗 【 】 plusmn

33~48 times divide ∶ and or sum prod cup cap isin ∷ radic perp ∥ ang

49~64 ⊙ int ∮ equiv ≌ asymp ∽ prop ne ltu gtu le ge infin ∵ there4

65~80 deg prime Prime $ curren ¢ £ permil sect

81~94 rarr larr uarr darr

第 16 区的部分一级汉字

16区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 啊 阿 埃 挨 哎 唉 哀 皑 癌 蔼 矮 艾 碍 爱 隘 鞍

17~32 氨 安 俺 按 暗 岸 胺 案 肮 昂 盎 凹 敖 熬 翱 袄

33~48 傲 奥 懊 澳 芭 捌 扒 叭 吧 笆 八 疤 巴 拔 跋 靶

49~64 把 耙 坝 霸 罢 爸 白 柏 百 摆 佰 败 拜 稗 斑 班

65~80 搬 扳 般 颁 板 版 扮 拌 伴 瓣 半 办 绊 邦 帮 梆

81~94 榜 膀 绑 棒 磅 蚌 镑 傍 谤 苞 胞 包 褒 剥

第 56 区的部分二级汉字

56区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 亍 丌 兀 丐 廿 卅 丕 亘 丞 鬲 孬 噩 丨 禺 丿 匕

17~32 乇 夭 爻 卮 氐 囟 胤 馗 毓 睾 鼗 丶 亟 鼐 乜 乩

33~48 亓 芈 孛 啬 嘏 仄 厍 厝 厣 厥 厮 靥 赝 匚 叵 匦

49~64 匮 匾 赜 卦 卣 刂 刈 刎 刭 刳 刿 剀 剌 剞 剡 剜

65~80 蒯 剽 劂 劁 劐 劓 冂 罔 亻 仃 仉 仂 仨 仡 仫 仞

81~94 伛 仳 伢 佤 仵 伥 伧 伉 伫 佞 佧 攸 佚 佝

3汉字编码的辅助集bull 除了GB 2312基本集的 6 763 个简体汉字外国家标

准还给出了汉字编码字符集的多个辅助集bull 第二 四辅助集分别增加了 7 237 7 039 个简体汉字bull 第一和三 五辅助集则分别是与基本集和第二 四辅助集所对应的繁体汉字字符集的国家标准

bull 基本集加上辅助集共有 21 039 个简体汉字和 21 142个繁体汉字

bull 繁体汉字之所以多一些是因为在第一辅助集中有时几个繁体字对应一个简体字因此比基本集多出 103 个汉字

bull 基本集和辅助集的代码页之间靠其编码字节的最高位来区分

编码字符的分页标志

双字节汉字编码的页面结构第二字节 列号

行号 0 middot middot middot 32 33 34 helliphellip 125 126 127 128middot middot 160 161 162 helliphellip 254 255 0 middot middot 32

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

33 34 middot middot middot 126

1 2 middot middot middot 94

第四五辅助集 (7 039个汉字)

127

(兼容ASCII)

128 middot middot 160

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

161 162 middot middot middot 254

1 2 middot middot middot 94

第二三辅助集 (7 237个汉字)

1 2 middot middot middot 94

基本集第一辅助集 (6 763 6 866个汉字) (682个非汉字图符)

第一字节

255

4 Big5

bull 除了中国大陆使用的简体汉字外在台湾香港澳门和海外华侨社区使用的是传统的繁体汉字

bull 简体汉字使用 GB (国标)系列编码标准bull 繁体汉字一般使用的是 Big5内码(大五码)即台湾的ldquo资讯工业策进会rdquo发布的《标准交换码 (Ⅲ码 )》收录汉字 13 053 个

bull Big5内码是 1984年由台湾财团法人资讯工业策进会与宏碁 (Acer) 神通 (MiTAC) 佳佳零壹 (Zero One) 大众 (FIC) 等五大软件公司联合推出故称为大五码

BIG5 的代码空间低位字节

00 hellip 3F 40 hellip 7E 7F hellip A0 A1 hellip FE FF

高位字节

00middot

80

81middot

A0用户定义区 用户定义区

A1A2A3

非汉字图符 非汉字图符

A4middot

C6常用汉字 常用汉字

C7C8

用户定义区 用户定义区

C9middot

F9次常用汉字 次常用汉字

FAmiddot

FE用户定义区 用户定义区

FF

5少数民族文字编码bull 中国共有 56 个民族除了汉回满族一般使用汉语外其他少数民族大多有自己的民族语言

bull 我国各民族使用的 50 多种文字可以分为字母式结构文字和非字母式结构文字两大类ndash 字母式结构的有拉丁文斯拉夫文蒙古文维吾尔文哈萨克文藏文和朝鲜文等字母式

ndash 非字母式结构的有汉字象形文字图画文字和音节文字等bull 各民族文字的书写方向也有不同

ndash 壮文藏文朝鲜文彝文等的字从左到右行从上到下ndash 维吾尔文哈萨克文和柯尔克孜文等的字从右到左行从上

到下ndash 蒙古文和满文的字从上到下行从左到右ndash 汉字的书写方向有两种

bull 大陆的简体汉字的字从左到右行从上到下bull 港台与古旧书的繁体汉字的字从上到下行从右到左

国家标准bull 下面按发布时间列出若干已经公布的我国少数民族文字

编码集的国家标准(这些字符集一般分成两类对字母式结构文字采用八位编码对非字母式结构文字采用双字节编码)ndash GB 8045-87《信息处理交换用蒙古文七位和八位编码图形字

符集》收 82 个蒙古文字母和 12 个其他符号共 94 个字符ndash GB 12050-89《信息处理交换用维吾尔文编码图形字符集》收 32 个维吾尔文字母一个维吾尔文复合字符和 37 个其他符号共 70 个字符

ndash GB 12052-89《信息交换用朝鲜文编码字符集》收 5297 个朝鲜文字和 682 个其他符号(与 GB 2132同)共 5 979 个字符

ndash GB 13134-91《信息交换用彝文编码字符集》收 1165 个彝文字符和 688 个其他符号共 1853 个字符

ndash GB 16959-1997《信息技术 信息交换用藏文编码字符集 基本集》收 41 个藏文字母 36 个藏文主字 13 个元音字符12 个语音字符 10 个藏文数字 10 个半值符一个控制用连接符和 46 个其他藏文图形符号共 169 个字符

6 GB 13000bull GB 13000 是与 ISOIEC 10646 等价的国际通用编码字符集标准收汉字 2万多个但是与 GB 2312 和 GBK 不兼容

bull 1993年 5月 ISO 与 IEC 联合推出了可用于世界各种文字的通用编码字符集的国际标准的第 1部分ndash ISOIEC 10646-11993 Information technology -- Universal Multiple-Octe

t Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane (信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

ndash 该标准收字符 96万个几乎涵盖世界上的所有文字其中包含汉字 21 003 个

bull 1993年底我国推出了等同于国际标准 ISOIEC 1064611993 的强制性国家标准 ndash GB 130001-93《信息技术 通用多八位编码字符集( UCS ) 第一部分

体系结构与基本多文种平面》ndash 该标准于 1993年 12月 24日被国家技术监督局批准 1994年 8月 1日起实施

GB 13000 的主要特点

bull 世界各语言文种字符统一编码避免冲突便于国际交流

bull 编码空间宽阔连续每个图形字符的编码唯一(一字一码)不再存在兼容性问题

bull 按文种而不是按语言编码避免重复和浪费(如中日韩汉字的统一编码 CJK )

bull 与 GB 2312 和 GBK 不兼容

体系结构bull UCS 的体系结构是基于所谓ldquo多八位rdquo的而ldquo八位rdquo就是一个字节ldquo多八位rdquo就是多个字节

bull UCS采用 4 个字节来表征组面行位的四维空间bull 整个 UCS空间包含 128 个组( 0x00组 ~0x7F组)每组有 256 个平面( 0x00 平面 ~0xFF 平面)每个平面有 256 行每行又由 256 个字位构成

bull UCS共有( 128 times 256 = ) 32 768 个平面每个平面有( 256 times 256 = ) 65 536 个字位每个字位对应于一个字符的编码

bull 目前的编码只限于 00组已经定义的平面有 00组的00 平面mdashmdash称之为基本多文种平面 BMP ( Basic Multilingual Plane ) 及若干辅助平面

UCS 的全部编码空间

每个平面256times256 个

字位

00组 00 平面

00组 FF 平面

01组 00 平面

7F组 00 平面00

01组

7F组

UCS 的 00组

BMPbull BMP = Basic Multilingual Plane 基本多文种平面bull BMP 用作双八位编码字符集称之为 UCS-2 它被

分成四个区ndash A- 区(字位 0x0000~0x4DFF 有 19 903 个字位)用于

字母文字音节文字以及各种符号ndash I- 区(字位 0x4E00~0x9FFF 共 20 992 个字位)用于中日韩统一汉字( CJK )

ndash O- 区(字位 0xA000~0xDFFF 共 16 384 个字位)保留未来标准化用

ndash R- 区(字位 0xE000~0xFFFD 共 8 190 个字位)为 BMP 的限制使用区包括专用字符变形显现形式及兼容字符

BMP总貌

A-区

00~33 拼音文字(见下页)

34~3D 朝鲜文

3E~44 朝鲜文补充 -A

45~4D 朝鲜文补充 -B

I-区 4E~9F CJK统一汉字O-区 A0~DF

R-区

E0~F8 专用区

F9~FA CJK兼容汉字FB 拼音文字变形显现形式

FC~FD 阿拉伯文变形显现形式 -A

FE半形组合用标志

CJK兼容形式

小写变体

阿拉伯文变形显现形式 -B

FF 半形及全形字符 特殊字符

BMP 的0x00~0x33

行字母文字区

00 基本拉丁文 拉丁文-1补充

01 拉丁文扩充-A 拉丁文扩充-B

02 拉丁文扩充-B 国际音标扩充 进格修饰字符

03 组合用发音符 基本希腊文 希腊符号及哥普特文

04 西里尔文

05 美亚尼亚文 希伯来文(基本和扩充)

06 基本阿拉伯文 阿拉伯文扩充

07

08

09 梵文 孟加拉文

0A 锡克教文 古吉拉特文

0B 奥利雅文 泰米尔文

0C 泰卢固文 卡纳达文

0D 德拉维族文

0E 泰文 老挝文

0F

10 格鲁吉亚文

11 朝鲜文字母

12~1D

1E 拉丁文扩充增补

1F 希腊文扩充

20 广义标点 上下标 货币符号 符号组合用区分标志

21 类似字母的符号 数字形式 箭头

22 数学运算符

23 零杂技术用符号

24 控制图符 光学识别符 带括号的字母数字

25 制表符 方块元素 几何图形符

26 零杂符号

27 示意符等

28~2F

30 CJK符号和标点 平假名 片假名

31 注音 朝鲜文兼容字母 CJK零杂字符

32 带括号的CJK字母及月份

33 CJK兼容字符

留作将来标准化用

非图形字符

表示形式bull GB 13000提供了字符编码表示的两种替代使用的形式

ndash 双八位 BMP 形式( UCS-2 )mdashmdash允许使用 BMP 中的字符且每个字符用两个字节表示

ndash 肆八位正则形式( UCS-4 )mdashmdash允许使用 GB 13000 中的全部字符且每个字符用四个字节表示

bull 除了 UCS-24外还有另外两种变形的表示形式ndash UTF-8 (单字节 ~ 多字节)ndash UTF-16 (双字节和 4 字节与 UCS-2 等价)ndash 目前在工业上的实现均为 UTF-16 ( UCS-2 )和 UTF-8ndash UTF = Unicode UCS Transformation Format 统一码 UC

S转换格式bull 关于统一码我们会在下一小节详细介绍

7 GBK 与 GB 18030bull 由于 GB 13000 标准与 GB 2312 标准的字符编码不兼容作为过渡在国家信息技术标准化委员会的主持下制定了与 GB 2312兼容的《汉字内码扩展规范( GBK )》( K 为扩展的ldquo扩rdquo字的拼音首字母)并于 1995年 12月 15日由原国家技术监督局标准司联合原电子工业部科技与质量监督司作为指导性技术规范发布实施

bull 2000年 GBK又被国家标准 GB 18030-2000《信息技术 信息交换用汉字编码字符集 基本集的扩充》所代替该标准收汉字 2万 7千个

bull 与 GB 2312 一样 GB 18030 也为中国的强制性国家标准微软公司的 Windows XPVista78 中文版与苹果公司的 Mac OS X 和 iOS 谷歌公司的 Android (安卓)等操作系统已经全面支持 GBK

GB 18030 的码位范围分布

字节数 码位空间 码位数目

单字节 0x00~0x7F 128

双字节第 1字节 第 2字节

23 9400x81~0xFE

0x40~0x7E 0x80~0xFE

四字节第 1字节 第 2字节 第 3字节 第 4字节

1 587 6000x81~0xFE 0x30~0x39 0x81~0xFE 0x30~0x39

GB 18030的

总体结构图

收录字符bull 单字节部分mdashmdash收录了GBT 11383 的 0x00~0x7F 全部 128 个字符(似 ASCI

I )bull 双字节部分mdashmdash收录内容如下 (21 003 个汉字和 884 个符号共 21 887 个字符 )

ndash GB 130001-93 的全部 CJK 统一汉字字符 20 902 个( GB 2312 的编码汉字在双字节 2 区其他 CJK 统一汉字在双字节 34 区)

ndash GB 130001-93 的 CJK兼容区挑选出来的 21 个汉字ldquo郎凉秊helliphellip﨨﨩rdquo( 0xFD9C~0xFDA0 和 0xFE40~0xFE4F )

ndash GB 130001-93 中收录而 GB 2312未收录的台湾地区使用的图形字符 139 个ldquoˊˋ˙helliphelliprdquo( 0xA840~0xA895 和 0xA940~0XA988 )

ndash GB 130001-93收录的其他字符 31 ( 13)个(在双字节 5 区)ndash GB 2312-80 中的非汉字字符 682 个( 0xA1A1~0xA9EF )ndash GB 12345-90 的竖排标点符号 19 ( 29)个ldquo︵︶︹helliphellip︳︴rdquo( 0xA6D9~0xA6

F5 )ndash GB 2312-80未收录的 10 个小写罗马数字ldquoⅰⅱⅲhelliphellipⅸⅹrdquo( 0xA2A1~ 0xA2A

A )ndash GB 2312-80未收录的带音调的汉语拼音字母 5 ( 4)个ldquo ńňǹrdquo 以及 ɑ 和 ɡ ( 0

xA8BB~0xA8C0 )ndash 汉字数字零ldquo〇rdquo (0xA996) 和欧元符ldquoeurordquo (0xA2E3)ndash 表意文字描述符 13 个ldquohelliphelliprdquo( 0xA989~0xA995 )ndash 对 GB 130001-93增补的汉字和部首 构件 80 个ldquohelliphellip䶮rdquo( 0xFE50~ 0x

FEA0 )bull 四字节部分mdashmdash收录了上述双字节字符之外的包括 CJK 统一汉字扩充 A 在内

的 GB 130001-93 中的全部字符

GB 18030双字节部分的码位安排

类别 区名 码位范围 码位数 字符数 内容

符号区双字节 1区 A1A1~A9FE 846 718

GB 2312非汉字字符等

双字节 5区 A840~A9A0 192 166 台湾图符等

汉字区双字节 2区 B0A1~F7FE 6768 6763 GB 2312汉字双字节 3区 8140~A0FE 6080 6080 CJK统一汉字双字节 4区 AA40~FEA0 8160 8160 CJK统一汉字等

用户自定义区双字节用户区 1 AAA1~AFFE 564

用户自定义字符双字节用户区 2 F8A1~FEFE 658

双字节用户区 3 A140~A7A0 672

GB 18030双字节部分的编码空间结构图 尾字节

0x40larr――rarr0x7E 0x80larr――rarr0xA0 0xA1larr――――――――――――rarr0xFE

0x81 uarr darr

0xA0

0xA1 uarr darr

0xA7

0xA8 0xA9

首字节

0xAA uarr | | | | | | | | | | darr

0xFE

双字节 3区

汉字区6 080个码位

双字节用户区 3

用户自定义区672个码位

双字节 5区 图形符号区192个码位

双字节 4区

汉字区8 160个码位

双字节 1区

图形符号区564个码位

双字节 2区

汉字区6 768个码位

双字节用户区 1 用户自定义区564个码位

双字节用户区 2 用户自定义区658个码位

223 国际通用字符编码

bull Unicode (统一码)是由多语言软件制造商组成的统一码协会( httpwwwUnicodeorg)所制定一种国际字符的编码标准

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull 本节主要介绍这两种关系密切的主流国际字符编码标准的来历编码方案各自特点与相互关系

1 Unicode 统一码bull 发展历史

ndash 1987年施乐( Xerox )公司的 Joe Becker 与 Lee Collins 和苹果( Apple )公司的 Mark Davis 等人开始讨论统一编码 1987年 12月 Joe Becker造词 Unicode (统一码)含义为ldquo unique universal and uniform character encodingrdquo (单一通用统一的字符编码) 1989年 2月开始定期召开统一码会议 1989年 9月公布 Unicode草案

ndash 1991年 1月 3 日由 Xerox Apple Sun IBM Aldis Microsoft 等公司出资在美国加州成立了统一码协会( Unicode Consortium )并由协会设立非盈利性的统一码公司( Unicode Inc )后来 HP Adobe Borland Digital Lotus Novell 等公司也纷纷加入 1991年 1月成立统一码技术委员会 UTC 并制定了其规程

ndash 1991年 2月在 Ed Hart 的推动下进行了ldquo统一码对 10464 国际标准草案 1rdquo 的对话Unicode 与 ISOIEC 10646开始走向融合

ndash 1991年 8月发布 Unicode 标准 10版的第 1卷(体系结构非表意字符) 1992年6月发表 Unicode 10版的第 2卷(表意字符) 1993年 6月发布 Unicode 11版与 1993年 5月公布的 ISOIEC 10646-11993 实现了合并

ndash 1996年 7月发布 Unicode 20版ndash 1999年 9月发布 Unicode 30版ndash 2003年 4月发布 Unicode 40版(对应于 ISOIEC 106462003 ) 2004年 3月 31日发布 Unicode 401版 2005年 3月 31日发布 Unicode 410版

ndash 2006年 7月 14日发布 Unicode 50版 2008年 4月 4日发布 Unicode 51版 2009年 12月 22日发布 Unicode 52版

ndash 2010年 10月发布 Unicode 60版 2012年 1月发布 Unicode 61版(对应于 ISOIEC 106462012 ) 2012年 9月推出 Unicode 62版 2013年 9月推出 Unicode 63版

ndash 2014年 6月 16日发布 Unicode 70版 ndash 2015年 6月 17日发布 Unicode 80版

字符集bull Unicode 字符集的空间分成双字节的基本多语言平面 (Basic Multilingual Pla

ne BMP) 和 4 字节的辅助多语言平面 (Supplementary Multilingual Plane SMP) 两种

bull BMPndash Unicode 的基本平面或基本多语言平面 BMP 对应于 ISOIEC 10646-1 的第 00组的 00 平面( BMP )即 Unicode 与 ISOIEC 10646 的 BMP 中的字符编码完全一致

bull SMPndash 鉴于 Unicode 原有的 16位元空间不足以应用从 Unicode 31版本开始设立了 16 个辅助平面使 Unicode 的可使用空间由六万多字增至约一百万字

ndash 原有的 Unicode双字节空间称为基本平面或基本多语言平面 BMP 辅助多语言平面 SMP 字符要用 4 字节来储存

ndash 第一辅助平面摆放拼音文字(主要为现时已不再使用的文字)及符号范围在 U+10000 - U+1FFFD

ndash 第二辅助平面又称为表意文字补充平面 (Supplementary Ideographic Plane 简称 SIP) 现时摆放ldquo中日韩统汉字扩展 B 区rdquo共 43253 个汉字范围在 U+20000 - U+2FFFD

ndash 第三至十三辅助平面尚未使用ndash 第十四辅助平面又称为特殊用途补充平面 (Supplementary Special-purpose Pl

ane 简称 SSP) 摆放 Language tags 和 Variation Selectors 它们都是控制字符范围在 U+E0000 - U+E01FF

ndash 第十五至十六辅助平面都是私人使用区它们的范围是 U+F0000 - U+FFFFD 及 U+100000 - U+1000FD

bull Unicode 字符集的具体编码方式参加第 4小节ldquo 4 UTFrdquo

2 ISOIEC 10646

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull ISOIEC 10646 标准由 ISO 与 IEC 联合成立的 ISOIEC JTC1SC2WG2 制定ndash JTC 1 ( Joint Technical Committee 1 on Information

technology ISOIEC信息技术联合技术委员会 1 )负责信息技术方面标准的制定工作

ndash SC 2 ( SubCommittee 2 on Coded character sets 编码字符集分会 2 )下的 WG 2 ( Working Group 2 on Universal coded character set 通用编码字符集工作组 2 )负责制定国际通用字符编码标准即后来公布的 ISOIEC 10646

发展历史bull 1984年 ISO 的一些会员国发起制定新的国际字符编码标准同年 4月 ISO

与 IEC 联合成立 ISOIEC JTC1SC2WG2 1987年 3月制定出编码架构1992年 6月投票通过第二版国际标准草案

bull 1993年 5月推出 10646 标准时将内容分成两个部分标准首先发布的是其中的第 1 个部分(体系结构与基本多文种平面)的第 1版( Edition 1 ) ISOIEC 10646-11993 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane(信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

bull 2000年 3月推出 10646 标准第一个部分的第 2版( Edition 2 ) ISOIEC 10646-12000 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane

bull 2001年 10月推出 10646 标准第 2版的第二个部分(辅助平面)的第 1版( Edition 1 ) ISOIEC 10646-22001 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 2 Supplementary Planes

bull 2003年 10月推出的 10646新标准(第 1版 Edition 1 )将老标准中的两个部分标准合并成了一个单一的标准 ISOIEC 106462003 Information technology -- Universal Multiple- Octet Coded Character Set (UCS) 后来又于 2010年 2012年和 2014年分别推出了 ISOIEC 106462010 (第 2版)ISOIEC 106462012 (第 3版)和 ISOIEC 106462014 (第 4版)

UCS 通用字符集bull 通用字符集( Universal Character Set UCS )是

ISOIEC 10646 标准所定义的字符编码方式采用 4字节编码又称为 Universal Multiple-Octet Coded Character Set (通用多八位编码字符集)

bull 通用字符集是所有包括了其他字符集它保证了与其他字符集的双向兼容即如果你将任何文本字符串翻译到 UCS 格式然后再翻译回原编码你不会丢失任何信息

bull UCS 包含了已知语言的所有字符除了拉丁语希腊语斯拉夫语希伯来语阿拉伯语亚美尼亚语格鲁吉亚语还包括中文日文韩文这样的象形文字 UCS 还包括大量的图形印刷数学科学符号

名字与组合字符bull UCS 不仅给每个字符分配一个代码而且赋予了

一个正式的名字表示一个 UCS 或 Unicode值的十六进制数通常在前面加上ldquo U+rdquo 例如ldquo U+0041rdquo代表字符ldquo Ardquo

bull UCS里有些编码点分配给了组合字符组合字符机制允许在任何字符后加上重音符或其他指示标记 这在科学符号中特别有用 比如数学方程式和国际音标字母 可能会需要在一个基本字符后组合上一个或多个指示标记

实现级别bull 并不是所有的系统都需要支持像组合字符这样的的先进

机制因此 ISO 10646 指定了如下三种实现级别ndash 级别 1不支持组合字符和韩语 Hangul Jamo 字符 ( 一种特

别的 更加复杂的韩国文的编码 使用两个或三个子字符来编码一个韩文音节 )

ndash 级别 2类似于级别 1 但在某些文字中允许一列固定的组合字符 (例如 希伯来文 阿拉伯文 Devangari 孟加拉语 果鲁穆奇语 Gujarati Oriya 泰米尔语 Telugo 印 埃纳德语 Malayalam 泰国语和老挝语 ) 因为如果没有最起码的几个组合字符 UCS就不能完整地表达这些语言

ndash 级别 3支持所有的 UCS 字符如可以在任意一个字符上加上一个箭头或 和一个 tilde(颚化符号即字母上面的~ )

编码方式bull UCS 有如下两种编码方式

ndash UCS-2与 Unicode 的 2 字节编码基本一样ndash UCS-4 4 字节编码目前是在 UCS-2 前加

上 2 个全零的字节bull UCS 还有 UTF 编码方式参见下面第 4小节ldquo 4 UTFrdquo

3 Unicode 与 ISOIEC 10646bull 关系

ndash 历史上存在两个独立的尝试创立单一字符集的组织即国际标准化组织( ISO )和多语言软件制造商组成的统一码协会组织( Unicodeorg )前者开发的 ISO 10646项目后者开发的 Unicode项目因此最初制定了不同的标准

ndash 1991年前后两个项目的参与者都认识到世界不需要两个不兼容的字符集于是它们开始合并双方的工作成果并为创立一个单一编码表而协同工作

ndash 从 Unicode20开始 Unicode采用了与 ISO 10646-1相同的字库和字码 ISO 也承诺 ISO10646 将不会替超出 U+10FFFF 的 UCS-4 编码赋值以使得两者保持一致

ndash 两个项目仍都存在并独立地公布各自的标准但 Unicode协会和 ISOIEC JTC1SC2 都同意保持两者标准的码表兼容并紧密地共同调整任何未来的扩展

异同bull Unicode协会公布的 Unicode 标准包含了 ISO 10646-1 实现级别

3 的基本多文种平面在两个标准里所有的字符都在相同的位置并且有相同的名字

bull ISO 10646 标准就像 ISO 8859 标准一样只不过是一个简单的字符集表它定义了一些编码的别名指定了一些与标准有关的术语并包括了规范说明指定了怎样使用 UCS连接其他 ISO 标准的实现等

bull Unicode 标准额外定义了许多与字符有关的语义符号学并详细说明了绘制某些语言(如阿拉伯语)表达形式的算法处理双向文字(比如拉丁文和希伯来文的混合文字)的算法排序与字符串比较所需的算法等等

bull 考虑到 Unicode 标准有一个易记的名字既便宜又包括更多的辅助信息因而它使用得更广泛然而

bull 一般认为用于打印 ISO 10646-1 标准的字体在某些方面的质量要高于用于打印 Unicode 20 的专业字体设计者总是被建议说要两个标准都实现但一些提供的样例字形有显著的区别 ISO 10646-1 标准同样使用四种不同的风格变体来显示表意文字如中文日文和韩文 (CJK) 而 Unicode 20 的表里只有中文的变体

4 UTFbull Unicode 和 UCS 都是一个字符集可以看作为内码bull UTF ( UnicodeUCS Transformation Format 统一码

通用字符集转换格式)是一种编码方式它的出现是因为 Unicode 和 UCS 不适宜在某些场合直接传输和处理

bull UCS 和 Unicode 只是分配整数给字符的编码表现在存在好几种将一串字符表示为一串字节的方法(如高或低位字节在前)

bull 最显而易见的两种方法是将 UCS 和 Unicode 文本存储为 2 个 或 4 个字节序列的串这两种方法的正式名称分别为 UCS-2 和 UCS-4

bull 常用的 UTF具体编码方式有 UTF-8 UTF-16 和 UTF-32

UTF-8

bull UTF-8 是 UTF 的一种具体编码方式在 ISO 10646-1 的附录 R 和 IETF 的 RFC 2279 里定义

bull 由于要使文档中的文字与 ASCII兼容故 UTF-8 选择了使用可变长度字节来储存 Unicode 和 UCS 例如ndash ASCII 字母继续使用 1 字节储存ndash 重音文字希腊字母或西里尔字母等使用 2 字节来储存ndash 常用的汉字就要使用 3 字节ndash 辅助平面字符则使用 4 字节ndash 即 ASCII 不作变换其他字符做变长编码每个字符 1~4 字节

bull UTF-8 通常作为外码bull 在 UTF-8 文件的开首很多时都放置一个 U+FEFF 字符

(UTF-8 以 EF BB BF 代表 ) 以显示这个文字档案是以UTF-8 编码

UTF-8 的优点bull 与 CPU 字节顺序无关可以在不同平台之间交流

bull 容错能力高任何一个字节损坏后最多只会导致一个编码码位损失不会链锁错误 ( 如 GB 码错一个字节就会整行乱码 )

UTF-8 的缺点bull UTF-8 使用可变长度字节储存使计算机程序设计变得复杂 (故此在计算机程序或操作系统内部多采用 UCS-2 编码 )

bull 在旧式的中文日文及朝鲜文编码之中每字符都使用 2 字节储存而 UTF-8 须使用 3 字节 (采用 UTF-16 编码则可只使用 2字节储存 )

bull 泰语以往使用的 ISO 8859-11 每字符只使用 1 字节储存而 UTF-8 须使用 3 字节

UTF-8储存的多字节串字符bull U-00000000 - U-0000007F 0xxxxxxx bull U-00000080 - U-000007FF 110xxxxx 10xxxxxx

bull U-00000800 - U-0000FFFF 1110xxxx 10xxxxxx

10xxxxxx bull U-00010000 - U-001FFFFF 11110xxx 10xxxxx

x 10xxxxxx 10xxxxxx bull 在多字节串中第一个字节的开头ldquo 1rdquo 的数目就

是整个串中字节的数目bull 每个使用 UTF-8储存的字符除了第一个字节外其余字节的头两个位元都是以 10 开始使文字处理器能够较快地找出每个字符的开始位置

UTF-16bull UTF-16 是 UTF 的另一种具体编码方式在 ISO 1064

6-1 的附录 Q 和 IETF 的 RFC 2781 里定义bull UTF-16 是变长码( 2 或 4 字节)大致相当于 20位编码值在 0 到 0x10FFFF 之间基本上就是 Unicode 编码的实现 UTF-16 与 CPU 字序有关但因为最省空间常作为网络传输的外码 UTF-16 是 Unicode 的完美编码

bull lt0x10000 的直接用其对应的 16位整数编码位于 0x10000 ~ 0x10FFFF 之间的用 0xD800~0xDBFF 的 16位整数后跟 0xDC00~0xDFFF 的 16位整数的 4 字节编码 gt 0x10FFFF 的不能用 UTF-16 表示

bull 在 Unicode 的 BMP 中定义的字符(无论是拉丁字母汉字或其他文字或符号)一律使用 2 字节存储而在辅助平面定义的字符则以两个 2 字节的值来存储

UTF-16 的特点bull UTF-16比起 UTF-8 的好处在于大部分字符都以固定长

度的 2 字节存储但 UTF-16却无法相容于 ASCII 编码bull UTF-16 有两种编码模式即大尾序( big Endian 高位字节在前)和小尾序( little Endian 高位字节在后)储存形式(一般來說以 Macintosh 制作和存储的文字使用大尾序格式以 Microsoft 或 Linux 制作和存储的文字使用小尾序格式)

bull 为了弄区分 UTF-16 文件的大小尾序在 UTF-16 文件的开头都会放置一个 U+FEFF 字符作为字节顺序标记 (UTF-16LE 以 FF FE代表 UTF-16BE 以 FE FF代表 ) 以显示该文档是以 UTF-16 编码的

UTF-32

bull UTF-32 仅使用了 Unicode范围 (0 到 0x10FFFF) 的 32位编码相当于 UCS-4 的子集

bull 由于 Unicode 和 ISOIEC 10646 的编码和结构与前面讲过的 GB 13000 类似或等价这里就不再做详细的介绍

5支持bull 现在 UnicodeUCS 已经获得了十分广泛的支

持ndash网络与浏览器(如 HTML 4050 XML 与 IE

Safari Netscape Firefox Chrome Opera Edge 等)

ndash操作系统(如 Windows NT2000XPVista7810 Mac OS X iOS Android和 Linux )

ndash 编程语言新版本(如 CC++JavaObjective-CC Swift 等)

Unicode 代码的浏览器显示代码 字符标准名称 (英语 )

浏览器的显示

amp65 大写拉丁字母 A A

amp223 小写拉丁字母 Sharp S szlig

amp254 小写拉丁字母 Thorn thorn

amp916 大写希腊字母 Delta Δ

amp1049 大写斯拉夫字母 Short I Й

amp1511 希伯来字母 Qof ק

amp1605 阿拉伯字母 Meem م

amp3671 泰文数字 7 ๗amp4688 埃塞俄比亚音节文字 Qha ቐ

amp12354 日语平假名 A あamp12450 日语片假名 A アamp21494 简体汉字 叶 叶amp33865 繁体汉字 葉 葉amp50685 韩国音节文字 Yeob 엽

23 文字输出bull 文字输出是指将计算机内的字符编码通过计算机的输出设备(如显示器打印机喇叭)展现出所对应字符的图形或声音供人们阅读或聆听

bull 本节主要介绍文字图示输出的字形技术bull 文字声音输出属于语音合成只在本节的末尾作简单的介绍

231 字形技术bull 文字 = 图形bull 不论是象形文字中的单字还是拼音文字

中的字母都是用图形来表示的bull 在计算机里文字的表示 输出(显示和打

印)涉及ndash 字型ndash 字体ndash 字库

1字型bull 字型指构造和生成字形的方法一般可分为

ndash 点阵字 DOS 显卡 ROM 金山 科印特点似位图显示快占空间(字库大)放大后有马赛克效应

bull 显示字母 88 汉字 1616bull 打印 2424 4848 6464

ndash 矢量字单线条用于笔式绘图仪特点字库小算法简单难看

ndash 轮廓字用曲线描绘字的轮廓输出效果好所见即所得(WYSWYG) 可无级放大易实现空心 阴影 填充 变形等各种特效功能轮廓曲线一般采用样条曲线如 TrueType (Apple 1991 Mac OS Microsoft 1992 Windows 31)用的是二次 B 样条 Bezier曲线中文之星 RichWin采用的是三次 B 样条 Bezier曲线

字型种类

2字体bull 字体指字的形状风格如

ndash 汉字的

ndash 英文的

宋体楷体黑体仿宋

行楷隶书新魏幼圆

Times New Roman Arial Narrow Courier New

常用汉字字体bull 宋体mdashmdash宋体来自于北宋时雕版刻书所采用的欧体字(唐朝欧阳询体)宋体字的横顿拉捺挑钩别具特色间架平正疏密适中字体秀丽遒劲但笔画横细竖粗适合于刀刻不宜于手写现在宋体广泛用于印刷常来表现文档的正文

bull 仿宋体mdashmdash 1920年钱塘的丁辅之与丁善之等人将明代以后盛行的方廓形字体加以改造创造出长形和方形的聚珍仿宋后来演化为现在的仿宋体仿宋体比较接近于手写体为宋体和楷体的折中是采用的宋体的结构和楷体的笔法而成现常来表现打印文件以及文档的摘要和注释等

bull 黑体mdashmdash黑体是适应工艺美术的发展而出现的一种等线体是从日本引进的黑体的结构与宋体没有什么差别只是其笔画粗细一致健实粗壮主要用于文档的标题和重点及标语广告等方面

bull 楷体mdashmdash楷体源于楷书楷体的笔画圆浑笔调灵活结构端正美观但不宜于木板雕刻所以直到清末西洋的石板印刷术传入后才开始广泛用于印刷现代的楷体创造于 20世纪的二三十年代主要用于文档的正文(多用于中小学教材)也可用于工艺美术等方面

3字库bull 字库为一种文字的某一字体的所有字符的集合一般存放在一个磁盘文件中

bull 由于象形文字中单字的数量大(成千上万)而拼音文字中字母的数量小(不到一百个)所以字库的大小有很大的差别

bull 为了使文档界面丰富多彩常见的字处理软件都支持多种字体带有众多字库

4点阵字型的国家标准bull 我国已经公布了若干字体的点阵字型之国家标准

ndash GB 50071-19852001 信息技术 汉字编码字符集(基本集) 24 点阵字型

ndash GB 50072-19852001 信息技术 汉字编码字符集(辅助集) 24 点阵字型

ndash GB 5199-19862001 信息技术 汉字编码字符集(基本集) 16 点阵字型 宋体

ndash GB 6345-19862001 信息技术 汉字编码字符集(基本集) 32 点阵字型 宋体

ndash GB 12041-2001 信息技术 汉字编码字符集(基本集) 48点阵字型 宋体

ndash GB 17698-1999 信息技术 通用多八位编码字符集( I 区) 汉字 16 点阵字型

232 语音合成bull 文字的声音输出主要使用的是语音合成的技术bull 语音合成功能是ldquo文rarr语rdquo转换bull 文语转换 TTS (Text-To-Speech) 是将文本形式的信息转换成自然语音的一种技术其最终目标是使计算机输出清晰而又自然的声音

bull 英语的语音合成在上世纪 80年代就早已成熟而中文 汉语的合成现在也趋于成熟并有了广泛的应用(如汽车导航仪智能手机等)

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 3: 第一篇  媒体

第 2 章 文字

bull 21 文字输入键盘输入手写输入语音输入扫描输入

bull 22 字符编码西文编码中文编码国际编码

bull 23 文字输出字形技术语音合成

文字bull 文字是语言的记录可以分为拼音文字(如英

文)和象形文字(如中文)两大类各类文字都是用图形符号(如字母和汉字)来表示的

bull 在多媒体技术出现之前文字是人们书面交流的主要手段在多媒体技术得到广泛应用的今天文字也是最重要的媒体元素之一

bull 计算机对文字的处理包括文字的输入编码与输出

bull 本章依次介绍文字输入字符编码与文字输出重点放在汉字编码标准之上

21 文字输入bull 将文字录入进计算机的方法主要有键盘输

入手写输入语音输入和扫描识别输入bull 键盘输入是传统和主要的文字录入手段bull 随着计算机技术的发展方便和快速的手

写与语音输入成为解决文字输入瓶颈的有效途径

bull 扫描输入主要应用在印刷品的大量文字自动录入方面

211 键盘输入bull 计算机的通用键盘源自传统的打字机本身是

为英文字母的键入而设计的非常适合于拼音文字的字母输入而像汉字这样的象形文字用键盘输入则十分困难

bull 汉字的三个要素是形音义汉字的编码输入主要可以分为形码(如五笔字型)和音码(如全拼)两大类各种形码和音码输入法可以结合汉字的词义与语义特性进行词汇与整句等智能化的输入(如微软拼音输入法)

212 手写输入bull 随着各种手持设备(如平板电脑智能手

机)的不断出现与普遍使用联机手写文字的实时识别与输入方法已经得到越来越广泛的应用

bull 手写输入是指人用手指或(特制的)笔在图形板上书写机器进行实时的识别并将对应文字的编码输入

bull 汉字的联机手写输入是自动汉字识别中最简单的一种

特点

bull 机器识别的是笔画而不是整字bull 识别结果可以及时反馈所以对识别率要

求不高bull 输入方便不需对输入人员进行培训bull 适合于边想边写bull 可利用图形板方便地进行编辑和修改

技术bull 人写字时手的抖动书写速度的变化图形板的

量化和感应噪声等会对识别产生干扰因此必须进行必要的平滑和去噪预处理

bull 识别时还需进行字符分割以区分哪些笔画属于同一汉字

bull 手写输入在技术涉及图像识别模式匹配人工智能语言文字书写方式与习惯等方面的知识和方法

bull 目前的手写识别方法和技术还有待于进一步改进和完善以提高识别率减少对输入的限制降低输入设备和识别软件的成本加强软件的自学习功能

213 语音输入bull 语音输入是指利用语音内容的识别技术

将人的话音实时转换为对应文字编码并录入计算机

bull 语音输入的核心技术是语音识别技术bull 语音识别技术现在正在发展过程中还

有待于进一步完善

语音识别技术bull 早期的语音识别技术一直很落后到上世纪 70年代中采

用线性预测编码 LPC 和同态信号处理 (homomorphic signal process) 方法技术有了长足的进步但效果不理想到了上世纪 80年代矢量量化 (VQ Vector Quantization) 和隐马尔科夫模型 (HMM Hidden Markov Model) 的成功使用使语音识别在上世纪 90年代达到了商用化程度不过仍然存在问题识别率一直难以进一步提高又进入了相对低潮的相持阶段2011年 10月 14日苹果公司推出的 iPhone 4S 手机支持智能语音指令输入虽然还存在不少问题但是却引发了业界对语音输入研究和应用的新热潮

bull 语音输入的字词识别涉及词库声母分类规则库声母与韵母结合规则库声调知识库这些统称为声学基元模型库句子识别还涉及语义语法句法语用知识库这些统称为语言模型库句子理解则涉及常识库(难)

语音识别的过程图语音输入

darr数据采集

darr波形自动分析

darr预处理 参数特征提取

分帧后的语音特征矢量集合rarrdarr 声学模型 时间对准larr声学基元模型库

darr 语言模型库rarr 组句分析 larr统计信息与规则

语句候选rarrdarr识别语句输出

语音识别系统分类bull 按可识别词汇量可分为

ndash 小词汇量语音识别系统 (lt100)ndash 中词汇量语音识别系统 (100~1000)ndash 大词汇量语音识别系统 (gt1000)

bull 按语音输入方式可分为ndash 孤立词语音识别系统(简单)ndash 连接词语音识别系统(较难)ndash 连续语音语音识别系统(难)

bull 按发言人类型可分为ndash 特定人( 1 人)ndash 限定人( n 人)ndash 非特定人(任意人)

语音识别的目标是开发大词汇量非特定人的连续语音识别系统

214 扫描输入bull 扫描输入是指将图书期刊打印材料和印刷

品中的印刷体文字先通过扫描仪变成计算机中的数字图像然后再利用文字识别软件 OCR 自动转换成对应得文字编码并录入计算机

bull 目前我国研制的多种 OCR 软件的识别率已经达到 95 以上不过受印刷品质量的影响比较大

bull OCR = Optical Character Recognition Reader 光学字符识别 阅读器

bull 计算机识别印刷汉字的核心问题是抓住汉字的字形特征它主要体现在笔画和关键点上

bull 另一个核心问题是版面的分析与理解包括从图文混排版面中自动排除图形部分自动区分横排和竖排自动识别标题和正文对分栏文本实现自动对接等

bull 扫描输入方法除了用于印刷体文字的识别和输入外也可以用于手写体印刷文字的输入其文字识别的方法与印刷体文字类似也与手写实时输入的方法相关不过失去了笔顺信息属于整字识别类型

22 字符编码bull 字符编码包括西文编码中文编码和国际通

用字符编码本节的重点放在常用的编码标准上

bull 221 西文编码( ASCII 等)bull 222 中文编码( GB 2312 GB 13000

GBKGB 18030 )bull 223 国际通用字符编码( Unicode IS

OIEC 10646 )

221 西文编码bull 西文编码主要介绍 ASCII 字符集然后简

单介绍 IBM公司的 EBCDIC 和两种扩展 ASCII 显示字符表

bull 1 ASCII

bull 2 EBCDIC

bull 3扩展 ASCII 显示字符

1 ASCII

bull ASCII ( American Standard Code for Information Interchange 美国信息交换标准码)是 ANSI于 1963年提出 1968年确定的一种英文字符编码标准( ANSI X34-1986 )广泛应用于计算机网络和信息产业

bull ANSI = American National Standards Institute 美国国家标准协会

bull ASCII采用 7位二进制数的(共计 128 个)代码来表示字符(包括图示符和控制符)加上奇偶校验位(或最高位置 0 )则每个字符由 8位(一个字节)组成

ASCII 字符集

0 1 2 3 4 5 6 7

0 NUL DLE SP 0 P ` p

1 SOH DC1 1 A Q a q

2 STX DC2 ldquo 2 B R b r

3 ETX DC3 3 C S c s

4 EOT DC4 $ 4 D T d t

5 ENQ NAK 5 E U e u

6 ACK SYN amp 6 F V f v

7 BEL ETB lsquo 7 G W g w

8 BS CAN ( 8 H X h x

9 HT EM ) 9 I Y i y

A LF SUB J Z j z

B VT ESC + K [ k

C FF FS lt L l |

D CR GS - = M ] m

E SO RS gt N ^ n ~

F SI US O _ o DEL

bull ASCII 字符集以 32 个字符为一组bull 第一组( 0x00~0x1F )为控制符

(非打印符)用于数据处理 通信系统及其相应设备中的信息交换

bull 后面的除了第一个字符( SP空格符 0x20 )和最后一个字符( DEL删除符 0x7F )外全都是可打印(显示)的图示符包括ndash 第二组( 0x20 ~0x6F )的数字空格

和常用标点符号ndash 第三组( 0x40~0x5F )的大写拉丁字

母(即英文字母)与少数标点符号ndash 第四组( 0x60~0x7F )的小写拉丁字

母与少数标点符号

ASCII 的国际标准bull 1972年美国的国家标准 ASCII 与其若干拉丁语系国家的变体一起成为国际标准 ISO 6461972 ( Information processing -- ISO 7-bit coded character set for information interchange 信息处理mdashmdash ISO 用于信息交换的七位编码字符集)

bull 这些变体主要是将 ASCII 字符集中不常用的符号ldquo $ [ ] ^ ` | ~rdquo替换为他们各自语言的重音符号

bull 1987年 ISO 646 中的 ASCII部分成为 646 的国际参考版( IRV = International Reference Version ) ISO 646IRV1987 但是其中的美元符 $被替换为国际通用货币符 curren

bull 1991年推出的修订版 ISOIEC 646IRV1991 还原成原始的美国 ASCII 所以又被称为 ISO 646-US 或 US-ASCII

替代标准bull 由于 ISO 646 中各国的变体存在明显的兼容和统一问题现在已经作废

bull 有关编码已经被新的国际标准 ISOIEC 8859-1~16 19871998 ( Information processingtechnology -- 8-bit single-byte coded graphic character sets 信息处理 技术mdashmdash 8位单字节编码的图形字符集)所替代

bull 后来 ISO 646 与 ISOIEC 8859 标准又都被纳入 ISOIEC 1064619932003 ( Information technology -- Universal Multiple-Octet Coded Character Set (UCS) 信息技术mdashmdash通用多八位编码字符集 (UCS) )标准之中

bull 其中的标准编号 ISO 10646 = ISO 646 + 10000

标准化组织bull ANSI = American National Standards Institute 美

国国家标准协会bull ISO = International Organization for Standardization

国际标准化组织是由 153 个国家的国家标准协会联合组成的一个非政府国际组织总部(中央秘书处)设在瑞士的日内瓦负责制定适应商业和广泛社会需要的各种国际标准网址为 httpwwwisoorg

bull IEC = International Electrotechnical Commission 国际电工技术委员会是一个成立于 1906年 6月的国际标准化权威组织属于联合国的甲级咨询机构负责制定关于电工电子各方面的标准有 42 个会员国总部也设在瑞士的日内瓦网址为httpwwwiecch我国于 1958年 8月参加

2 EBCDIC

bull 西文的字符编码方案除了通用的 ASCII外还有 IBM公司于 1960年代初提出的 EBCDIC ( Extended Binary-Coded Decimal Interchange Code扩充的二进制编码的十进制交换码)

bull EBCDIC 现在仍然(仅)在 IBM 的 OS390 与 TPF 以及富士通 - 西门子的 BS2000OSD 等大型机的操作系统中使用

bull EBCDIC 是一种八位编码其字符的编码方案与ASCII 的完全不同

EBCDIC 字符集 0 1 2 3 4 5 6 7 8 9 A B C D E F

0 NUL DLE DS SP amp - 0

1 SOH DC1 SOS a j ~ A J 1

2 STX DC2 FS SYN b k s B K S 2

3 ETX TM c l t C L T 3

4 PF RES BYP PN d m u D M U 4

5 HT NL LF RS e n v E N V 5

6 LC BS ETB UC f o w F O W 6

7 DEL IL ESC EOT g p x G P X 7

8 GE CAN h q y H Q Y 8

9 RLF EM ` i r z I R Z 9

A SMM CC SM cent | |

B VT CU1 CU2 CU3 $

C FF IFS DC4 gt

D CR IGS ENQ NAK ( ) _ lsquo

E SO IRS ACK + lt =

F SI IUS BEL SUB | ldquo EO

3扩展 ASCII 显示字符bull ( 1 ) IBM PC

ndash IBM PC 的扩展 ASCII 显示字符由 IBM公司为其 PC 机制定可以由原始的 IBM PC 显示器在 DOS状态下显示

bull ( 2 ) Microsoft Windows ndash Microsoft Windows 的扩展 ASCII 显示字符由

微软公司为其Windows操作系统制定可以在Windows环境的西文状态下被显示

IBM PC 的扩展 ASCII 显示字符表

Microsoft Windows 的扩展 ASCII 显示字符表

222 中文编码bull 1 GB 1988 与 GB 2311

bull 2 GB 2312

bull 3汉字编码的辅助集bull 4 Big5

bull 5少数民族文字编码bull 6 GB 13000

bull 7 GBK 与 GB 18030

汉字编码bull 为了计算机处理汉字必须先对汉字进行编码由于汉

字数量大(《康熙字典》收字 47 035 个《汉语大字典》收字 54 678 个据统计在形成楷体后出现的汉字约有 9万个左右)显然不能像 ASCII那样用 7位或单字节来进行编码至少需要两个字节(最多可表示 6万5千多个字符)

bull 1980年我国制定了著名的 GB 2312-80双字节汉字编码标准(其中 GB 为ldquo国标rdquo这两个汉字的拼音首字母)收汉字 6 763 个

bull 1993年底又推出了等同于国际通用字符编码标准 ISOIEC 106461-1993 的国家标准 GB 130001-93 收汉字 20 902 个

bull 由于 GB 13000 与 GB 2312 的编码不兼容作为过渡2000年又公布了 GB 18030-2000 ( GBK )收汉字2万 7千个

1 GB 1988 与 GB 2311

bull 为了能够同时表示和处理汉字和英文实现中外文混排汉字编码必须兼容通用的 ASCII 编码因此1980年我国制定了与国际标准 ISO 6461972 (即ASCII )对应的国家标准 GB 1988-80《信息处理交换用的七位编码字符集》

bull 汉字成千上万不可能像 ASCII 一样只用单字节的七位来表示必须扩展到八位和多字节但是不能随意扩充而应该符合国际规范因此我国于 1980年又制定了与七位代码扩充到八位编码的国际标准 ISO 2022兼容的国家标准 GB 2311-80《信息处理交换用七位编码字符集的扩充办法》

GB 1988-80 ( ASCII )的代码结构图

行 0 1 2 3 4 5 6 7

0 SP

1 helliphellip

15

16

32个

控制符

94个

图形字符

DEL

GB 2311-80 的八位编码结构图列

行 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0 SP 100

1

helliphellip

14

15

C0

32个

控制符

GL

94或 96个

图形字符

DEL

C1

32个

控制符

GR

94或 96个

图形字符

1515

2 GB 2312

bull GB 2312-80《信息交换用汉字编码字符集 middot基本集》是我国制定的一个使用最广泛的汉字编码的强制性国家标准由原第四机械工业部的华北计算机研究所(后改名为电子工业部第十五研究所)起草1980年批准 1981年 5月 1日起实施

bull GB 2312-80 是在已有的国家标准 GB 1988-80(对应于 ISO 646 )和 GB 2311-80 (对应于 ISO 2022 )的基础上制定的采用与 ISO 2022兼容的GB 2311 之 7位到八位的代码扩充办法用双字节编码表示汉字与 ASCII兼容

收录的字符bull GB 2312 对应的是汉字的基本集共收汉字 6 763 个

可达到 9999 的使用频率因此除了极少数生僻的人名地名和古文外 GB 2312 中的汉字已经能基本满足平时的使用了

bull 除了汉字外 GB 2312 还收录了 682 个非汉字图形符号包括 202 个一般符号(含间隔符标点运算符和制表符) 60 个序号符 22 个数字符 52 个英文字母 169 个日文假名 48 个希腊字母 66 个俄文字母 26 个汉语拼音符号和 37 个汉语注音字母

bull 所以在 GB 2312-80 标准中共收录了( 6 763 汉字 + 682 非汉字图符 = ) 7 445 图形字符

两级汉字bull GB 2312 将其收录的六千多个汉字分成两个级别bull 一级汉字有 3 755 个都为使用频率高的常用汉

字为便于检索像字典那样将这些汉字按拼音字母顺序排列(同音字再按笔顺的横竖撇捺点折序排列)

bull 二级汉字有 3 008 个大部分较生僻不易掌握读音所以按部首顺序排列(同部首的字按笔画数排列同笔画数的字再按笔顺排列)

编码方案bull GB 2312 对所有图形字符(包括汉字和非汉字图符)都采用两个字节表示每个字节的低七位用于编码最高位全为 1 这样可以兼容 ASCII 编码(字节的最高位全为 0 )

bull 虽然在一个字节中最高位为 1 的符号位置有 128 个但从前面 GB 2311 的分析可知为了与 ASCII 的代码结构兼容保留了( 32 + 2 = ) 34 个控制符位置最后只有( 128 ndash 34 = ) 94 个符号位可供图形字符编码使用

bull 图形字符在代码表中的位置用区位码表示将码表分成94 个区对应于编码的第一个字节取值 0x21~0x7E 每个区又分成 94 个位对应于编码的第二个字节取值 0x21~0x7E (参见表 2-6 )

bull 例如ldquo中山大学rdquo的编码为中 (0xD6D0) 山 (0xC9BD) 大 (0xB4F3) 学 (0xD1A7)

GB 2312-80 字符集结构 20 21 22 helliphellip 7D 7E 7F

位号

区号

1 2 helliphellip 93 94

20

21~29 1~9 非汉字图符(682个)

2A~2F 10~15 空白区

30~57 16~55 一级汉字(3 755个)

58~77 56~87 二级汉字(3 008个)

78~7E 88~94 空白区

7F

第 1 区的部分非汉字图符

1区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 middot ˉ ˇ uml 々 mdash ~ hellip lsquo rsquo ldquo

17~32 rdquo 〔 〕 〈 〉 《 》 「 」 『 』 〖 〗 【 】 plusmn

33~48 times divide ∶ and or sum prod cup cap isin ∷ radic perp ∥ ang

49~64 ⊙ int ∮ equiv ≌ asymp ∽ prop ne ltu gtu le ge infin ∵ there4

65~80 deg prime Prime $ curren ¢ £ permil sect

81~94 rarr larr uarr darr

第 16 区的部分一级汉字

16区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 啊 阿 埃 挨 哎 唉 哀 皑 癌 蔼 矮 艾 碍 爱 隘 鞍

17~32 氨 安 俺 按 暗 岸 胺 案 肮 昂 盎 凹 敖 熬 翱 袄

33~48 傲 奥 懊 澳 芭 捌 扒 叭 吧 笆 八 疤 巴 拔 跋 靶

49~64 把 耙 坝 霸 罢 爸 白 柏 百 摆 佰 败 拜 稗 斑 班

65~80 搬 扳 般 颁 板 版 扮 拌 伴 瓣 半 办 绊 邦 帮 梆

81~94 榜 膀 绑 棒 磅 蚌 镑 傍 谤 苞 胞 包 褒 剥

第 56 区的部分二级汉字

56区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 亍 丌 兀 丐 廿 卅 丕 亘 丞 鬲 孬 噩 丨 禺 丿 匕

17~32 乇 夭 爻 卮 氐 囟 胤 馗 毓 睾 鼗 丶 亟 鼐 乜 乩

33~48 亓 芈 孛 啬 嘏 仄 厍 厝 厣 厥 厮 靥 赝 匚 叵 匦

49~64 匮 匾 赜 卦 卣 刂 刈 刎 刭 刳 刿 剀 剌 剞 剡 剜

65~80 蒯 剽 劂 劁 劐 劓 冂 罔 亻 仃 仉 仂 仨 仡 仫 仞

81~94 伛 仳 伢 佤 仵 伥 伧 伉 伫 佞 佧 攸 佚 佝

3汉字编码的辅助集bull 除了GB 2312基本集的 6 763 个简体汉字外国家标

准还给出了汉字编码字符集的多个辅助集bull 第二 四辅助集分别增加了 7 237 7 039 个简体汉字bull 第一和三 五辅助集则分别是与基本集和第二 四辅助集所对应的繁体汉字字符集的国家标准

bull 基本集加上辅助集共有 21 039 个简体汉字和 21 142个繁体汉字

bull 繁体汉字之所以多一些是因为在第一辅助集中有时几个繁体字对应一个简体字因此比基本集多出 103 个汉字

bull 基本集和辅助集的代码页之间靠其编码字节的最高位来区分

编码字符的分页标志

双字节汉字编码的页面结构第二字节 列号

行号 0 middot middot middot 32 33 34 helliphellip 125 126 127 128middot middot 160 161 162 helliphellip 254 255 0 middot middot 32

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

33 34 middot middot middot 126

1 2 middot middot middot 94

第四五辅助集 (7 039个汉字)

127

(兼容ASCII)

128 middot middot 160

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

161 162 middot middot middot 254

1 2 middot middot middot 94

第二三辅助集 (7 237个汉字)

1 2 middot middot middot 94

基本集第一辅助集 (6 763 6 866个汉字) (682个非汉字图符)

第一字节

255

4 Big5

bull 除了中国大陆使用的简体汉字外在台湾香港澳门和海外华侨社区使用的是传统的繁体汉字

bull 简体汉字使用 GB (国标)系列编码标准bull 繁体汉字一般使用的是 Big5内码(大五码)即台湾的ldquo资讯工业策进会rdquo发布的《标准交换码 (Ⅲ码 )》收录汉字 13 053 个

bull Big5内码是 1984年由台湾财团法人资讯工业策进会与宏碁 (Acer) 神通 (MiTAC) 佳佳零壹 (Zero One) 大众 (FIC) 等五大软件公司联合推出故称为大五码

BIG5 的代码空间低位字节

00 hellip 3F 40 hellip 7E 7F hellip A0 A1 hellip FE FF

高位字节

00middot

80

81middot

A0用户定义区 用户定义区

A1A2A3

非汉字图符 非汉字图符

A4middot

C6常用汉字 常用汉字

C7C8

用户定义区 用户定义区

C9middot

F9次常用汉字 次常用汉字

FAmiddot

FE用户定义区 用户定义区

FF

5少数民族文字编码bull 中国共有 56 个民族除了汉回满族一般使用汉语外其他少数民族大多有自己的民族语言

bull 我国各民族使用的 50 多种文字可以分为字母式结构文字和非字母式结构文字两大类ndash 字母式结构的有拉丁文斯拉夫文蒙古文维吾尔文哈萨克文藏文和朝鲜文等字母式

ndash 非字母式结构的有汉字象形文字图画文字和音节文字等bull 各民族文字的书写方向也有不同

ndash 壮文藏文朝鲜文彝文等的字从左到右行从上到下ndash 维吾尔文哈萨克文和柯尔克孜文等的字从右到左行从上

到下ndash 蒙古文和满文的字从上到下行从左到右ndash 汉字的书写方向有两种

bull 大陆的简体汉字的字从左到右行从上到下bull 港台与古旧书的繁体汉字的字从上到下行从右到左

国家标准bull 下面按发布时间列出若干已经公布的我国少数民族文字

编码集的国家标准(这些字符集一般分成两类对字母式结构文字采用八位编码对非字母式结构文字采用双字节编码)ndash GB 8045-87《信息处理交换用蒙古文七位和八位编码图形字

符集》收 82 个蒙古文字母和 12 个其他符号共 94 个字符ndash GB 12050-89《信息处理交换用维吾尔文编码图形字符集》收 32 个维吾尔文字母一个维吾尔文复合字符和 37 个其他符号共 70 个字符

ndash GB 12052-89《信息交换用朝鲜文编码字符集》收 5297 个朝鲜文字和 682 个其他符号(与 GB 2132同)共 5 979 个字符

ndash GB 13134-91《信息交换用彝文编码字符集》收 1165 个彝文字符和 688 个其他符号共 1853 个字符

ndash GB 16959-1997《信息技术 信息交换用藏文编码字符集 基本集》收 41 个藏文字母 36 个藏文主字 13 个元音字符12 个语音字符 10 个藏文数字 10 个半值符一个控制用连接符和 46 个其他藏文图形符号共 169 个字符

6 GB 13000bull GB 13000 是与 ISOIEC 10646 等价的国际通用编码字符集标准收汉字 2万多个但是与 GB 2312 和 GBK 不兼容

bull 1993年 5月 ISO 与 IEC 联合推出了可用于世界各种文字的通用编码字符集的国际标准的第 1部分ndash ISOIEC 10646-11993 Information technology -- Universal Multiple-Octe

t Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane (信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

ndash 该标准收字符 96万个几乎涵盖世界上的所有文字其中包含汉字 21 003 个

bull 1993年底我国推出了等同于国际标准 ISOIEC 1064611993 的强制性国家标准 ndash GB 130001-93《信息技术 通用多八位编码字符集( UCS ) 第一部分

体系结构与基本多文种平面》ndash 该标准于 1993年 12月 24日被国家技术监督局批准 1994年 8月 1日起实施

GB 13000 的主要特点

bull 世界各语言文种字符统一编码避免冲突便于国际交流

bull 编码空间宽阔连续每个图形字符的编码唯一(一字一码)不再存在兼容性问题

bull 按文种而不是按语言编码避免重复和浪费(如中日韩汉字的统一编码 CJK )

bull 与 GB 2312 和 GBK 不兼容

体系结构bull UCS 的体系结构是基于所谓ldquo多八位rdquo的而ldquo八位rdquo就是一个字节ldquo多八位rdquo就是多个字节

bull UCS采用 4 个字节来表征组面行位的四维空间bull 整个 UCS空间包含 128 个组( 0x00组 ~0x7F组)每组有 256 个平面( 0x00 平面 ~0xFF 平面)每个平面有 256 行每行又由 256 个字位构成

bull UCS共有( 128 times 256 = ) 32 768 个平面每个平面有( 256 times 256 = ) 65 536 个字位每个字位对应于一个字符的编码

bull 目前的编码只限于 00组已经定义的平面有 00组的00 平面mdashmdash称之为基本多文种平面 BMP ( Basic Multilingual Plane ) 及若干辅助平面

UCS 的全部编码空间

每个平面256times256 个

字位

00组 00 平面

00组 FF 平面

01组 00 平面

7F组 00 平面00

01组

7F组

UCS 的 00组

BMPbull BMP = Basic Multilingual Plane 基本多文种平面bull BMP 用作双八位编码字符集称之为 UCS-2 它被

分成四个区ndash A- 区(字位 0x0000~0x4DFF 有 19 903 个字位)用于

字母文字音节文字以及各种符号ndash I- 区(字位 0x4E00~0x9FFF 共 20 992 个字位)用于中日韩统一汉字( CJK )

ndash O- 区(字位 0xA000~0xDFFF 共 16 384 个字位)保留未来标准化用

ndash R- 区(字位 0xE000~0xFFFD 共 8 190 个字位)为 BMP 的限制使用区包括专用字符变形显现形式及兼容字符

BMP总貌

A-区

00~33 拼音文字(见下页)

34~3D 朝鲜文

3E~44 朝鲜文补充 -A

45~4D 朝鲜文补充 -B

I-区 4E~9F CJK统一汉字O-区 A0~DF

R-区

E0~F8 专用区

F9~FA CJK兼容汉字FB 拼音文字变形显现形式

FC~FD 阿拉伯文变形显现形式 -A

FE半形组合用标志

CJK兼容形式

小写变体

阿拉伯文变形显现形式 -B

FF 半形及全形字符 特殊字符

BMP 的0x00~0x33

行字母文字区

00 基本拉丁文 拉丁文-1补充

01 拉丁文扩充-A 拉丁文扩充-B

02 拉丁文扩充-B 国际音标扩充 进格修饰字符

03 组合用发音符 基本希腊文 希腊符号及哥普特文

04 西里尔文

05 美亚尼亚文 希伯来文(基本和扩充)

06 基本阿拉伯文 阿拉伯文扩充

07

08

09 梵文 孟加拉文

0A 锡克教文 古吉拉特文

0B 奥利雅文 泰米尔文

0C 泰卢固文 卡纳达文

0D 德拉维族文

0E 泰文 老挝文

0F

10 格鲁吉亚文

11 朝鲜文字母

12~1D

1E 拉丁文扩充增补

1F 希腊文扩充

20 广义标点 上下标 货币符号 符号组合用区分标志

21 类似字母的符号 数字形式 箭头

22 数学运算符

23 零杂技术用符号

24 控制图符 光学识别符 带括号的字母数字

25 制表符 方块元素 几何图形符

26 零杂符号

27 示意符等

28~2F

30 CJK符号和标点 平假名 片假名

31 注音 朝鲜文兼容字母 CJK零杂字符

32 带括号的CJK字母及月份

33 CJK兼容字符

留作将来标准化用

非图形字符

表示形式bull GB 13000提供了字符编码表示的两种替代使用的形式

ndash 双八位 BMP 形式( UCS-2 )mdashmdash允许使用 BMP 中的字符且每个字符用两个字节表示

ndash 肆八位正则形式( UCS-4 )mdashmdash允许使用 GB 13000 中的全部字符且每个字符用四个字节表示

bull 除了 UCS-24外还有另外两种变形的表示形式ndash UTF-8 (单字节 ~ 多字节)ndash UTF-16 (双字节和 4 字节与 UCS-2 等价)ndash 目前在工业上的实现均为 UTF-16 ( UCS-2 )和 UTF-8ndash UTF = Unicode UCS Transformation Format 统一码 UC

S转换格式bull 关于统一码我们会在下一小节详细介绍

7 GBK 与 GB 18030bull 由于 GB 13000 标准与 GB 2312 标准的字符编码不兼容作为过渡在国家信息技术标准化委员会的主持下制定了与 GB 2312兼容的《汉字内码扩展规范( GBK )》( K 为扩展的ldquo扩rdquo字的拼音首字母)并于 1995年 12月 15日由原国家技术监督局标准司联合原电子工业部科技与质量监督司作为指导性技术规范发布实施

bull 2000年 GBK又被国家标准 GB 18030-2000《信息技术 信息交换用汉字编码字符集 基本集的扩充》所代替该标准收汉字 2万 7千个

bull 与 GB 2312 一样 GB 18030 也为中国的强制性国家标准微软公司的 Windows XPVista78 中文版与苹果公司的 Mac OS X 和 iOS 谷歌公司的 Android (安卓)等操作系统已经全面支持 GBK

GB 18030 的码位范围分布

字节数 码位空间 码位数目

单字节 0x00~0x7F 128

双字节第 1字节 第 2字节

23 9400x81~0xFE

0x40~0x7E 0x80~0xFE

四字节第 1字节 第 2字节 第 3字节 第 4字节

1 587 6000x81~0xFE 0x30~0x39 0x81~0xFE 0x30~0x39

GB 18030的

总体结构图

收录字符bull 单字节部分mdashmdash收录了GBT 11383 的 0x00~0x7F 全部 128 个字符(似 ASCI

I )bull 双字节部分mdashmdash收录内容如下 (21 003 个汉字和 884 个符号共 21 887 个字符 )

ndash GB 130001-93 的全部 CJK 统一汉字字符 20 902 个( GB 2312 的编码汉字在双字节 2 区其他 CJK 统一汉字在双字节 34 区)

ndash GB 130001-93 的 CJK兼容区挑选出来的 21 个汉字ldquo郎凉秊helliphellip﨨﨩rdquo( 0xFD9C~0xFDA0 和 0xFE40~0xFE4F )

ndash GB 130001-93 中收录而 GB 2312未收录的台湾地区使用的图形字符 139 个ldquoˊˋ˙helliphelliprdquo( 0xA840~0xA895 和 0xA940~0XA988 )

ndash GB 130001-93收录的其他字符 31 ( 13)个(在双字节 5 区)ndash GB 2312-80 中的非汉字字符 682 个( 0xA1A1~0xA9EF )ndash GB 12345-90 的竖排标点符号 19 ( 29)个ldquo︵︶︹helliphellip︳︴rdquo( 0xA6D9~0xA6

F5 )ndash GB 2312-80未收录的 10 个小写罗马数字ldquoⅰⅱⅲhelliphellipⅸⅹrdquo( 0xA2A1~ 0xA2A

A )ndash GB 2312-80未收录的带音调的汉语拼音字母 5 ( 4)个ldquo ńňǹrdquo 以及 ɑ 和 ɡ ( 0

xA8BB~0xA8C0 )ndash 汉字数字零ldquo〇rdquo (0xA996) 和欧元符ldquoeurordquo (0xA2E3)ndash 表意文字描述符 13 个ldquohelliphelliprdquo( 0xA989~0xA995 )ndash 对 GB 130001-93增补的汉字和部首 构件 80 个ldquohelliphellip䶮rdquo( 0xFE50~ 0x

FEA0 )bull 四字节部分mdashmdash收录了上述双字节字符之外的包括 CJK 统一汉字扩充 A 在内

的 GB 130001-93 中的全部字符

GB 18030双字节部分的码位安排

类别 区名 码位范围 码位数 字符数 内容

符号区双字节 1区 A1A1~A9FE 846 718

GB 2312非汉字字符等

双字节 5区 A840~A9A0 192 166 台湾图符等

汉字区双字节 2区 B0A1~F7FE 6768 6763 GB 2312汉字双字节 3区 8140~A0FE 6080 6080 CJK统一汉字双字节 4区 AA40~FEA0 8160 8160 CJK统一汉字等

用户自定义区双字节用户区 1 AAA1~AFFE 564

用户自定义字符双字节用户区 2 F8A1~FEFE 658

双字节用户区 3 A140~A7A0 672

GB 18030双字节部分的编码空间结构图 尾字节

0x40larr――rarr0x7E 0x80larr――rarr0xA0 0xA1larr――――――――――――rarr0xFE

0x81 uarr darr

0xA0

0xA1 uarr darr

0xA7

0xA8 0xA9

首字节

0xAA uarr | | | | | | | | | | darr

0xFE

双字节 3区

汉字区6 080个码位

双字节用户区 3

用户自定义区672个码位

双字节 5区 图形符号区192个码位

双字节 4区

汉字区8 160个码位

双字节 1区

图形符号区564个码位

双字节 2区

汉字区6 768个码位

双字节用户区 1 用户自定义区564个码位

双字节用户区 2 用户自定义区658个码位

223 国际通用字符编码

bull Unicode (统一码)是由多语言软件制造商组成的统一码协会( httpwwwUnicodeorg)所制定一种国际字符的编码标准

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull 本节主要介绍这两种关系密切的主流国际字符编码标准的来历编码方案各自特点与相互关系

1 Unicode 统一码bull 发展历史

ndash 1987年施乐( Xerox )公司的 Joe Becker 与 Lee Collins 和苹果( Apple )公司的 Mark Davis 等人开始讨论统一编码 1987年 12月 Joe Becker造词 Unicode (统一码)含义为ldquo unique universal and uniform character encodingrdquo (单一通用统一的字符编码) 1989年 2月开始定期召开统一码会议 1989年 9月公布 Unicode草案

ndash 1991年 1月 3 日由 Xerox Apple Sun IBM Aldis Microsoft 等公司出资在美国加州成立了统一码协会( Unicode Consortium )并由协会设立非盈利性的统一码公司( Unicode Inc )后来 HP Adobe Borland Digital Lotus Novell 等公司也纷纷加入 1991年 1月成立统一码技术委员会 UTC 并制定了其规程

ndash 1991年 2月在 Ed Hart 的推动下进行了ldquo统一码对 10464 国际标准草案 1rdquo 的对话Unicode 与 ISOIEC 10646开始走向融合

ndash 1991年 8月发布 Unicode 标准 10版的第 1卷(体系结构非表意字符) 1992年6月发表 Unicode 10版的第 2卷(表意字符) 1993年 6月发布 Unicode 11版与 1993年 5月公布的 ISOIEC 10646-11993 实现了合并

ndash 1996年 7月发布 Unicode 20版ndash 1999年 9月发布 Unicode 30版ndash 2003年 4月发布 Unicode 40版(对应于 ISOIEC 106462003 ) 2004年 3月 31日发布 Unicode 401版 2005年 3月 31日发布 Unicode 410版

ndash 2006年 7月 14日发布 Unicode 50版 2008年 4月 4日发布 Unicode 51版 2009年 12月 22日发布 Unicode 52版

ndash 2010年 10月发布 Unicode 60版 2012年 1月发布 Unicode 61版(对应于 ISOIEC 106462012 ) 2012年 9月推出 Unicode 62版 2013年 9月推出 Unicode 63版

ndash 2014年 6月 16日发布 Unicode 70版 ndash 2015年 6月 17日发布 Unicode 80版

字符集bull Unicode 字符集的空间分成双字节的基本多语言平面 (Basic Multilingual Pla

ne BMP) 和 4 字节的辅助多语言平面 (Supplementary Multilingual Plane SMP) 两种

bull BMPndash Unicode 的基本平面或基本多语言平面 BMP 对应于 ISOIEC 10646-1 的第 00组的 00 平面( BMP )即 Unicode 与 ISOIEC 10646 的 BMP 中的字符编码完全一致

bull SMPndash 鉴于 Unicode 原有的 16位元空间不足以应用从 Unicode 31版本开始设立了 16 个辅助平面使 Unicode 的可使用空间由六万多字增至约一百万字

ndash 原有的 Unicode双字节空间称为基本平面或基本多语言平面 BMP 辅助多语言平面 SMP 字符要用 4 字节来储存

ndash 第一辅助平面摆放拼音文字(主要为现时已不再使用的文字)及符号范围在 U+10000 - U+1FFFD

ndash 第二辅助平面又称为表意文字补充平面 (Supplementary Ideographic Plane 简称 SIP) 现时摆放ldquo中日韩统汉字扩展 B 区rdquo共 43253 个汉字范围在 U+20000 - U+2FFFD

ndash 第三至十三辅助平面尚未使用ndash 第十四辅助平面又称为特殊用途补充平面 (Supplementary Special-purpose Pl

ane 简称 SSP) 摆放 Language tags 和 Variation Selectors 它们都是控制字符范围在 U+E0000 - U+E01FF

ndash 第十五至十六辅助平面都是私人使用区它们的范围是 U+F0000 - U+FFFFD 及 U+100000 - U+1000FD

bull Unicode 字符集的具体编码方式参加第 4小节ldquo 4 UTFrdquo

2 ISOIEC 10646

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull ISOIEC 10646 标准由 ISO 与 IEC 联合成立的 ISOIEC JTC1SC2WG2 制定ndash JTC 1 ( Joint Technical Committee 1 on Information

technology ISOIEC信息技术联合技术委员会 1 )负责信息技术方面标准的制定工作

ndash SC 2 ( SubCommittee 2 on Coded character sets 编码字符集分会 2 )下的 WG 2 ( Working Group 2 on Universal coded character set 通用编码字符集工作组 2 )负责制定国际通用字符编码标准即后来公布的 ISOIEC 10646

发展历史bull 1984年 ISO 的一些会员国发起制定新的国际字符编码标准同年 4月 ISO

与 IEC 联合成立 ISOIEC JTC1SC2WG2 1987年 3月制定出编码架构1992年 6月投票通过第二版国际标准草案

bull 1993年 5月推出 10646 标准时将内容分成两个部分标准首先发布的是其中的第 1 个部分(体系结构与基本多文种平面)的第 1版( Edition 1 ) ISOIEC 10646-11993 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane(信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

bull 2000年 3月推出 10646 标准第一个部分的第 2版( Edition 2 ) ISOIEC 10646-12000 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane

bull 2001年 10月推出 10646 标准第 2版的第二个部分(辅助平面)的第 1版( Edition 1 ) ISOIEC 10646-22001 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 2 Supplementary Planes

bull 2003年 10月推出的 10646新标准(第 1版 Edition 1 )将老标准中的两个部分标准合并成了一个单一的标准 ISOIEC 106462003 Information technology -- Universal Multiple- Octet Coded Character Set (UCS) 后来又于 2010年 2012年和 2014年分别推出了 ISOIEC 106462010 (第 2版)ISOIEC 106462012 (第 3版)和 ISOIEC 106462014 (第 4版)

UCS 通用字符集bull 通用字符集( Universal Character Set UCS )是

ISOIEC 10646 标准所定义的字符编码方式采用 4字节编码又称为 Universal Multiple-Octet Coded Character Set (通用多八位编码字符集)

bull 通用字符集是所有包括了其他字符集它保证了与其他字符集的双向兼容即如果你将任何文本字符串翻译到 UCS 格式然后再翻译回原编码你不会丢失任何信息

bull UCS 包含了已知语言的所有字符除了拉丁语希腊语斯拉夫语希伯来语阿拉伯语亚美尼亚语格鲁吉亚语还包括中文日文韩文这样的象形文字 UCS 还包括大量的图形印刷数学科学符号

名字与组合字符bull UCS 不仅给每个字符分配一个代码而且赋予了

一个正式的名字表示一个 UCS 或 Unicode值的十六进制数通常在前面加上ldquo U+rdquo 例如ldquo U+0041rdquo代表字符ldquo Ardquo

bull UCS里有些编码点分配给了组合字符组合字符机制允许在任何字符后加上重音符或其他指示标记 这在科学符号中特别有用 比如数学方程式和国际音标字母 可能会需要在一个基本字符后组合上一个或多个指示标记

实现级别bull 并不是所有的系统都需要支持像组合字符这样的的先进

机制因此 ISO 10646 指定了如下三种实现级别ndash 级别 1不支持组合字符和韩语 Hangul Jamo 字符 ( 一种特

别的 更加复杂的韩国文的编码 使用两个或三个子字符来编码一个韩文音节 )

ndash 级别 2类似于级别 1 但在某些文字中允许一列固定的组合字符 (例如 希伯来文 阿拉伯文 Devangari 孟加拉语 果鲁穆奇语 Gujarati Oriya 泰米尔语 Telugo 印 埃纳德语 Malayalam 泰国语和老挝语 ) 因为如果没有最起码的几个组合字符 UCS就不能完整地表达这些语言

ndash 级别 3支持所有的 UCS 字符如可以在任意一个字符上加上一个箭头或 和一个 tilde(颚化符号即字母上面的~ )

编码方式bull UCS 有如下两种编码方式

ndash UCS-2与 Unicode 的 2 字节编码基本一样ndash UCS-4 4 字节编码目前是在 UCS-2 前加

上 2 个全零的字节bull UCS 还有 UTF 编码方式参见下面第 4小节ldquo 4 UTFrdquo

3 Unicode 与 ISOIEC 10646bull 关系

ndash 历史上存在两个独立的尝试创立单一字符集的组织即国际标准化组织( ISO )和多语言软件制造商组成的统一码协会组织( Unicodeorg )前者开发的 ISO 10646项目后者开发的 Unicode项目因此最初制定了不同的标准

ndash 1991年前后两个项目的参与者都认识到世界不需要两个不兼容的字符集于是它们开始合并双方的工作成果并为创立一个单一编码表而协同工作

ndash 从 Unicode20开始 Unicode采用了与 ISO 10646-1相同的字库和字码 ISO 也承诺 ISO10646 将不会替超出 U+10FFFF 的 UCS-4 编码赋值以使得两者保持一致

ndash 两个项目仍都存在并独立地公布各自的标准但 Unicode协会和 ISOIEC JTC1SC2 都同意保持两者标准的码表兼容并紧密地共同调整任何未来的扩展

异同bull Unicode协会公布的 Unicode 标准包含了 ISO 10646-1 实现级别

3 的基本多文种平面在两个标准里所有的字符都在相同的位置并且有相同的名字

bull ISO 10646 标准就像 ISO 8859 标准一样只不过是一个简单的字符集表它定义了一些编码的别名指定了一些与标准有关的术语并包括了规范说明指定了怎样使用 UCS连接其他 ISO 标准的实现等

bull Unicode 标准额外定义了许多与字符有关的语义符号学并详细说明了绘制某些语言(如阿拉伯语)表达形式的算法处理双向文字(比如拉丁文和希伯来文的混合文字)的算法排序与字符串比较所需的算法等等

bull 考虑到 Unicode 标准有一个易记的名字既便宜又包括更多的辅助信息因而它使用得更广泛然而

bull 一般认为用于打印 ISO 10646-1 标准的字体在某些方面的质量要高于用于打印 Unicode 20 的专业字体设计者总是被建议说要两个标准都实现但一些提供的样例字形有显著的区别 ISO 10646-1 标准同样使用四种不同的风格变体来显示表意文字如中文日文和韩文 (CJK) 而 Unicode 20 的表里只有中文的变体

4 UTFbull Unicode 和 UCS 都是一个字符集可以看作为内码bull UTF ( UnicodeUCS Transformation Format 统一码

通用字符集转换格式)是一种编码方式它的出现是因为 Unicode 和 UCS 不适宜在某些场合直接传输和处理

bull UCS 和 Unicode 只是分配整数给字符的编码表现在存在好几种将一串字符表示为一串字节的方法(如高或低位字节在前)

bull 最显而易见的两种方法是将 UCS 和 Unicode 文本存储为 2 个 或 4 个字节序列的串这两种方法的正式名称分别为 UCS-2 和 UCS-4

bull 常用的 UTF具体编码方式有 UTF-8 UTF-16 和 UTF-32

UTF-8

bull UTF-8 是 UTF 的一种具体编码方式在 ISO 10646-1 的附录 R 和 IETF 的 RFC 2279 里定义

bull 由于要使文档中的文字与 ASCII兼容故 UTF-8 选择了使用可变长度字节来储存 Unicode 和 UCS 例如ndash ASCII 字母继续使用 1 字节储存ndash 重音文字希腊字母或西里尔字母等使用 2 字节来储存ndash 常用的汉字就要使用 3 字节ndash 辅助平面字符则使用 4 字节ndash 即 ASCII 不作变换其他字符做变长编码每个字符 1~4 字节

bull UTF-8 通常作为外码bull 在 UTF-8 文件的开首很多时都放置一个 U+FEFF 字符

(UTF-8 以 EF BB BF 代表 ) 以显示这个文字档案是以UTF-8 编码

UTF-8 的优点bull 与 CPU 字节顺序无关可以在不同平台之间交流

bull 容错能力高任何一个字节损坏后最多只会导致一个编码码位损失不会链锁错误 ( 如 GB 码错一个字节就会整行乱码 )

UTF-8 的缺点bull UTF-8 使用可变长度字节储存使计算机程序设计变得复杂 (故此在计算机程序或操作系统内部多采用 UCS-2 编码 )

bull 在旧式的中文日文及朝鲜文编码之中每字符都使用 2 字节储存而 UTF-8 须使用 3 字节 (采用 UTF-16 编码则可只使用 2字节储存 )

bull 泰语以往使用的 ISO 8859-11 每字符只使用 1 字节储存而 UTF-8 须使用 3 字节

UTF-8储存的多字节串字符bull U-00000000 - U-0000007F 0xxxxxxx bull U-00000080 - U-000007FF 110xxxxx 10xxxxxx

bull U-00000800 - U-0000FFFF 1110xxxx 10xxxxxx

10xxxxxx bull U-00010000 - U-001FFFFF 11110xxx 10xxxxx

x 10xxxxxx 10xxxxxx bull 在多字节串中第一个字节的开头ldquo 1rdquo 的数目就

是整个串中字节的数目bull 每个使用 UTF-8储存的字符除了第一个字节外其余字节的头两个位元都是以 10 开始使文字处理器能够较快地找出每个字符的开始位置

UTF-16bull UTF-16 是 UTF 的另一种具体编码方式在 ISO 1064

6-1 的附录 Q 和 IETF 的 RFC 2781 里定义bull UTF-16 是变长码( 2 或 4 字节)大致相当于 20位编码值在 0 到 0x10FFFF 之间基本上就是 Unicode 编码的实现 UTF-16 与 CPU 字序有关但因为最省空间常作为网络传输的外码 UTF-16 是 Unicode 的完美编码

bull lt0x10000 的直接用其对应的 16位整数编码位于 0x10000 ~ 0x10FFFF 之间的用 0xD800~0xDBFF 的 16位整数后跟 0xDC00~0xDFFF 的 16位整数的 4 字节编码 gt 0x10FFFF 的不能用 UTF-16 表示

bull 在 Unicode 的 BMP 中定义的字符(无论是拉丁字母汉字或其他文字或符号)一律使用 2 字节存储而在辅助平面定义的字符则以两个 2 字节的值来存储

UTF-16 的特点bull UTF-16比起 UTF-8 的好处在于大部分字符都以固定长

度的 2 字节存储但 UTF-16却无法相容于 ASCII 编码bull UTF-16 有两种编码模式即大尾序( big Endian 高位字节在前)和小尾序( little Endian 高位字节在后)储存形式(一般來說以 Macintosh 制作和存储的文字使用大尾序格式以 Microsoft 或 Linux 制作和存储的文字使用小尾序格式)

bull 为了弄区分 UTF-16 文件的大小尾序在 UTF-16 文件的开头都会放置一个 U+FEFF 字符作为字节顺序标记 (UTF-16LE 以 FF FE代表 UTF-16BE 以 FE FF代表 ) 以显示该文档是以 UTF-16 编码的

UTF-32

bull UTF-32 仅使用了 Unicode范围 (0 到 0x10FFFF) 的 32位编码相当于 UCS-4 的子集

bull 由于 Unicode 和 ISOIEC 10646 的编码和结构与前面讲过的 GB 13000 类似或等价这里就不再做详细的介绍

5支持bull 现在 UnicodeUCS 已经获得了十分广泛的支

持ndash网络与浏览器(如 HTML 4050 XML 与 IE

Safari Netscape Firefox Chrome Opera Edge 等)

ndash操作系统(如 Windows NT2000XPVista7810 Mac OS X iOS Android和 Linux )

ndash 编程语言新版本(如 CC++JavaObjective-CC Swift 等)

Unicode 代码的浏览器显示代码 字符标准名称 (英语 )

浏览器的显示

amp65 大写拉丁字母 A A

amp223 小写拉丁字母 Sharp S szlig

amp254 小写拉丁字母 Thorn thorn

amp916 大写希腊字母 Delta Δ

amp1049 大写斯拉夫字母 Short I Й

amp1511 希伯来字母 Qof ק

amp1605 阿拉伯字母 Meem م

amp3671 泰文数字 7 ๗amp4688 埃塞俄比亚音节文字 Qha ቐ

amp12354 日语平假名 A あamp12450 日语片假名 A アamp21494 简体汉字 叶 叶amp33865 繁体汉字 葉 葉amp50685 韩国音节文字 Yeob 엽

23 文字输出bull 文字输出是指将计算机内的字符编码通过计算机的输出设备(如显示器打印机喇叭)展现出所对应字符的图形或声音供人们阅读或聆听

bull 本节主要介绍文字图示输出的字形技术bull 文字声音输出属于语音合成只在本节的末尾作简单的介绍

231 字形技术bull 文字 = 图形bull 不论是象形文字中的单字还是拼音文字

中的字母都是用图形来表示的bull 在计算机里文字的表示 输出(显示和打

印)涉及ndash 字型ndash 字体ndash 字库

1字型bull 字型指构造和生成字形的方法一般可分为

ndash 点阵字 DOS 显卡 ROM 金山 科印特点似位图显示快占空间(字库大)放大后有马赛克效应

bull 显示字母 88 汉字 1616bull 打印 2424 4848 6464

ndash 矢量字单线条用于笔式绘图仪特点字库小算法简单难看

ndash 轮廓字用曲线描绘字的轮廓输出效果好所见即所得(WYSWYG) 可无级放大易实现空心 阴影 填充 变形等各种特效功能轮廓曲线一般采用样条曲线如 TrueType (Apple 1991 Mac OS Microsoft 1992 Windows 31)用的是二次 B 样条 Bezier曲线中文之星 RichWin采用的是三次 B 样条 Bezier曲线

字型种类

2字体bull 字体指字的形状风格如

ndash 汉字的

ndash 英文的

宋体楷体黑体仿宋

行楷隶书新魏幼圆

Times New Roman Arial Narrow Courier New

常用汉字字体bull 宋体mdashmdash宋体来自于北宋时雕版刻书所采用的欧体字(唐朝欧阳询体)宋体字的横顿拉捺挑钩别具特色间架平正疏密适中字体秀丽遒劲但笔画横细竖粗适合于刀刻不宜于手写现在宋体广泛用于印刷常来表现文档的正文

bull 仿宋体mdashmdash 1920年钱塘的丁辅之与丁善之等人将明代以后盛行的方廓形字体加以改造创造出长形和方形的聚珍仿宋后来演化为现在的仿宋体仿宋体比较接近于手写体为宋体和楷体的折中是采用的宋体的结构和楷体的笔法而成现常来表现打印文件以及文档的摘要和注释等

bull 黑体mdashmdash黑体是适应工艺美术的发展而出现的一种等线体是从日本引进的黑体的结构与宋体没有什么差别只是其笔画粗细一致健实粗壮主要用于文档的标题和重点及标语广告等方面

bull 楷体mdashmdash楷体源于楷书楷体的笔画圆浑笔调灵活结构端正美观但不宜于木板雕刻所以直到清末西洋的石板印刷术传入后才开始广泛用于印刷现代的楷体创造于 20世纪的二三十年代主要用于文档的正文(多用于中小学教材)也可用于工艺美术等方面

3字库bull 字库为一种文字的某一字体的所有字符的集合一般存放在一个磁盘文件中

bull 由于象形文字中单字的数量大(成千上万)而拼音文字中字母的数量小(不到一百个)所以字库的大小有很大的差别

bull 为了使文档界面丰富多彩常见的字处理软件都支持多种字体带有众多字库

4点阵字型的国家标准bull 我国已经公布了若干字体的点阵字型之国家标准

ndash GB 50071-19852001 信息技术 汉字编码字符集(基本集) 24 点阵字型

ndash GB 50072-19852001 信息技术 汉字编码字符集(辅助集) 24 点阵字型

ndash GB 5199-19862001 信息技术 汉字编码字符集(基本集) 16 点阵字型 宋体

ndash GB 6345-19862001 信息技术 汉字编码字符集(基本集) 32 点阵字型 宋体

ndash GB 12041-2001 信息技术 汉字编码字符集(基本集) 48点阵字型 宋体

ndash GB 17698-1999 信息技术 通用多八位编码字符集( I 区) 汉字 16 点阵字型

232 语音合成bull 文字的声音输出主要使用的是语音合成的技术bull 语音合成功能是ldquo文rarr语rdquo转换bull 文语转换 TTS (Text-To-Speech) 是将文本形式的信息转换成自然语音的一种技术其最终目标是使计算机输出清晰而又自然的声音

bull 英语的语音合成在上世纪 80年代就早已成熟而中文 汉语的合成现在也趋于成熟并有了广泛的应用(如汽车导航仪智能手机等)

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 4: 第一篇  媒体

文字bull 文字是语言的记录可以分为拼音文字(如英

文)和象形文字(如中文)两大类各类文字都是用图形符号(如字母和汉字)来表示的

bull 在多媒体技术出现之前文字是人们书面交流的主要手段在多媒体技术得到广泛应用的今天文字也是最重要的媒体元素之一

bull 计算机对文字的处理包括文字的输入编码与输出

bull 本章依次介绍文字输入字符编码与文字输出重点放在汉字编码标准之上

21 文字输入bull 将文字录入进计算机的方法主要有键盘输

入手写输入语音输入和扫描识别输入bull 键盘输入是传统和主要的文字录入手段bull 随着计算机技术的发展方便和快速的手

写与语音输入成为解决文字输入瓶颈的有效途径

bull 扫描输入主要应用在印刷品的大量文字自动录入方面

211 键盘输入bull 计算机的通用键盘源自传统的打字机本身是

为英文字母的键入而设计的非常适合于拼音文字的字母输入而像汉字这样的象形文字用键盘输入则十分困难

bull 汉字的三个要素是形音义汉字的编码输入主要可以分为形码(如五笔字型)和音码(如全拼)两大类各种形码和音码输入法可以结合汉字的词义与语义特性进行词汇与整句等智能化的输入(如微软拼音输入法)

212 手写输入bull 随着各种手持设备(如平板电脑智能手

机)的不断出现与普遍使用联机手写文字的实时识别与输入方法已经得到越来越广泛的应用

bull 手写输入是指人用手指或(特制的)笔在图形板上书写机器进行实时的识别并将对应文字的编码输入

bull 汉字的联机手写输入是自动汉字识别中最简单的一种

特点

bull 机器识别的是笔画而不是整字bull 识别结果可以及时反馈所以对识别率要

求不高bull 输入方便不需对输入人员进行培训bull 适合于边想边写bull 可利用图形板方便地进行编辑和修改

技术bull 人写字时手的抖动书写速度的变化图形板的

量化和感应噪声等会对识别产生干扰因此必须进行必要的平滑和去噪预处理

bull 识别时还需进行字符分割以区分哪些笔画属于同一汉字

bull 手写输入在技术涉及图像识别模式匹配人工智能语言文字书写方式与习惯等方面的知识和方法

bull 目前的手写识别方法和技术还有待于进一步改进和完善以提高识别率减少对输入的限制降低输入设备和识别软件的成本加强软件的自学习功能

213 语音输入bull 语音输入是指利用语音内容的识别技术

将人的话音实时转换为对应文字编码并录入计算机

bull 语音输入的核心技术是语音识别技术bull 语音识别技术现在正在发展过程中还

有待于进一步完善

语音识别技术bull 早期的语音识别技术一直很落后到上世纪 70年代中采

用线性预测编码 LPC 和同态信号处理 (homomorphic signal process) 方法技术有了长足的进步但效果不理想到了上世纪 80年代矢量量化 (VQ Vector Quantization) 和隐马尔科夫模型 (HMM Hidden Markov Model) 的成功使用使语音识别在上世纪 90年代达到了商用化程度不过仍然存在问题识别率一直难以进一步提高又进入了相对低潮的相持阶段2011年 10月 14日苹果公司推出的 iPhone 4S 手机支持智能语音指令输入虽然还存在不少问题但是却引发了业界对语音输入研究和应用的新热潮

bull 语音输入的字词识别涉及词库声母分类规则库声母与韵母结合规则库声调知识库这些统称为声学基元模型库句子识别还涉及语义语法句法语用知识库这些统称为语言模型库句子理解则涉及常识库(难)

语音识别的过程图语音输入

darr数据采集

darr波形自动分析

darr预处理 参数特征提取

分帧后的语音特征矢量集合rarrdarr 声学模型 时间对准larr声学基元模型库

darr 语言模型库rarr 组句分析 larr统计信息与规则

语句候选rarrdarr识别语句输出

语音识别系统分类bull 按可识别词汇量可分为

ndash 小词汇量语音识别系统 (lt100)ndash 中词汇量语音识别系统 (100~1000)ndash 大词汇量语音识别系统 (gt1000)

bull 按语音输入方式可分为ndash 孤立词语音识别系统(简单)ndash 连接词语音识别系统(较难)ndash 连续语音语音识别系统(难)

bull 按发言人类型可分为ndash 特定人( 1 人)ndash 限定人( n 人)ndash 非特定人(任意人)

语音识别的目标是开发大词汇量非特定人的连续语音识别系统

214 扫描输入bull 扫描输入是指将图书期刊打印材料和印刷

品中的印刷体文字先通过扫描仪变成计算机中的数字图像然后再利用文字识别软件 OCR 自动转换成对应得文字编码并录入计算机

bull 目前我国研制的多种 OCR 软件的识别率已经达到 95 以上不过受印刷品质量的影响比较大

bull OCR = Optical Character Recognition Reader 光学字符识别 阅读器

bull 计算机识别印刷汉字的核心问题是抓住汉字的字形特征它主要体现在笔画和关键点上

bull 另一个核心问题是版面的分析与理解包括从图文混排版面中自动排除图形部分自动区分横排和竖排自动识别标题和正文对分栏文本实现自动对接等

bull 扫描输入方法除了用于印刷体文字的识别和输入外也可以用于手写体印刷文字的输入其文字识别的方法与印刷体文字类似也与手写实时输入的方法相关不过失去了笔顺信息属于整字识别类型

22 字符编码bull 字符编码包括西文编码中文编码和国际通

用字符编码本节的重点放在常用的编码标准上

bull 221 西文编码( ASCII 等)bull 222 中文编码( GB 2312 GB 13000

GBKGB 18030 )bull 223 国际通用字符编码( Unicode IS

OIEC 10646 )

221 西文编码bull 西文编码主要介绍 ASCII 字符集然后简

单介绍 IBM公司的 EBCDIC 和两种扩展 ASCII 显示字符表

bull 1 ASCII

bull 2 EBCDIC

bull 3扩展 ASCII 显示字符

1 ASCII

bull ASCII ( American Standard Code for Information Interchange 美国信息交换标准码)是 ANSI于 1963年提出 1968年确定的一种英文字符编码标准( ANSI X34-1986 )广泛应用于计算机网络和信息产业

bull ANSI = American National Standards Institute 美国国家标准协会

bull ASCII采用 7位二进制数的(共计 128 个)代码来表示字符(包括图示符和控制符)加上奇偶校验位(或最高位置 0 )则每个字符由 8位(一个字节)组成

ASCII 字符集

0 1 2 3 4 5 6 7

0 NUL DLE SP 0 P ` p

1 SOH DC1 1 A Q a q

2 STX DC2 ldquo 2 B R b r

3 ETX DC3 3 C S c s

4 EOT DC4 $ 4 D T d t

5 ENQ NAK 5 E U e u

6 ACK SYN amp 6 F V f v

7 BEL ETB lsquo 7 G W g w

8 BS CAN ( 8 H X h x

9 HT EM ) 9 I Y i y

A LF SUB J Z j z

B VT ESC + K [ k

C FF FS lt L l |

D CR GS - = M ] m

E SO RS gt N ^ n ~

F SI US O _ o DEL

bull ASCII 字符集以 32 个字符为一组bull 第一组( 0x00~0x1F )为控制符

(非打印符)用于数据处理 通信系统及其相应设备中的信息交换

bull 后面的除了第一个字符( SP空格符 0x20 )和最后一个字符( DEL删除符 0x7F )外全都是可打印(显示)的图示符包括ndash 第二组( 0x20 ~0x6F )的数字空格

和常用标点符号ndash 第三组( 0x40~0x5F )的大写拉丁字

母(即英文字母)与少数标点符号ndash 第四组( 0x60~0x7F )的小写拉丁字

母与少数标点符号

ASCII 的国际标准bull 1972年美国的国家标准 ASCII 与其若干拉丁语系国家的变体一起成为国际标准 ISO 6461972 ( Information processing -- ISO 7-bit coded character set for information interchange 信息处理mdashmdash ISO 用于信息交换的七位编码字符集)

bull 这些变体主要是将 ASCII 字符集中不常用的符号ldquo $ [ ] ^ ` | ~rdquo替换为他们各自语言的重音符号

bull 1987年 ISO 646 中的 ASCII部分成为 646 的国际参考版( IRV = International Reference Version ) ISO 646IRV1987 但是其中的美元符 $被替换为国际通用货币符 curren

bull 1991年推出的修订版 ISOIEC 646IRV1991 还原成原始的美国 ASCII 所以又被称为 ISO 646-US 或 US-ASCII

替代标准bull 由于 ISO 646 中各国的变体存在明显的兼容和统一问题现在已经作废

bull 有关编码已经被新的国际标准 ISOIEC 8859-1~16 19871998 ( Information processingtechnology -- 8-bit single-byte coded graphic character sets 信息处理 技术mdashmdash 8位单字节编码的图形字符集)所替代

bull 后来 ISO 646 与 ISOIEC 8859 标准又都被纳入 ISOIEC 1064619932003 ( Information technology -- Universal Multiple-Octet Coded Character Set (UCS) 信息技术mdashmdash通用多八位编码字符集 (UCS) )标准之中

bull 其中的标准编号 ISO 10646 = ISO 646 + 10000

标准化组织bull ANSI = American National Standards Institute 美

国国家标准协会bull ISO = International Organization for Standardization

国际标准化组织是由 153 个国家的国家标准协会联合组成的一个非政府国际组织总部(中央秘书处)设在瑞士的日内瓦负责制定适应商业和广泛社会需要的各种国际标准网址为 httpwwwisoorg

bull IEC = International Electrotechnical Commission 国际电工技术委员会是一个成立于 1906年 6月的国际标准化权威组织属于联合国的甲级咨询机构负责制定关于电工电子各方面的标准有 42 个会员国总部也设在瑞士的日内瓦网址为httpwwwiecch我国于 1958年 8月参加

2 EBCDIC

bull 西文的字符编码方案除了通用的 ASCII外还有 IBM公司于 1960年代初提出的 EBCDIC ( Extended Binary-Coded Decimal Interchange Code扩充的二进制编码的十进制交换码)

bull EBCDIC 现在仍然(仅)在 IBM 的 OS390 与 TPF 以及富士通 - 西门子的 BS2000OSD 等大型机的操作系统中使用

bull EBCDIC 是一种八位编码其字符的编码方案与ASCII 的完全不同

EBCDIC 字符集 0 1 2 3 4 5 6 7 8 9 A B C D E F

0 NUL DLE DS SP amp - 0

1 SOH DC1 SOS a j ~ A J 1

2 STX DC2 FS SYN b k s B K S 2

3 ETX TM c l t C L T 3

4 PF RES BYP PN d m u D M U 4

5 HT NL LF RS e n v E N V 5

6 LC BS ETB UC f o w F O W 6

7 DEL IL ESC EOT g p x G P X 7

8 GE CAN h q y H Q Y 8

9 RLF EM ` i r z I R Z 9

A SMM CC SM cent | |

B VT CU1 CU2 CU3 $

C FF IFS DC4 gt

D CR IGS ENQ NAK ( ) _ lsquo

E SO IRS ACK + lt =

F SI IUS BEL SUB | ldquo EO

3扩展 ASCII 显示字符bull ( 1 ) IBM PC

ndash IBM PC 的扩展 ASCII 显示字符由 IBM公司为其 PC 机制定可以由原始的 IBM PC 显示器在 DOS状态下显示

bull ( 2 ) Microsoft Windows ndash Microsoft Windows 的扩展 ASCII 显示字符由

微软公司为其Windows操作系统制定可以在Windows环境的西文状态下被显示

IBM PC 的扩展 ASCII 显示字符表

Microsoft Windows 的扩展 ASCII 显示字符表

222 中文编码bull 1 GB 1988 与 GB 2311

bull 2 GB 2312

bull 3汉字编码的辅助集bull 4 Big5

bull 5少数民族文字编码bull 6 GB 13000

bull 7 GBK 与 GB 18030

汉字编码bull 为了计算机处理汉字必须先对汉字进行编码由于汉

字数量大(《康熙字典》收字 47 035 个《汉语大字典》收字 54 678 个据统计在形成楷体后出现的汉字约有 9万个左右)显然不能像 ASCII那样用 7位或单字节来进行编码至少需要两个字节(最多可表示 6万5千多个字符)

bull 1980年我国制定了著名的 GB 2312-80双字节汉字编码标准(其中 GB 为ldquo国标rdquo这两个汉字的拼音首字母)收汉字 6 763 个

bull 1993年底又推出了等同于国际通用字符编码标准 ISOIEC 106461-1993 的国家标准 GB 130001-93 收汉字 20 902 个

bull 由于 GB 13000 与 GB 2312 的编码不兼容作为过渡2000年又公布了 GB 18030-2000 ( GBK )收汉字2万 7千个

1 GB 1988 与 GB 2311

bull 为了能够同时表示和处理汉字和英文实现中外文混排汉字编码必须兼容通用的 ASCII 编码因此1980年我国制定了与国际标准 ISO 6461972 (即ASCII )对应的国家标准 GB 1988-80《信息处理交换用的七位编码字符集》

bull 汉字成千上万不可能像 ASCII 一样只用单字节的七位来表示必须扩展到八位和多字节但是不能随意扩充而应该符合国际规范因此我国于 1980年又制定了与七位代码扩充到八位编码的国际标准 ISO 2022兼容的国家标准 GB 2311-80《信息处理交换用七位编码字符集的扩充办法》

GB 1988-80 ( ASCII )的代码结构图

行 0 1 2 3 4 5 6 7

0 SP

1 helliphellip

15

16

32个

控制符

94个

图形字符

DEL

GB 2311-80 的八位编码结构图列

行 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0 SP 100

1

helliphellip

14

15

C0

32个

控制符

GL

94或 96个

图形字符

DEL

C1

32个

控制符

GR

94或 96个

图形字符

1515

2 GB 2312

bull GB 2312-80《信息交换用汉字编码字符集 middot基本集》是我国制定的一个使用最广泛的汉字编码的强制性国家标准由原第四机械工业部的华北计算机研究所(后改名为电子工业部第十五研究所)起草1980年批准 1981年 5月 1日起实施

bull GB 2312-80 是在已有的国家标准 GB 1988-80(对应于 ISO 646 )和 GB 2311-80 (对应于 ISO 2022 )的基础上制定的采用与 ISO 2022兼容的GB 2311 之 7位到八位的代码扩充办法用双字节编码表示汉字与 ASCII兼容

收录的字符bull GB 2312 对应的是汉字的基本集共收汉字 6 763 个

可达到 9999 的使用频率因此除了极少数生僻的人名地名和古文外 GB 2312 中的汉字已经能基本满足平时的使用了

bull 除了汉字外 GB 2312 还收录了 682 个非汉字图形符号包括 202 个一般符号(含间隔符标点运算符和制表符) 60 个序号符 22 个数字符 52 个英文字母 169 个日文假名 48 个希腊字母 66 个俄文字母 26 个汉语拼音符号和 37 个汉语注音字母

bull 所以在 GB 2312-80 标准中共收录了( 6 763 汉字 + 682 非汉字图符 = ) 7 445 图形字符

两级汉字bull GB 2312 将其收录的六千多个汉字分成两个级别bull 一级汉字有 3 755 个都为使用频率高的常用汉

字为便于检索像字典那样将这些汉字按拼音字母顺序排列(同音字再按笔顺的横竖撇捺点折序排列)

bull 二级汉字有 3 008 个大部分较生僻不易掌握读音所以按部首顺序排列(同部首的字按笔画数排列同笔画数的字再按笔顺排列)

编码方案bull GB 2312 对所有图形字符(包括汉字和非汉字图符)都采用两个字节表示每个字节的低七位用于编码最高位全为 1 这样可以兼容 ASCII 编码(字节的最高位全为 0 )

bull 虽然在一个字节中最高位为 1 的符号位置有 128 个但从前面 GB 2311 的分析可知为了与 ASCII 的代码结构兼容保留了( 32 + 2 = ) 34 个控制符位置最后只有( 128 ndash 34 = ) 94 个符号位可供图形字符编码使用

bull 图形字符在代码表中的位置用区位码表示将码表分成94 个区对应于编码的第一个字节取值 0x21~0x7E 每个区又分成 94 个位对应于编码的第二个字节取值 0x21~0x7E (参见表 2-6 )

bull 例如ldquo中山大学rdquo的编码为中 (0xD6D0) 山 (0xC9BD) 大 (0xB4F3) 学 (0xD1A7)

GB 2312-80 字符集结构 20 21 22 helliphellip 7D 7E 7F

位号

区号

1 2 helliphellip 93 94

20

21~29 1~9 非汉字图符(682个)

2A~2F 10~15 空白区

30~57 16~55 一级汉字(3 755个)

58~77 56~87 二级汉字(3 008个)

78~7E 88~94 空白区

7F

第 1 区的部分非汉字图符

1区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 middot ˉ ˇ uml 々 mdash ~ hellip lsquo rsquo ldquo

17~32 rdquo 〔 〕 〈 〉 《 》 「 」 『 』 〖 〗 【 】 plusmn

33~48 times divide ∶ and or sum prod cup cap isin ∷ radic perp ∥ ang

49~64 ⊙ int ∮ equiv ≌ asymp ∽ prop ne ltu gtu le ge infin ∵ there4

65~80 deg prime Prime $ curren ¢ £ permil sect

81~94 rarr larr uarr darr

第 16 区的部分一级汉字

16区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 啊 阿 埃 挨 哎 唉 哀 皑 癌 蔼 矮 艾 碍 爱 隘 鞍

17~32 氨 安 俺 按 暗 岸 胺 案 肮 昂 盎 凹 敖 熬 翱 袄

33~48 傲 奥 懊 澳 芭 捌 扒 叭 吧 笆 八 疤 巴 拔 跋 靶

49~64 把 耙 坝 霸 罢 爸 白 柏 百 摆 佰 败 拜 稗 斑 班

65~80 搬 扳 般 颁 板 版 扮 拌 伴 瓣 半 办 绊 邦 帮 梆

81~94 榜 膀 绑 棒 磅 蚌 镑 傍 谤 苞 胞 包 褒 剥

第 56 区的部分二级汉字

56区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 亍 丌 兀 丐 廿 卅 丕 亘 丞 鬲 孬 噩 丨 禺 丿 匕

17~32 乇 夭 爻 卮 氐 囟 胤 馗 毓 睾 鼗 丶 亟 鼐 乜 乩

33~48 亓 芈 孛 啬 嘏 仄 厍 厝 厣 厥 厮 靥 赝 匚 叵 匦

49~64 匮 匾 赜 卦 卣 刂 刈 刎 刭 刳 刿 剀 剌 剞 剡 剜

65~80 蒯 剽 劂 劁 劐 劓 冂 罔 亻 仃 仉 仂 仨 仡 仫 仞

81~94 伛 仳 伢 佤 仵 伥 伧 伉 伫 佞 佧 攸 佚 佝

3汉字编码的辅助集bull 除了GB 2312基本集的 6 763 个简体汉字外国家标

准还给出了汉字编码字符集的多个辅助集bull 第二 四辅助集分别增加了 7 237 7 039 个简体汉字bull 第一和三 五辅助集则分别是与基本集和第二 四辅助集所对应的繁体汉字字符集的国家标准

bull 基本集加上辅助集共有 21 039 个简体汉字和 21 142个繁体汉字

bull 繁体汉字之所以多一些是因为在第一辅助集中有时几个繁体字对应一个简体字因此比基本集多出 103 个汉字

bull 基本集和辅助集的代码页之间靠其编码字节的最高位来区分

编码字符的分页标志

双字节汉字编码的页面结构第二字节 列号

行号 0 middot middot middot 32 33 34 helliphellip 125 126 127 128middot middot 160 161 162 helliphellip 254 255 0 middot middot 32

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

33 34 middot middot middot 126

1 2 middot middot middot 94

第四五辅助集 (7 039个汉字)

127

(兼容ASCII)

128 middot middot 160

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

161 162 middot middot middot 254

1 2 middot middot middot 94

第二三辅助集 (7 237个汉字)

1 2 middot middot middot 94

基本集第一辅助集 (6 763 6 866个汉字) (682个非汉字图符)

第一字节

255

4 Big5

bull 除了中国大陆使用的简体汉字外在台湾香港澳门和海外华侨社区使用的是传统的繁体汉字

bull 简体汉字使用 GB (国标)系列编码标准bull 繁体汉字一般使用的是 Big5内码(大五码)即台湾的ldquo资讯工业策进会rdquo发布的《标准交换码 (Ⅲ码 )》收录汉字 13 053 个

bull Big5内码是 1984年由台湾财团法人资讯工业策进会与宏碁 (Acer) 神通 (MiTAC) 佳佳零壹 (Zero One) 大众 (FIC) 等五大软件公司联合推出故称为大五码

BIG5 的代码空间低位字节

00 hellip 3F 40 hellip 7E 7F hellip A0 A1 hellip FE FF

高位字节

00middot

80

81middot

A0用户定义区 用户定义区

A1A2A3

非汉字图符 非汉字图符

A4middot

C6常用汉字 常用汉字

C7C8

用户定义区 用户定义区

C9middot

F9次常用汉字 次常用汉字

FAmiddot

FE用户定义区 用户定义区

FF

5少数民族文字编码bull 中国共有 56 个民族除了汉回满族一般使用汉语外其他少数民族大多有自己的民族语言

bull 我国各民族使用的 50 多种文字可以分为字母式结构文字和非字母式结构文字两大类ndash 字母式结构的有拉丁文斯拉夫文蒙古文维吾尔文哈萨克文藏文和朝鲜文等字母式

ndash 非字母式结构的有汉字象形文字图画文字和音节文字等bull 各民族文字的书写方向也有不同

ndash 壮文藏文朝鲜文彝文等的字从左到右行从上到下ndash 维吾尔文哈萨克文和柯尔克孜文等的字从右到左行从上

到下ndash 蒙古文和满文的字从上到下行从左到右ndash 汉字的书写方向有两种

bull 大陆的简体汉字的字从左到右行从上到下bull 港台与古旧书的繁体汉字的字从上到下行从右到左

国家标准bull 下面按发布时间列出若干已经公布的我国少数民族文字

编码集的国家标准(这些字符集一般分成两类对字母式结构文字采用八位编码对非字母式结构文字采用双字节编码)ndash GB 8045-87《信息处理交换用蒙古文七位和八位编码图形字

符集》收 82 个蒙古文字母和 12 个其他符号共 94 个字符ndash GB 12050-89《信息处理交换用维吾尔文编码图形字符集》收 32 个维吾尔文字母一个维吾尔文复合字符和 37 个其他符号共 70 个字符

ndash GB 12052-89《信息交换用朝鲜文编码字符集》收 5297 个朝鲜文字和 682 个其他符号(与 GB 2132同)共 5 979 个字符

ndash GB 13134-91《信息交换用彝文编码字符集》收 1165 个彝文字符和 688 个其他符号共 1853 个字符

ndash GB 16959-1997《信息技术 信息交换用藏文编码字符集 基本集》收 41 个藏文字母 36 个藏文主字 13 个元音字符12 个语音字符 10 个藏文数字 10 个半值符一个控制用连接符和 46 个其他藏文图形符号共 169 个字符

6 GB 13000bull GB 13000 是与 ISOIEC 10646 等价的国际通用编码字符集标准收汉字 2万多个但是与 GB 2312 和 GBK 不兼容

bull 1993年 5月 ISO 与 IEC 联合推出了可用于世界各种文字的通用编码字符集的国际标准的第 1部分ndash ISOIEC 10646-11993 Information technology -- Universal Multiple-Octe

t Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane (信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

ndash 该标准收字符 96万个几乎涵盖世界上的所有文字其中包含汉字 21 003 个

bull 1993年底我国推出了等同于国际标准 ISOIEC 1064611993 的强制性国家标准 ndash GB 130001-93《信息技术 通用多八位编码字符集( UCS ) 第一部分

体系结构与基本多文种平面》ndash 该标准于 1993年 12月 24日被国家技术监督局批准 1994年 8月 1日起实施

GB 13000 的主要特点

bull 世界各语言文种字符统一编码避免冲突便于国际交流

bull 编码空间宽阔连续每个图形字符的编码唯一(一字一码)不再存在兼容性问题

bull 按文种而不是按语言编码避免重复和浪费(如中日韩汉字的统一编码 CJK )

bull 与 GB 2312 和 GBK 不兼容

体系结构bull UCS 的体系结构是基于所谓ldquo多八位rdquo的而ldquo八位rdquo就是一个字节ldquo多八位rdquo就是多个字节

bull UCS采用 4 个字节来表征组面行位的四维空间bull 整个 UCS空间包含 128 个组( 0x00组 ~0x7F组)每组有 256 个平面( 0x00 平面 ~0xFF 平面)每个平面有 256 行每行又由 256 个字位构成

bull UCS共有( 128 times 256 = ) 32 768 个平面每个平面有( 256 times 256 = ) 65 536 个字位每个字位对应于一个字符的编码

bull 目前的编码只限于 00组已经定义的平面有 00组的00 平面mdashmdash称之为基本多文种平面 BMP ( Basic Multilingual Plane ) 及若干辅助平面

UCS 的全部编码空间

每个平面256times256 个

字位

00组 00 平面

00组 FF 平面

01组 00 平面

7F组 00 平面00

01组

7F组

UCS 的 00组

BMPbull BMP = Basic Multilingual Plane 基本多文种平面bull BMP 用作双八位编码字符集称之为 UCS-2 它被

分成四个区ndash A- 区(字位 0x0000~0x4DFF 有 19 903 个字位)用于

字母文字音节文字以及各种符号ndash I- 区(字位 0x4E00~0x9FFF 共 20 992 个字位)用于中日韩统一汉字( CJK )

ndash O- 区(字位 0xA000~0xDFFF 共 16 384 个字位)保留未来标准化用

ndash R- 区(字位 0xE000~0xFFFD 共 8 190 个字位)为 BMP 的限制使用区包括专用字符变形显现形式及兼容字符

BMP总貌

A-区

00~33 拼音文字(见下页)

34~3D 朝鲜文

3E~44 朝鲜文补充 -A

45~4D 朝鲜文补充 -B

I-区 4E~9F CJK统一汉字O-区 A0~DF

R-区

E0~F8 专用区

F9~FA CJK兼容汉字FB 拼音文字变形显现形式

FC~FD 阿拉伯文变形显现形式 -A

FE半形组合用标志

CJK兼容形式

小写变体

阿拉伯文变形显现形式 -B

FF 半形及全形字符 特殊字符

BMP 的0x00~0x33

行字母文字区

00 基本拉丁文 拉丁文-1补充

01 拉丁文扩充-A 拉丁文扩充-B

02 拉丁文扩充-B 国际音标扩充 进格修饰字符

03 组合用发音符 基本希腊文 希腊符号及哥普特文

04 西里尔文

05 美亚尼亚文 希伯来文(基本和扩充)

06 基本阿拉伯文 阿拉伯文扩充

07

08

09 梵文 孟加拉文

0A 锡克教文 古吉拉特文

0B 奥利雅文 泰米尔文

0C 泰卢固文 卡纳达文

0D 德拉维族文

0E 泰文 老挝文

0F

10 格鲁吉亚文

11 朝鲜文字母

12~1D

1E 拉丁文扩充增补

1F 希腊文扩充

20 广义标点 上下标 货币符号 符号组合用区分标志

21 类似字母的符号 数字形式 箭头

22 数学运算符

23 零杂技术用符号

24 控制图符 光学识别符 带括号的字母数字

25 制表符 方块元素 几何图形符

26 零杂符号

27 示意符等

28~2F

30 CJK符号和标点 平假名 片假名

31 注音 朝鲜文兼容字母 CJK零杂字符

32 带括号的CJK字母及月份

33 CJK兼容字符

留作将来标准化用

非图形字符

表示形式bull GB 13000提供了字符编码表示的两种替代使用的形式

ndash 双八位 BMP 形式( UCS-2 )mdashmdash允许使用 BMP 中的字符且每个字符用两个字节表示

ndash 肆八位正则形式( UCS-4 )mdashmdash允许使用 GB 13000 中的全部字符且每个字符用四个字节表示

bull 除了 UCS-24外还有另外两种变形的表示形式ndash UTF-8 (单字节 ~ 多字节)ndash UTF-16 (双字节和 4 字节与 UCS-2 等价)ndash 目前在工业上的实现均为 UTF-16 ( UCS-2 )和 UTF-8ndash UTF = Unicode UCS Transformation Format 统一码 UC

S转换格式bull 关于统一码我们会在下一小节详细介绍

7 GBK 与 GB 18030bull 由于 GB 13000 标准与 GB 2312 标准的字符编码不兼容作为过渡在国家信息技术标准化委员会的主持下制定了与 GB 2312兼容的《汉字内码扩展规范( GBK )》( K 为扩展的ldquo扩rdquo字的拼音首字母)并于 1995年 12月 15日由原国家技术监督局标准司联合原电子工业部科技与质量监督司作为指导性技术规范发布实施

bull 2000年 GBK又被国家标准 GB 18030-2000《信息技术 信息交换用汉字编码字符集 基本集的扩充》所代替该标准收汉字 2万 7千个

bull 与 GB 2312 一样 GB 18030 也为中国的强制性国家标准微软公司的 Windows XPVista78 中文版与苹果公司的 Mac OS X 和 iOS 谷歌公司的 Android (安卓)等操作系统已经全面支持 GBK

GB 18030 的码位范围分布

字节数 码位空间 码位数目

单字节 0x00~0x7F 128

双字节第 1字节 第 2字节

23 9400x81~0xFE

0x40~0x7E 0x80~0xFE

四字节第 1字节 第 2字节 第 3字节 第 4字节

1 587 6000x81~0xFE 0x30~0x39 0x81~0xFE 0x30~0x39

GB 18030的

总体结构图

收录字符bull 单字节部分mdashmdash收录了GBT 11383 的 0x00~0x7F 全部 128 个字符(似 ASCI

I )bull 双字节部分mdashmdash收录内容如下 (21 003 个汉字和 884 个符号共 21 887 个字符 )

ndash GB 130001-93 的全部 CJK 统一汉字字符 20 902 个( GB 2312 的编码汉字在双字节 2 区其他 CJK 统一汉字在双字节 34 区)

ndash GB 130001-93 的 CJK兼容区挑选出来的 21 个汉字ldquo郎凉秊helliphellip﨨﨩rdquo( 0xFD9C~0xFDA0 和 0xFE40~0xFE4F )

ndash GB 130001-93 中收录而 GB 2312未收录的台湾地区使用的图形字符 139 个ldquoˊˋ˙helliphelliprdquo( 0xA840~0xA895 和 0xA940~0XA988 )

ndash GB 130001-93收录的其他字符 31 ( 13)个(在双字节 5 区)ndash GB 2312-80 中的非汉字字符 682 个( 0xA1A1~0xA9EF )ndash GB 12345-90 的竖排标点符号 19 ( 29)个ldquo︵︶︹helliphellip︳︴rdquo( 0xA6D9~0xA6

F5 )ndash GB 2312-80未收录的 10 个小写罗马数字ldquoⅰⅱⅲhelliphellipⅸⅹrdquo( 0xA2A1~ 0xA2A

A )ndash GB 2312-80未收录的带音调的汉语拼音字母 5 ( 4)个ldquo ńňǹrdquo 以及 ɑ 和 ɡ ( 0

xA8BB~0xA8C0 )ndash 汉字数字零ldquo〇rdquo (0xA996) 和欧元符ldquoeurordquo (0xA2E3)ndash 表意文字描述符 13 个ldquohelliphelliprdquo( 0xA989~0xA995 )ndash 对 GB 130001-93增补的汉字和部首 构件 80 个ldquohelliphellip䶮rdquo( 0xFE50~ 0x

FEA0 )bull 四字节部分mdashmdash收录了上述双字节字符之外的包括 CJK 统一汉字扩充 A 在内

的 GB 130001-93 中的全部字符

GB 18030双字节部分的码位安排

类别 区名 码位范围 码位数 字符数 内容

符号区双字节 1区 A1A1~A9FE 846 718

GB 2312非汉字字符等

双字节 5区 A840~A9A0 192 166 台湾图符等

汉字区双字节 2区 B0A1~F7FE 6768 6763 GB 2312汉字双字节 3区 8140~A0FE 6080 6080 CJK统一汉字双字节 4区 AA40~FEA0 8160 8160 CJK统一汉字等

用户自定义区双字节用户区 1 AAA1~AFFE 564

用户自定义字符双字节用户区 2 F8A1~FEFE 658

双字节用户区 3 A140~A7A0 672

GB 18030双字节部分的编码空间结构图 尾字节

0x40larr――rarr0x7E 0x80larr――rarr0xA0 0xA1larr――――――――――――rarr0xFE

0x81 uarr darr

0xA0

0xA1 uarr darr

0xA7

0xA8 0xA9

首字节

0xAA uarr | | | | | | | | | | darr

0xFE

双字节 3区

汉字区6 080个码位

双字节用户区 3

用户自定义区672个码位

双字节 5区 图形符号区192个码位

双字节 4区

汉字区8 160个码位

双字节 1区

图形符号区564个码位

双字节 2区

汉字区6 768个码位

双字节用户区 1 用户自定义区564个码位

双字节用户区 2 用户自定义区658个码位

223 国际通用字符编码

bull Unicode (统一码)是由多语言软件制造商组成的统一码协会( httpwwwUnicodeorg)所制定一种国际字符的编码标准

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull 本节主要介绍这两种关系密切的主流国际字符编码标准的来历编码方案各自特点与相互关系

1 Unicode 统一码bull 发展历史

ndash 1987年施乐( Xerox )公司的 Joe Becker 与 Lee Collins 和苹果( Apple )公司的 Mark Davis 等人开始讨论统一编码 1987年 12月 Joe Becker造词 Unicode (统一码)含义为ldquo unique universal and uniform character encodingrdquo (单一通用统一的字符编码) 1989年 2月开始定期召开统一码会议 1989年 9月公布 Unicode草案

ndash 1991年 1月 3 日由 Xerox Apple Sun IBM Aldis Microsoft 等公司出资在美国加州成立了统一码协会( Unicode Consortium )并由协会设立非盈利性的统一码公司( Unicode Inc )后来 HP Adobe Borland Digital Lotus Novell 等公司也纷纷加入 1991年 1月成立统一码技术委员会 UTC 并制定了其规程

ndash 1991年 2月在 Ed Hart 的推动下进行了ldquo统一码对 10464 国际标准草案 1rdquo 的对话Unicode 与 ISOIEC 10646开始走向融合

ndash 1991年 8月发布 Unicode 标准 10版的第 1卷(体系结构非表意字符) 1992年6月发表 Unicode 10版的第 2卷(表意字符) 1993年 6月发布 Unicode 11版与 1993年 5月公布的 ISOIEC 10646-11993 实现了合并

ndash 1996年 7月发布 Unicode 20版ndash 1999年 9月发布 Unicode 30版ndash 2003年 4月发布 Unicode 40版(对应于 ISOIEC 106462003 ) 2004年 3月 31日发布 Unicode 401版 2005年 3月 31日发布 Unicode 410版

ndash 2006年 7月 14日发布 Unicode 50版 2008年 4月 4日发布 Unicode 51版 2009年 12月 22日发布 Unicode 52版

ndash 2010年 10月发布 Unicode 60版 2012年 1月发布 Unicode 61版(对应于 ISOIEC 106462012 ) 2012年 9月推出 Unicode 62版 2013年 9月推出 Unicode 63版

ndash 2014年 6月 16日发布 Unicode 70版 ndash 2015年 6月 17日发布 Unicode 80版

字符集bull Unicode 字符集的空间分成双字节的基本多语言平面 (Basic Multilingual Pla

ne BMP) 和 4 字节的辅助多语言平面 (Supplementary Multilingual Plane SMP) 两种

bull BMPndash Unicode 的基本平面或基本多语言平面 BMP 对应于 ISOIEC 10646-1 的第 00组的 00 平面( BMP )即 Unicode 与 ISOIEC 10646 的 BMP 中的字符编码完全一致

bull SMPndash 鉴于 Unicode 原有的 16位元空间不足以应用从 Unicode 31版本开始设立了 16 个辅助平面使 Unicode 的可使用空间由六万多字增至约一百万字

ndash 原有的 Unicode双字节空间称为基本平面或基本多语言平面 BMP 辅助多语言平面 SMP 字符要用 4 字节来储存

ndash 第一辅助平面摆放拼音文字(主要为现时已不再使用的文字)及符号范围在 U+10000 - U+1FFFD

ndash 第二辅助平面又称为表意文字补充平面 (Supplementary Ideographic Plane 简称 SIP) 现时摆放ldquo中日韩统汉字扩展 B 区rdquo共 43253 个汉字范围在 U+20000 - U+2FFFD

ndash 第三至十三辅助平面尚未使用ndash 第十四辅助平面又称为特殊用途补充平面 (Supplementary Special-purpose Pl

ane 简称 SSP) 摆放 Language tags 和 Variation Selectors 它们都是控制字符范围在 U+E0000 - U+E01FF

ndash 第十五至十六辅助平面都是私人使用区它们的范围是 U+F0000 - U+FFFFD 及 U+100000 - U+1000FD

bull Unicode 字符集的具体编码方式参加第 4小节ldquo 4 UTFrdquo

2 ISOIEC 10646

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull ISOIEC 10646 标准由 ISO 与 IEC 联合成立的 ISOIEC JTC1SC2WG2 制定ndash JTC 1 ( Joint Technical Committee 1 on Information

technology ISOIEC信息技术联合技术委员会 1 )负责信息技术方面标准的制定工作

ndash SC 2 ( SubCommittee 2 on Coded character sets 编码字符集分会 2 )下的 WG 2 ( Working Group 2 on Universal coded character set 通用编码字符集工作组 2 )负责制定国际通用字符编码标准即后来公布的 ISOIEC 10646

发展历史bull 1984年 ISO 的一些会员国发起制定新的国际字符编码标准同年 4月 ISO

与 IEC 联合成立 ISOIEC JTC1SC2WG2 1987年 3月制定出编码架构1992年 6月投票通过第二版国际标准草案

bull 1993年 5月推出 10646 标准时将内容分成两个部分标准首先发布的是其中的第 1 个部分(体系结构与基本多文种平面)的第 1版( Edition 1 ) ISOIEC 10646-11993 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane(信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

bull 2000年 3月推出 10646 标准第一个部分的第 2版( Edition 2 ) ISOIEC 10646-12000 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane

bull 2001年 10月推出 10646 标准第 2版的第二个部分(辅助平面)的第 1版( Edition 1 ) ISOIEC 10646-22001 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 2 Supplementary Planes

bull 2003年 10月推出的 10646新标准(第 1版 Edition 1 )将老标准中的两个部分标准合并成了一个单一的标准 ISOIEC 106462003 Information technology -- Universal Multiple- Octet Coded Character Set (UCS) 后来又于 2010年 2012年和 2014年分别推出了 ISOIEC 106462010 (第 2版)ISOIEC 106462012 (第 3版)和 ISOIEC 106462014 (第 4版)

UCS 通用字符集bull 通用字符集( Universal Character Set UCS )是

ISOIEC 10646 标准所定义的字符编码方式采用 4字节编码又称为 Universal Multiple-Octet Coded Character Set (通用多八位编码字符集)

bull 通用字符集是所有包括了其他字符集它保证了与其他字符集的双向兼容即如果你将任何文本字符串翻译到 UCS 格式然后再翻译回原编码你不会丢失任何信息

bull UCS 包含了已知语言的所有字符除了拉丁语希腊语斯拉夫语希伯来语阿拉伯语亚美尼亚语格鲁吉亚语还包括中文日文韩文这样的象形文字 UCS 还包括大量的图形印刷数学科学符号

名字与组合字符bull UCS 不仅给每个字符分配一个代码而且赋予了

一个正式的名字表示一个 UCS 或 Unicode值的十六进制数通常在前面加上ldquo U+rdquo 例如ldquo U+0041rdquo代表字符ldquo Ardquo

bull UCS里有些编码点分配给了组合字符组合字符机制允许在任何字符后加上重音符或其他指示标记 这在科学符号中特别有用 比如数学方程式和国际音标字母 可能会需要在一个基本字符后组合上一个或多个指示标记

实现级别bull 并不是所有的系统都需要支持像组合字符这样的的先进

机制因此 ISO 10646 指定了如下三种实现级别ndash 级别 1不支持组合字符和韩语 Hangul Jamo 字符 ( 一种特

别的 更加复杂的韩国文的编码 使用两个或三个子字符来编码一个韩文音节 )

ndash 级别 2类似于级别 1 但在某些文字中允许一列固定的组合字符 (例如 希伯来文 阿拉伯文 Devangari 孟加拉语 果鲁穆奇语 Gujarati Oriya 泰米尔语 Telugo 印 埃纳德语 Malayalam 泰国语和老挝语 ) 因为如果没有最起码的几个组合字符 UCS就不能完整地表达这些语言

ndash 级别 3支持所有的 UCS 字符如可以在任意一个字符上加上一个箭头或 和一个 tilde(颚化符号即字母上面的~ )

编码方式bull UCS 有如下两种编码方式

ndash UCS-2与 Unicode 的 2 字节编码基本一样ndash UCS-4 4 字节编码目前是在 UCS-2 前加

上 2 个全零的字节bull UCS 还有 UTF 编码方式参见下面第 4小节ldquo 4 UTFrdquo

3 Unicode 与 ISOIEC 10646bull 关系

ndash 历史上存在两个独立的尝试创立单一字符集的组织即国际标准化组织( ISO )和多语言软件制造商组成的统一码协会组织( Unicodeorg )前者开发的 ISO 10646项目后者开发的 Unicode项目因此最初制定了不同的标准

ndash 1991年前后两个项目的参与者都认识到世界不需要两个不兼容的字符集于是它们开始合并双方的工作成果并为创立一个单一编码表而协同工作

ndash 从 Unicode20开始 Unicode采用了与 ISO 10646-1相同的字库和字码 ISO 也承诺 ISO10646 将不会替超出 U+10FFFF 的 UCS-4 编码赋值以使得两者保持一致

ndash 两个项目仍都存在并独立地公布各自的标准但 Unicode协会和 ISOIEC JTC1SC2 都同意保持两者标准的码表兼容并紧密地共同调整任何未来的扩展

异同bull Unicode协会公布的 Unicode 标准包含了 ISO 10646-1 实现级别

3 的基本多文种平面在两个标准里所有的字符都在相同的位置并且有相同的名字

bull ISO 10646 标准就像 ISO 8859 标准一样只不过是一个简单的字符集表它定义了一些编码的别名指定了一些与标准有关的术语并包括了规范说明指定了怎样使用 UCS连接其他 ISO 标准的实现等

bull Unicode 标准额外定义了许多与字符有关的语义符号学并详细说明了绘制某些语言(如阿拉伯语)表达形式的算法处理双向文字(比如拉丁文和希伯来文的混合文字)的算法排序与字符串比较所需的算法等等

bull 考虑到 Unicode 标准有一个易记的名字既便宜又包括更多的辅助信息因而它使用得更广泛然而

bull 一般认为用于打印 ISO 10646-1 标准的字体在某些方面的质量要高于用于打印 Unicode 20 的专业字体设计者总是被建议说要两个标准都实现但一些提供的样例字形有显著的区别 ISO 10646-1 标准同样使用四种不同的风格变体来显示表意文字如中文日文和韩文 (CJK) 而 Unicode 20 的表里只有中文的变体

4 UTFbull Unicode 和 UCS 都是一个字符集可以看作为内码bull UTF ( UnicodeUCS Transformation Format 统一码

通用字符集转换格式)是一种编码方式它的出现是因为 Unicode 和 UCS 不适宜在某些场合直接传输和处理

bull UCS 和 Unicode 只是分配整数给字符的编码表现在存在好几种将一串字符表示为一串字节的方法(如高或低位字节在前)

bull 最显而易见的两种方法是将 UCS 和 Unicode 文本存储为 2 个 或 4 个字节序列的串这两种方法的正式名称分别为 UCS-2 和 UCS-4

bull 常用的 UTF具体编码方式有 UTF-8 UTF-16 和 UTF-32

UTF-8

bull UTF-8 是 UTF 的一种具体编码方式在 ISO 10646-1 的附录 R 和 IETF 的 RFC 2279 里定义

bull 由于要使文档中的文字与 ASCII兼容故 UTF-8 选择了使用可变长度字节来储存 Unicode 和 UCS 例如ndash ASCII 字母继续使用 1 字节储存ndash 重音文字希腊字母或西里尔字母等使用 2 字节来储存ndash 常用的汉字就要使用 3 字节ndash 辅助平面字符则使用 4 字节ndash 即 ASCII 不作变换其他字符做变长编码每个字符 1~4 字节

bull UTF-8 通常作为外码bull 在 UTF-8 文件的开首很多时都放置一个 U+FEFF 字符

(UTF-8 以 EF BB BF 代表 ) 以显示这个文字档案是以UTF-8 编码

UTF-8 的优点bull 与 CPU 字节顺序无关可以在不同平台之间交流

bull 容错能力高任何一个字节损坏后最多只会导致一个编码码位损失不会链锁错误 ( 如 GB 码错一个字节就会整行乱码 )

UTF-8 的缺点bull UTF-8 使用可变长度字节储存使计算机程序设计变得复杂 (故此在计算机程序或操作系统内部多采用 UCS-2 编码 )

bull 在旧式的中文日文及朝鲜文编码之中每字符都使用 2 字节储存而 UTF-8 须使用 3 字节 (采用 UTF-16 编码则可只使用 2字节储存 )

bull 泰语以往使用的 ISO 8859-11 每字符只使用 1 字节储存而 UTF-8 须使用 3 字节

UTF-8储存的多字节串字符bull U-00000000 - U-0000007F 0xxxxxxx bull U-00000080 - U-000007FF 110xxxxx 10xxxxxx

bull U-00000800 - U-0000FFFF 1110xxxx 10xxxxxx

10xxxxxx bull U-00010000 - U-001FFFFF 11110xxx 10xxxxx

x 10xxxxxx 10xxxxxx bull 在多字节串中第一个字节的开头ldquo 1rdquo 的数目就

是整个串中字节的数目bull 每个使用 UTF-8储存的字符除了第一个字节外其余字节的头两个位元都是以 10 开始使文字处理器能够较快地找出每个字符的开始位置

UTF-16bull UTF-16 是 UTF 的另一种具体编码方式在 ISO 1064

6-1 的附录 Q 和 IETF 的 RFC 2781 里定义bull UTF-16 是变长码( 2 或 4 字节)大致相当于 20位编码值在 0 到 0x10FFFF 之间基本上就是 Unicode 编码的实现 UTF-16 与 CPU 字序有关但因为最省空间常作为网络传输的外码 UTF-16 是 Unicode 的完美编码

bull lt0x10000 的直接用其对应的 16位整数编码位于 0x10000 ~ 0x10FFFF 之间的用 0xD800~0xDBFF 的 16位整数后跟 0xDC00~0xDFFF 的 16位整数的 4 字节编码 gt 0x10FFFF 的不能用 UTF-16 表示

bull 在 Unicode 的 BMP 中定义的字符(无论是拉丁字母汉字或其他文字或符号)一律使用 2 字节存储而在辅助平面定义的字符则以两个 2 字节的值来存储

UTF-16 的特点bull UTF-16比起 UTF-8 的好处在于大部分字符都以固定长

度的 2 字节存储但 UTF-16却无法相容于 ASCII 编码bull UTF-16 有两种编码模式即大尾序( big Endian 高位字节在前)和小尾序( little Endian 高位字节在后)储存形式(一般來說以 Macintosh 制作和存储的文字使用大尾序格式以 Microsoft 或 Linux 制作和存储的文字使用小尾序格式)

bull 为了弄区分 UTF-16 文件的大小尾序在 UTF-16 文件的开头都会放置一个 U+FEFF 字符作为字节顺序标记 (UTF-16LE 以 FF FE代表 UTF-16BE 以 FE FF代表 ) 以显示该文档是以 UTF-16 编码的

UTF-32

bull UTF-32 仅使用了 Unicode范围 (0 到 0x10FFFF) 的 32位编码相当于 UCS-4 的子集

bull 由于 Unicode 和 ISOIEC 10646 的编码和结构与前面讲过的 GB 13000 类似或等价这里就不再做详细的介绍

5支持bull 现在 UnicodeUCS 已经获得了十分广泛的支

持ndash网络与浏览器(如 HTML 4050 XML 与 IE

Safari Netscape Firefox Chrome Opera Edge 等)

ndash操作系统(如 Windows NT2000XPVista7810 Mac OS X iOS Android和 Linux )

ndash 编程语言新版本(如 CC++JavaObjective-CC Swift 等)

Unicode 代码的浏览器显示代码 字符标准名称 (英语 )

浏览器的显示

amp65 大写拉丁字母 A A

amp223 小写拉丁字母 Sharp S szlig

amp254 小写拉丁字母 Thorn thorn

amp916 大写希腊字母 Delta Δ

amp1049 大写斯拉夫字母 Short I Й

amp1511 希伯来字母 Qof ק

amp1605 阿拉伯字母 Meem م

amp3671 泰文数字 7 ๗amp4688 埃塞俄比亚音节文字 Qha ቐ

amp12354 日语平假名 A あamp12450 日语片假名 A アamp21494 简体汉字 叶 叶amp33865 繁体汉字 葉 葉amp50685 韩国音节文字 Yeob 엽

23 文字输出bull 文字输出是指将计算机内的字符编码通过计算机的输出设备(如显示器打印机喇叭)展现出所对应字符的图形或声音供人们阅读或聆听

bull 本节主要介绍文字图示输出的字形技术bull 文字声音输出属于语音合成只在本节的末尾作简单的介绍

231 字形技术bull 文字 = 图形bull 不论是象形文字中的单字还是拼音文字

中的字母都是用图形来表示的bull 在计算机里文字的表示 输出(显示和打

印)涉及ndash 字型ndash 字体ndash 字库

1字型bull 字型指构造和生成字形的方法一般可分为

ndash 点阵字 DOS 显卡 ROM 金山 科印特点似位图显示快占空间(字库大)放大后有马赛克效应

bull 显示字母 88 汉字 1616bull 打印 2424 4848 6464

ndash 矢量字单线条用于笔式绘图仪特点字库小算法简单难看

ndash 轮廓字用曲线描绘字的轮廓输出效果好所见即所得(WYSWYG) 可无级放大易实现空心 阴影 填充 变形等各种特效功能轮廓曲线一般采用样条曲线如 TrueType (Apple 1991 Mac OS Microsoft 1992 Windows 31)用的是二次 B 样条 Bezier曲线中文之星 RichWin采用的是三次 B 样条 Bezier曲线

字型种类

2字体bull 字体指字的形状风格如

ndash 汉字的

ndash 英文的

宋体楷体黑体仿宋

行楷隶书新魏幼圆

Times New Roman Arial Narrow Courier New

常用汉字字体bull 宋体mdashmdash宋体来自于北宋时雕版刻书所采用的欧体字(唐朝欧阳询体)宋体字的横顿拉捺挑钩别具特色间架平正疏密适中字体秀丽遒劲但笔画横细竖粗适合于刀刻不宜于手写现在宋体广泛用于印刷常来表现文档的正文

bull 仿宋体mdashmdash 1920年钱塘的丁辅之与丁善之等人将明代以后盛行的方廓形字体加以改造创造出长形和方形的聚珍仿宋后来演化为现在的仿宋体仿宋体比较接近于手写体为宋体和楷体的折中是采用的宋体的结构和楷体的笔法而成现常来表现打印文件以及文档的摘要和注释等

bull 黑体mdashmdash黑体是适应工艺美术的发展而出现的一种等线体是从日本引进的黑体的结构与宋体没有什么差别只是其笔画粗细一致健实粗壮主要用于文档的标题和重点及标语广告等方面

bull 楷体mdashmdash楷体源于楷书楷体的笔画圆浑笔调灵活结构端正美观但不宜于木板雕刻所以直到清末西洋的石板印刷术传入后才开始广泛用于印刷现代的楷体创造于 20世纪的二三十年代主要用于文档的正文(多用于中小学教材)也可用于工艺美术等方面

3字库bull 字库为一种文字的某一字体的所有字符的集合一般存放在一个磁盘文件中

bull 由于象形文字中单字的数量大(成千上万)而拼音文字中字母的数量小(不到一百个)所以字库的大小有很大的差别

bull 为了使文档界面丰富多彩常见的字处理软件都支持多种字体带有众多字库

4点阵字型的国家标准bull 我国已经公布了若干字体的点阵字型之国家标准

ndash GB 50071-19852001 信息技术 汉字编码字符集(基本集) 24 点阵字型

ndash GB 50072-19852001 信息技术 汉字编码字符集(辅助集) 24 点阵字型

ndash GB 5199-19862001 信息技术 汉字编码字符集(基本集) 16 点阵字型 宋体

ndash GB 6345-19862001 信息技术 汉字编码字符集(基本集) 32 点阵字型 宋体

ndash GB 12041-2001 信息技术 汉字编码字符集(基本集) 48点阵字型 宋体

ndash GB 17698-1999 信息技术 通用多八位编码字符集( I 区) 汉字 16 点阵字型

232 语音合成bull 文字的声音输出主要使用的是语音合成的技术bull 语音合成功能是ldquo文rarr语rdquo转换bull 文语转换 TTS (Text-To-Speech) 是将文本形式的信息转换成自然语音的一种技术其最终目标是使计算机输出清晰而又自然的声音

bull 英语的语音合成在上世纪 80年代就早已成熟而中文 汉语的合成现在也趋于成熟并有了广泛的应用(如汽车导航仪智能手机等)

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 5: 第一篇  媒体

21 文字输入bull 将文字录入进计算机的方法主要有键盘输

入手写输入语音输入和扫描识别输入bull 键盘输入是传统和主要的文字录入手段bull 随着计算机技术的发展方便和快速的手

写与语音输入成为解决文字输入瓶颈的有效途径

bull 扫描输入主要应用在印刷品的大量文字自动录入方面

211 键盘输入bull 计算机的通用键盘源自传统的打字机本身是

为英文字母的键入而设计的非常适合于拼音文字的字母输入而像汉字这样的象形文字用键盘输入则十分困难

bull 汉字的三个要素是形音义汉字的编码输入主要可以分为形码(如五笔字型)和音码(如全拼)两大类各种形码和音码输入法可以结合汉字的词义与语义特性进行词汇与整句等智能化的输入(如微软拼音输入法)

212 手写输入bull 随着各种手持设备(如平板电脑智能手

机)的不断出现与普遍使用联机手写文字的实时识别与输入方法已经得到越来越广泛的应用

bull 手写输入是指人用手指或(特制的)笔在图形板上书写机器进行实时的识别并将对应文字的编码输入

bull 汉字的联机手写输入是自动汉字识别中最简单的一种

特点

bull 机器识别的是笔画而不是整字bull 识别结果可以及时反馈所以对识别率要

求不高bull 输入方便不需对输入人员进行培训bull 适合于边想边写bull 可利用图形板方便地进行编辑和修改

技术bull 人写字时手的抖动书写速度的变化图形板的

量化和感应噪声等会对识别产生干扰因此必须进行必要的平滑和去噪预处理

bull 识别时还需进行字符分割以区分哪些笔画属于同一汉字

bull 手写输入在技术涉及图像识别模式匹配人工智能语言文字书写方式与习惯等方面的知识和方法

bull 目前的手写识别方法和技术还有待于进一步改进和完善以提高识别率减少对输入的限制降低输入设备和识别软件的成本加强软件的自学习功能

213 语音输入bull 语音输入是指利用语音内容的识别技术

将人的话音实时转换为对应文字编码并录入计算机

bull 语音输入的核心技术是语音识别技术bull 语音识别技术现在正在发展过程中还

有待于进一步完善

语音识别技术bull 早期的语音识别技术一直很落后到上世纪 70年代中采

用线性预测编码 LPC 和同态信号处理 (homomorphic signal process) 方法技术有了长足的进步但效果不理想到了上世纪 80年代矢量量化 (VQ Vector Quantization) 和隐马尔科夫模型 (HMM Hidden Markov Model) 的成功使用使语音识别在上世纪 90年代达到了商用化程度不过仍然存在问题识别率一直难以进一步提高又进入了相对低潮的相持阶段2011年 10月 14日苹果公司推出的 iPhone 4S 手机支持智能语音指令输入虽然还存在不少问题但是却引发了业界对语音输入研究和应用的新热潮

bull 语音输入的字词识别涉及词库声母分类规则库声母与韵母结合规则库声调知识库这些统称为声学基元模型库句子识别还涉及语义语法句法语用知识库这些统称为语言模型库句子理解则涉及常识库(难)

语音识别的过程图语音输入

darr数据采集

darr波形自动分析

darr预处理 参数特征提取

分帧后的语音特征矢量集合rarrdarr 声学模型 时间对准larr声学基元模型库

darr 语言模型库rarr 组句分析 larr统计信息与规则

语句候选rarrdarr识别语句输出

语音识别系统分类bull 按可识别词汇量可分为

ndash 小词汇量语音识别系统 (lt100)ndash 中词汇量语音识别系统 (100~1000)ndash 大词汇量语音识别系统 (gt1000)

bull 按语音输入方式可分为ndash 孤立词语音识别系统(简单)ndash 连接词语音识别系统(较难)ndash 连续语音语音识别系统(难)

bull 按发言人类型可分为ndash 特定人( 1 人)ndash 限定人( n 人)ndash 非特定人(任意人)

语音识别的目标是开发大词汇量非特定人的连续语音识别系统

214 扫描输入bull 扫描输入是指将图书期刊打印材料和印刷

品中的印刷体文字先通过扫描仪变成计算机中的数字图像然后再利用文字识别软件 OCR 自动转换成对应得文字编码并录入计算机

bull 目前我国研制的多种 OCR 软件的识别率已经达到 95 以上不过受印刷品质量的影响比较大

bull OCR = Optical Character Recognition Reader 光学字符识别 阅读器

bull 计算机识别印刷汉字的核心问题是抓住汉字的字形特征它主要体现在笔画和关键点上

bull 另一个核心问题是版面的分析与理解包括从图文混排版面中自动排除图形部分自动区分横排和竖排自动识别标题和正文对分栏文本实现自动对接等

bull 扫描输入方法除了用于印刷体文字的识别和输入外也可以用于手写体印刷文字的输入其文字识别的方法与印刷体文字类似也与手写实时输入的方法相关不过失去了笔顺信息属于整字识别类型

22 字符编码bull 字符编码包括西文编码中文编码和国际通

用字符编码本节的重点放在常用的编码标准上

bull 221 西文编码( ASCII 等)bull 222 中文编码( GB 2312 GB 13000

GBKGB 18030 )bull 223 国际通用字符编码( Unicode IS

OIEC 10646 )

221 西文编码bull 西文编码主要介绍 ASCII 字符集然后简

单介绍 IBM公司的 EBCDIC 和两种扩展 ASCII 显示字符表

bull 1 ASCII

bull 2 EBCDIC

bull 3扩展 ASCII 显示字符

1 ASCII

bull ASCII ( American Standard Code for Information Interchange 美国信息交换标准码)是 ANSI于 1963年提出 1968年确定的一种英文字符编码标准( ANSI X34-1986 )广泛应用于计算机网络和信息产业

bull ANSI = American National Standards Institute 美国国家标准协会

bull ASCII采用 7位二进制数的(共计 128 个)代码来表示字符(包括图示符和控制符)加上奇偶校验位(或最高位置 0 )则每个字符由 8位(一个字节)组成

ASCII 字符集

0 1 2 3 4 5 6 7

0 NUL DLE SP 0 P ` p

1 SOH DC1 1 A Q a q

2 STX DC2 ldquo 2 B R b r

3 ETX DC3 3 C S c s

4 EOT DC4 $ 4 D T d t

5 ENQ NAK 5 E U e u

6 ACK SYN amp 6 F V f v

7 BEL ETB lsquo 7 G W g w

8 BS CAN ( 8 H X h x

9 HT EM ) 9 I Y i y

A LF SUB J Z j z

B VT ESC + K [ k

C FF FS lt L l |

D CR GS - = M ] m

E SO RS gt N ^ n ~

F SI US O _ o DEL

bull ASCII 字符集以 32 个字符为一组bull 第一组( 0x00~0x1F )为控制符

(非打印符)用于数据处理 通信系统及其相应设备中的信息交换

bull 后面的除了第一个字符( SP空格符 0x20 )和最后一个字符( DEL删除符 0x7F )外全都是可打印(显示)的图示符包括ndash 第二组( 0x20 ~0x6F )的数字空格

和常用标点符号ndash 第三组( 0x40~0x5F )的大写拉丁字

母(即英文字母)与少数标点符号ndash 第四组( 0x60~0x7F )的小写拉丁字

母与少数标点符号

ASCII 的国际标准bull 1972年美国的国家标准 ASCII 与其若干拉丁语系国家的变体一起成为国际标准 ISO 6461972 ( Information processing -- ISO 7-bit coded character set for information interchange 信息处理mdashmdash ISO 用于信息交换的七位编码字符集)

bull 这些变体主要是将 ASCII 字符集中不常用的符号ldquo $ [ ] ^ ` | ~rdquo替换为他们各自语言的重音符号

bull 1987年 ISO 646 中的 ASCII部分成为 646 的国际参考版( IRV = International Reference Version ) ISO 646IRV1987 但是其中的美元符 $被替换为国际通用货币符 curren

bull 1991年推出的修订版 ISOIEC 646IRV1991 还原成原始的美国 ASCII 所以又被称为 ISO 646-US 或 US-ASCII

替代标准bull 由于 ISO 646 中各国的变体存在明显的兼容和统一问题现在已经作废

bull 有关编码已经被新的国际标准 ISOIEC 8859-1~16 19871998 ( Information processingtechnology -- 8-bit single-byte coded graphic character sets 信息处理 技术mdashmdash 8位单字节编码的图形字符集)所替代

bull 后来 ISO 646 与 ISOIEC 8859 标准又都被纳入 ISOIEC 1064619932003 ( Information technology -- Universal Multiple-Octet Coded Character Set (UCS) 信息技术mdashmdash通用多八位编码字符集 (UCS) )标准之中

bull 其中的标准编号 ISO 10646 = ISO 646 + 10000

标准化组织bull ANSI = American National Standards Institute 美

国国家标准协会bull ISO = International Organization for Standardization

国际标准化组织是由 153 个国家的国家标准协会联合组成的一个非政府国际组织总部(中央秘书处)设在瑞士的日内瓦负责制定适应商业和广泛社会需要的各种国际标准网址为 httpwwwisoorg

bull IEC = International Electrotechnical Commission 国际电工技术委员会是一个成立于 1906年 6月的国际标准化权威组织属于联合国的甲级咨询机构负责制定关于电工电子各方面的标准有 42 个会员国总部也设在瑞士的日内瓦网址为httpwwwiecch我国于 1958年 8月参加

2 EBCDIC

bull 西文的字符编码方案除了通用的 ASCII外还有 IBM公司于 1960年代初提出的 EBCDIC ( Extended Binary-Coded Decimal Interchange Code扩充的二进制编码的十进制交换码)

bull EBCDIC 现在仍然(仅)在 IBM 的 OS390 与 TPF 以及富士通 - 西门子的 BS2000OSD 等大型机的操作系统中使用

bull EBCDIC 是一种八位编码其字符的编码方案与ASCII 的完全不同

EBCDIC 字符集 0 1 2 3 4 5 6 7 8 9 A B C D E F

0 NUL DLE DS SP amp - 0

1 SOH DC1 SOS a j ~ A J 1

2 STX DC2 FS SYN b k s B K S 2

3 ETX TM c l t C L T 3

4 PF RES BYP PN d m u D M U 4

5 HT NL LF RS e n v E N V 5

6 LC BS ETB UC f o w F O W 6

7 DEL IL ESC EOT g p x G P X 7

8 GE CAN h q y H Q Y 8

9 RLF EM ` i r z I R Z 9

A SMM CC SM cent | |

B VT CU1 CU2 CU3 $

C FF IFS DC4 gt

D CR IGS ENQ NAK ( ) _ lsquo

E SO IRS ACK + lt =

F SI IUS BEL SUB | ldquo EO

3扩展 ASCII 显示字符bull ( 1 ) IBM PC

ndash IBM PC 的扩展 ASCII 显示字符由 IBM公司为其 PC 机制定可以由原始的 IBM PC 显示器在 DOS状态下显示

bull ( 2 ) Microsoft Windows ndash Microsoft Windows 的扩展 ASCII 显示字符由

微软公司为其Windows操作系统制定可以在Windows环境的西文状态下被显示

IBM PC 的扩展 ASCII 显示字符表

Microsoft Windows 的扩展 ASCII 显示字符表

222 中文编码bull 1 GB 1988 与 GB 2311

bull 2 GB 2312

bull 3汉字编码的辅助集bull 4 Big5

bull 5少数民族文字编码bull 6 GB 13000

bull 7 GBK 与 GB 18030

汉字编码bull 为了计算机处理汉字必须先对汉字进行编码由于汉

字数量大(《康熙字典》收字 47 035 个《汉语大字典》收字 54 678 个据统计在形成楷体后出现的汉字约有 9万个左右)显然不能像 ASCII那样用 7位或单字节来进行编码至少需要两个字节(最多可表示 6万5千多个字符)

bull 1980年我国制定了著名的 GB 2312-80双字节汉字编码标准(其中 GB 为ldquo国标rdquo这两个汉字的拼音首字母)收汉字 6 763 个

bull 1993年底又推出了等同于国际通用字符编码标准 ISOIEC 106461-1993 的国家标准 GB 130001-93 收汉字 20 902 个

bull 由于 GB 13000 与 GB 2312 的编码不兼容作为过渡2000年又公布了 GB 18030-2000 ( GBK )收汉字2万 7千个

1 GB 1988 与 GB 2311

bull 为了能够同时表示和处理汉字和英文实现中外文混排汉字编码必须兼容通用的 ASCII 编码因此1980年我国制定了与国际标准 ISO 6461972 (即ASCII )对应的国家标准 GB 1988-80《信息处理交换用的七位编码字符集》

bull 汉字成千上万不可能像 ASCII 一样只用单字节的七位来表示必须扩展到八位和多字节但是不能随意扩充而应该符合国际规范因此我国于 1980年又制定了与七位代码扩充到八位编码的国际标准 ISO 2022兼容的国家标准 GB 2311-80《信息处理交换用七位编码字符集的扩充办法》

GB 1988-80 ( ASCII )的代码结构图

行 0 1 2 3 4 5 6 7

0 SP

1 helliphellip

15

16

32个

控制符

94个

图形字符

DEL

GB 2311-80 的八位编码结构图列

行 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0 SP 100

1

helliphellip

14

15

C0

32个

控制符

GL

94或 96个

图形字符

DEL

C1

32个

控制符

GR

94或 96个

图形字符

1515

2 GB 2312

bull GB 2312-80《信息交换用汉字编码字符集 middot基本集》是我国制定的一个使用最广泛的汉字编码的强制性国家标准由原第四机械工业部的华北计算机研究所(后改名为电子工业部第十五研究所)起草1980年批准 1981年 5月 1日起实施

bull GB 2312-80 是在已有的国家标准 GB 1988-80(对应于 ISO 646 )和 GB 2311-80 (对应于 ISO 2022 )的基础上制定的采用与 ISO 2022兼容的GB 2311 之 7位到八位的代码扩充办法用双字节编码表示汉字与 ASCII兼容

收录的字符bull GB 2312 对应的是汉字的基本集共收汉字 6 763 个

可达到 9999 的使用频率因此除了极少数生僻的人名地名和古文外 GB 2312 中的汉字已经能基本满足平时的使用了

bull 除了汉字外 GB 2312 还收录了 682 个非汉字图形符号包括 202 个一般符号(含间隔符标点运算符和制表符) 60 个序号符 22 个数字符 52 个英文字母 169 个日文假名 48 个希腊字母 66 个俄文字母 26 个汉语拼音符号和 37 个汉语注音字母

bull 所以在 GB 2312-80 标准中共收录了( 6 763 汉字 + 682 非汉字图符 = ) 7 445 图形字符

两级汉字bull GB 2312 将其收录的六千多个汉字分成两个级别bull 一级汉字有 3 755 个都为使用频率高的常用汉

字为便于检索像字典那样将这些汉字按拼音字母顺序排列(同音字再按笔顺的横竖撇捺点折序排列)

bull 二级汉字有 3 008 个大部分较生僻不易掌握读音所以按部首顺序排列(同部首的字按笔画数排列同笔画数的字再按笔顺排列)

编码方案bull GB 2312 对所有图形字符(包括汉字和非汉字图符)都采用两个字节表示每个字节的低七位用于编码最高位全为 1 这样可以兼容 ASCII 编码(字节的最高位全为 0 )

bull 虽然在一个字节中最高位为 1 的符号位置有 128 个但从前面 GB 2311 的分析可知为了与 ASCII 的代码结构兼容保留了( 32 + 2 = ) 34 个控制符位置最后只有( 128 ndash 34 = ) 94 个符号位可供图形字符编码使用

bull 图形字符在代码表中的位置用区位码表示将码表分成94 个区对应于编码的第一个字节取值 0x21~0x7E 每个区又分成 94 个位对应于编码的第二个字节取值 0x21~0x7E (参见表 2-6 )

bull 例如ldquo中山大学rdquo的编码为中 (0xD6D0) 山 (0xC9BD) 大 (0xB4F3) 学 (0xD1A7)

GB 2312-80 字符集结构 20 21 22 helliphellip 7D 7E 7F

位号

区号

1 2 helliphellip 93 94

20

21~29 1~9 非汉字图符(682个)

2A~2F 10~15 空白区

30~57 16~55 一级汉字(3 755个)

58~77 56~87 二级汉字(3 008个)

78~7E 88~94 空白区

7F

第 1 区的部分非汉字图符

1区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 middot ˉ ˇ uml 々 mdash ~ hellip lsquo rsquo ldquo

17~32 rdquo 〔 〕 〈 〉 《 》 「 」 『 』 〖 〗 【 】 plusmn

33~48 times divide ∶ and or sum prod cup cap isin ∷ radic perp ∥ ang

49~64 ⊙ int ∮ equiv ≌ asymp ∽ prop ne ltu gtu le ge infin ∵ there4

65~80 deg prime Prime $ curren ¢ £ permil sect

81~94 rarr larr uarr darr

第 16 区的部分一级汉字

16区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 啊 阿 埃 挨 哎 唉 哀 皑 癌 蔼 矮 艾 碍 爱 隘 鞍

17~32 氨 安 俺 按 暗 岸 胺 案 肮 昂 盎 凹 敖 熬 翱 袄

33~48 傲 奥 懊 澳 芭 捌 扒 叭 吧 笆 八 疤 巴 拔 跋 靶

49~64 把 耙 坝 霸 罢 爸 白 柏 百 摆 佰 败 拜 稗 斑 班

65~80 搬 扳 般 颁 板 版 扮 拌 伴 瓣 半 办 绊 邦 帮 梆

81~94 榜 膀 绑 棒 磅 蚌 镑 傍 谤 苞 胞 包 褒 剥

第 56 区的部分二级汉字

56区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 亍 丌 兀 丐 廿 卅 丕 亘 丞 鬲 孬 噩 丨 禺 丿 匕

17~32 乇 夭 爻 卮 氐 囟 胤 馗 毓 睾 鼗 丶 亟 鼐 乜 乩

33~48 亓 芈 孛 啬 嘏 仄 厍 厝 厣 厥 厮 靥 赝 匚 叵 匦

49~64 匮 匾 赜 卦 卣 刂 刈 刎 刭 刳 刿 剀 剌 剞 剡 剜

65~80 蒯 剽 劂 劁 劐 劓 冂 罔 亻 仃 仉 仂 仨 仡 仫 仞

81~94 伛 仳 伢 佤 仵 伥 伧 伉 伫 佞 佧 攸 佚 佝

3汉字编码的辅助集bull 除了GB 2312基本集的 6 763 个简体汉字外国家标

准还给出了汉字编码字符集的多个辅助集bull 第二 四辅助集分别增加了 7 237 7 039 个简体汉字bull 第一和三 五辅助集则分别是与基本集和第二 四辅助集所对应的繁体汉字字符集的国家标准

bull 基本集加上辅助集共有 21 039 个简体汉字和 21 142个繁体汉字

bull 繁体汉字之所以多一些是因为在第一辅助集中有时几个繁体字对应一个简体字因此比基本集多出 103 个汉字

bull 基本集和辅助集的代码页之间靠其编码字节的最高位来区分

编码字符的分页标志

双字节汉字编码的页面结构第二字节 列号

行号 0 middot middot middot 32 33 34 helliphellip 125 126 127 128middot middot 160 161 162 helliphellip 254 255 0 middot middot 32

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

33 34 middot middot middot 126

1 2 middot middot middot 94

第四五辅助集 (7 039个汉字)

127

(兼容ASCII)

128 middot middot 160

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

161 162 middot middot middot 254

1 2 middot middot middot 94

第二三辅助集 (7 237个汉字)

1 2 middot middot middot 94

基本集第一辅助集 (6 763 6 866个汉字) (682个非汉字图符)

第一字节

255

4 Big5

bull 除了中国大陆使用的简体汉字外在台湾香港澳门和海外华侨社区使用的是传统的繁体汉字

bull 简体汉字使用 GB (国标)系列编码标准bull 繁体汉字一般使用的是 Big5内码(大五码)即台湾的ldquo资讯工业策进会rdquo发布的《标准交换码 (Ⅲ码 )》收录汉字 13 053 个

bull Big5内码是 1984年由台湾财团法人资讯工业策进会与宏碁 (Acer) 神通 (MiTAC) 佳佳零壹 (Zero One) 大众 (FIC) 等五大软件公司联合推出故称为大五码

BIG5 的代码空间低位字节

00 hellip 3F 40 hellip 7E 7F hellip A0 A1 hellip FE FF

高位字节

00middot

80

81middot

A0用户定义区 用户定义区

A1A2A3

非汉字图符 非汉字图符

A4middot

C6常用汉字 常用汉字

C7C8

用户定义区 用户定义区

C9middot

F9次常用汉字 次常用汉字

FAmiddot

FE用户定义区 用户定义区

FF

5少数民族文字编码bull 中国共有 56 个民族除了汉回满族一般使用汉语外其他少数民族大多有自己的民族语言

bull 我国各民族使用的 50 多种文字可以分为字母式结构文字和非字母式结构文字两大类ndash 字母式结构的有拉丁文斯拉夫文蒙古文维吾尔文哈萨克文藏文和朝鲜文等字母式

ndash 非字母式结构的有汉字象形文字图画文字和音节文字等bull 各民族文字的书写方向也有不同

ndash 壮文藏文朝鲜文彝文等的字从左到右行从上到下ndash 维吾尔文哈萨克文和柯尔克孜文等的字从右到左行从上

到下ndash 蒙古文和满文的字从上到下行从左到右ndash 汉字的书写方向有两种

bull 大陆的简体汉字的字从左到右行从上到下bull 港台与古旧书的繁体汉字的字从上到下行从右到左

国家标准bull 下面按发布时间列出若干已经公布的我国少数民族文字

编码集的国家标准(这些字符集一般分成两类对字母式结构文字采用八位编码对非字母式结构文字采用双字节编码)ndash GB 8045-87《信息处理交换用蒙古文七位和八位编码图形字

符集》收 82 个蒙古文字母和 12 个其他符号共 94 个字符ndash GB 12050-89《信息处理交换用维吾尔文编码图形字符集》收 32 个维吾尔文字母一个维吾尔文复合字符和 37 个其他符号共 70 个字符

ndash GB 12052-89《信息交换用朝鲜文编码字符集》收 5297 个朝鲜文字和 682 个其他符号(与 GB 2132同)共 5 979 个字符

ndash GB 13134-91《信息交换用彝文编码字符集》收 1165 个彝文字符和 688 个其他符号共 1853 个字符

ndash GB 16959-1997《信息技术 信息交换用藏文编码字符集 基本集》收 41 个藏文字母 36 个藏文主字 13 个元音字符12 个语音字符 10 个藏文数字 10 个半值符一个控制用连接符和 46 个其他藏文图形符号共 169 个字符

6 GB 13000bull GB 13000 是与 ISOIEC 10646 等价的国际通用编码字符集标准收汉字 2万多个但是与 GB 2312 和 GBK 不兼容

bull 1993年 5月 ISO 与 IEC 联合推出了可用于世界各种文字的通用编码字符集的国际标准的第 1部分ndash ISOIEC 10646-11993 Information technology -- Universal Multiple-Octe

t Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane (信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

ndash 该标准收字符 96万个几乎涵盖世界上的所有文字其中包含汉字 21 003 个

bull 1993年底我国推出了等同于国际标准 ISOIEC 1064611993 的强制性国家标准 ndash GB 130001-93《信息技术 通用多八位编码字符集( UCS ) 第一部分

体系结构与基本多文种平面》ndash 该标准于 1993年 12月 24日被国家技术监督局批准 1994年 8月 1日起实施

GB 13000 的主要特点

bull 世界各语言文种字符统一编码避免冲突便于国际交流

bull 编码空间宽阔连续每个图形字符的编码唯一(一字一码)不再存在兼容性问题

bull 按文种而不是按语言编码避免重复和浪费(如中日韩汉字的统一编码 CJK )

bull 与 GB 2312 和 GBK 不兼容

体系结构bull UCS 的体系结构是基于所谓ldquo多八位rdquo的而ldquo八位rdquo就是一个字节ldquo多八位rdquo就是多个字节

bull UCS采用 4 个字节来表征组面行位的四维空间bull 整个 UCS空间包含 128 个组( 0x00组 ~0x7F组)每组有 256 个平面( 0x00 平面 ~0xFF 平面)每个平面有 256 行每行又由 256 个字位构成

bull UCS共有( 128 times 256 = ) 32 768 个平面每个平面有( 256 times 256 = ) 65 536 个字位每个字位对应于一个字符的编码

bull 目前的编码只限于 00组已经定义的平面有 00组的00 平面mdashmdash称之为基本多文种平面 BMP ( Basic Multilingual Plane ) 及若干辅助平面

UCS 的全部编码空间

每个平面256times256 个

字位

00组 00 平面

00组 FF 平面

01组 00 平面

7F组 00 平面00

01组

7F组

UCS 的 00组

BMPbull BMP = Basic Multilingual Plane 基本多文种平面bull BMP 用作双八位编码字符集称之为 UCS-2 它被

分成四个区ndash A- 区(字位 0x0000~0x4DFF 有 19 903 个字位)用于

字母文字音节文字以及各种符号ndash I- 区(字位 0x4E00~0x9FFF 共 20 992 个字位)用于中日韩统一汉字( CJK )

ndash O- 区(字位 0xA000~0xDFFF 共 16 384 个字位)保留未来标准化用

ndash R- 区(字位 0xE000~0xFFFD 共 8 190 个字位)为 BMP 的限制使用区包括专用字符变形显现形式及兼容字符

BMP总貌

A-区

00~33 拼音文字(见下页)

34~3D 朝鲜文

3E~44 朝鲜文补充 -A

45~4D 朝鲜文补充 -B

I-区 4E~9F CJK统一汉字O-区 A0~DF

R-区

E0~F8 专用区

F9~FA CJK兼容汉字FB 拼音文字变形显现形式

FC~FD 阿拉伯文变形显现形式 -A

FE半形组合用标志

CJK兼容形式

小写变体

阿拉伯文变形显现形式 -B

FF 半形及全形字符 特殊字符

BMP 的0x00~0x33

行字母文字区

00 基本拉丁文 拉丁文-1补充

01 拉丁文扩充-A 拉丁文扩充-B

02 拉丁文扩充-B 国际音标扩充 进格修饰字符

03 组合用发音符 基本希腊文 希腊符号及哥普特文

04 西里尔文

05 美亚尼亚文 希伯来文(基本和扩充)

06 基本阿拉伯文 阿拉伯文扩充

07

08

09 梵文 孟加拉文

0A 锡克教文 古吉拉特文

0B 奥利雅文 泰米尔文

0C 泰卢固文 卡纳达文

0D 德拉维族文

0E 泰文 老挝文

0F

10 格鲁吉亚文

11 朝鲜文字母

12~1D

1E 拉丁文扩充增补

1F 希腊文扩充

20 广义标点 上下标 货币符号 符号组合用区分标志

21 类似字母的符号 数字形式 箭头

22 数学运算符

23 零杂技术用符号

24 控制图符 光学识别符 带括号的字母数字

25 制表符 方块元素 几何图形符

26 零杂符号

27 示意符等

28~2F

30 CJK符号和标点 平假名 片假名

31 注音 朝鲜文兼容字母 CJK零杂字符

32 带括号的CJK字母及月份

33 CJK兼容字符

留作将来标准化用

非图形字符

表示形式bull GB 13000提供了字符编码表示的两种替代使用的形式

ndash 双八位 BMP 形式( UCS-2 )mdashmdash允许使用 BMP 中的字符且每个字符用两个字节表示

ndash 肆八位正则形式( UCS-4 )mdashmdash允许使用 GB 13000 中的全部字符且每个字符用四个字节表示

bull 除了 UCS-24外还有另外两种变形的表示形式ndash UTF-8 (单字节 ~ 多字节)ndash UTF-16 (双字节和 4 字节与 UCS-2 等价)ndash 目前在工业上的实现均为 UTF-16 ( UCS-2 )和 UTF-8ndash UTF = Unicode UCS Transformation Format 统一码 UC

S转换格式bull 关于统一码我们会在下一小节详细介绍

7 GBK 与 GB 18030bull 由于 GB 13000 标准与 GB 2312 标准的字符编码不兼容作为过渡在国家信息技术标准化委员会的主持下制定了与 GB 2312兼容的《汉字内码扩展规范( GBK )》( K 为扩展的ldquo扩rdquo字的拼音首字母)并于 1995年 12月 15日由原国家技术监督局标准司联合原电子工业部科技与质量监督司作为指导性技术规范发布实施

bull 2000年 GBK又被国家标准 GB 18030-2000《信息技术 信息交换用汉字编码字符集 基本集的扩充》所代替该标准收汉字 2万 7千个

bull 与 GB 2312 一样 GB 18030 也为中国的强制性国家标准微软公司的 Windows XPVista78 中文版与苹果公司的 Mac OS X 和 iOS 谷歌公司的 Android (安卓)等操作系统已经全面支持 GBK

GB 18030 的码位范围分布

字节数 码位空间 码位数目

单字节 0x00~0x7F 128

双字节第 1字节 第 2字节

23 9400x81~0xFE

0x40~0x7E 0x80~0xFE

四字节第 1字节 第 2字节 第 3字节 第 4字节

1 587 6000x81~0xFE 0x30~0x39 0x81~0xFE 0x30~0x39

GB 18030的

总体结构图

收录字符bull 单字节部分mdashmdash收录了GBT 11383 的 0x00~0x7F 全部 128 个字符(似 ASCI

I )bull 双字节部分mdashmdash收录内容如下 (21 003 个汉字和 884 个符号共 21 887 个字符 )

ndash GB 130001-93 的全部 CJK 统一汉字字符 20 902 个( GB 2312 的编码汉字在双字节 2 区其他 CJK 统一汉字在双字节 34 区)

ndash GB 130001-93 的 CJK兼容区挑选出来的 21 个汉字ldquo郎凉秊helliphellip﨨﨩rdquo( 0xFD9C~0xFDA0 和 0xFE40~0xFE4F )

ndash GB 130001-93 中收录而 GB 2312未收录的台湾地区使用的图形字符 139 个ldquoˊˋ˙helliphelliprdquo( 0xA840~0xA895 和 0xA940~0XA988 )

ndash GB 130001-93收录的其他字符 31 ( 13)个(在双字节 5 区)ndash GB 2312-80 中的非汉字字符 682 个( 0xA1A1~0xA9EF )ndash GB 12345-90 的竖排标点符号 19 ( 29)个ldquo︵︶︹helliphellip︳︴rdquo( 0xA6D9~0xA6

F5 )ndash GB 2312-80未收录的 10 个小写罗马数字ldquoⅰⅱⅲhelliphellipⅸⅹrdquo( 0xA2A1~ 0xA2A

A )ndash GB 2312-80未收录的带音调的汉语拼音字母 5 ( 4)个ldquo ńňǹrdquo 以及 ɑ 和 ɡ ( 0

xA8BB~0xA8C0 )ndash 汉字数字零ldquo〇rdquo (0xA996) 和欧元符ldquoeurordquo (0xA2E3)ndash 表意文字描述符 13 个ldquohelliphelliprdquo( 0xA989~0xA995 )ndash 对 GB 130001-93增补的汉字和部首 构件 80 个ldquohelliphellip䶮rdquo( 0xFE50~ 0x

FEA0 )bull 四字节部分mdashmdash收录了上述双字节字符之外的包括 CJK 统一汉字扩充 A 在内

的 GB 130001-93 中的全部字符

GB 18030双字节部分的码位安排

类别 区名 码位范围 码位数 字符数 内容

符号区双字节 1区 A1A1~A9FE 846 718

GB 2312非汉字字符等

双字节 5区 A840~A9A0 192 166 台湾图符等

汉字区双字节 2区 B0A1~F7FE 6768 6763 GB 2312汉字双字节 3区 8140~A0FE 6080 6080 CJK统一汉字双字节 4区 AA40~FEA0 8160 8160 CJK统一汉字等

用户自定义区双字节用户区 1 AAA1~AFFE 564

用户自定义字符双字节用户区 2 F8A1~FEFE 658

双字节用户区 3 A140~A7A0 672

GB 18030双字节部分的编码空间结构图 尾字节

0x40larr――rarr0x7E 0x80larr――rarr0xA0 0xA1larr――――――――――――rarr0xFE

0x81 uarr darr

0xA0

0xA1 uarr darr

0xA7

0xA8 0xA9

首字节

0xAA uarr | | | | | | | | | | darr

0xFE

双字节 3区

汉字区6 080个码位

双字节用户区 3

用户自定义区672个码位

双字节 5区 图形符号区192个码位

双字节 4区

汉字区8 160个码位

双字节 1区

图形符号区564个码位

双字节 2区

汉字区6 768个码位

双字节用户区 1 用户自定义区564个码位

双字节用户区 2 用户自定义区658个码位

223 国际通用字符编码

bull Unicode (统一码)是由多语言软件制造商组成的统一码协会( httpwwwUnicodeorg)所制定一种国际字符的编码标准

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull 本节主要介绍这两种关系密切的主流国际字符编码标准的来历编码方案各自特点与相互关系

1 Unicode 统一码bull 发展历史

ndash 1987年施乐( Xerox )公司的 Joe Becker 与 Lee Collins 和苹果( Apple )公司的 Mark Davis 等人开始讨论统一编码 1987年 12月 Joe Becker造词 Unicode (统一码)含义为ldquo unique universal and uniform character encodingrdquo (单一通用统一的字符编码) 1989年 2月开始定期召开统一码会议 1989年 9月公布 Unicode草案

ndash 1991年 1月 3 日由 Xerox Apple Sun IBM Aldis Microsoft 等公司出资在美国加州成立了统一码协会( Unicode Consortium )并由协会设立非盈利性的统一码公司( Unicode Inc )后来 HP Adobe Borland Digital Lotus Novell 等公司也纷纷加入 1991年 1月成立统一码技术委员会 UTC 并制定了其规程

ndash 1991年 2月在 Ed Hart 的推动下进行了ldquo统一码对 10464 国际标准草案 1rdquo 的对话Unicode 与 ISOIEC 10646开始走向融合

ndash 1991年 8月发布 Unicode 标准 10版的第 1卷(体系结构非表意字符) 1992年6月发表 Unicode 10版的第 2卷(表意字符) 1993年 6月发布 Unicode 11版与 1993年 5月公布的 ISOIEC 10646-11993 实现了合并

ndash 1996年 7月发布 Unicode 20版ndash 1999年 9月发布 Unicode 30版ndash 2003年 4月发布 Unicode 40版(对应于 ISOIEC 106462003 ) 2004年 3月 31日发布 Unicode 401版 2005年 3月 31日发布 Unicode 410版

ndash 2006年 7月 14日发布 Unicode 50版 2008年 4月 4日发布 Unicode 51版 2009年 12月 22日发布 Unicode 52版

ndash 2010年 10月发布 Unicode 60版 2012年 1月发布 Unicode 61版(对应于 ISOIEC 106462012 ) 2012年 9月推出 Unicode 62版 2013年 9月推出 Unicode 63版

ndash 2014年 6月 16日发布 Unicode 70版 ndash 2015年 6月 17日发布 Unicode 80版

字符集bull Unicode 字符集的空间分成双字节的基本多语言平面 (Basic Multilingual Pla

ne BMP) 和 4 字节的辅助多语言平面 (Supplementary Multilingual Plane SMP) 两种

bull BMPndash Unicode 的基本平面或基本多语言平面 BMP 对应于 ISOIEC 10646-1 的第 00组的 00 平面( BMP )即 Unicode 与 ISOIEC 10646 的 BMP 中的字符编码完全一致

bull SMPndash 鉴于 Unicode 原有的 16位元空间不足以应用从 Unicode 31版本开始设立了 16 个辅助平面使 Unicode 的可使用空间由六万多字增至约一百万字

ndash 原有的 Unicode双字节空间称为基本平面或基本多语言平面 BMP 辅助多语言平面 SMP 字符要用 4 字节来储存

ndash 第一辅助平面摆放拼音文字(主要为现时已不再使用的文字)及符号范围在 U+10000 - U+1FFFD

ndash 第二辅助平面又称为表意文字补充平面 (Supplementary Ideographic Plane 简称 SIP) 现时摆放ldquo中日韩统汉字扩展 B 区rdquo共 43253 个汉字范围在 U+20000 - U+2FFFD

ndash 第三至十三辅助平面尚未使用ndash 第十四辅助平面又称为特殊用途补充平面 (Supplementary Special-purpose Pl

ane 简称 SSP) 摆放 Language tags 和 Variation Selectors 它们都是控制字符范围在 U+E0000 - U+E01FF

ndash 第十五至十六辅助平面都是私人使用区它们的范围是 U+F0000 - U+FFFFD 及 U+100000 - U+1000FD

bull Unicode 字符集的具体编码方式参加第 4小节ldquo 4 UTFrdquo

2 ISOIEC 10646

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull ISOIEC 10646 标准由 ISO 与 IEC 联合成立的 ISOIEC JTC1SC2WG2 制定ndash JTC 1 ( Joint Technical Committee 1 on Information

technology ISOIEC信息技术联合技术委员会 1 )负责信息技术方面标准的制定工作

ndash SC 2 ( SubCommittee 2 on Coded character sets 编码字符集分会 2 )下的 WG 2 ( Working Group 2 on Universal coded character set 通用编码字符集工作组 2 )负责制定国际通用字符编码标准即后来公布的 ISOIEC 10646

发展历史bull 1984年 ISO 的一些会员国发起制定新的国际字符编码标准同年 4月 ISO

与 IEC 联合成立 ISOIEC JTC1SC2WG2 1987年 3月制定出编码架构1992年 6月投票通过第二版国际标准草案

bull 1993年 5月推出 10646 标准时将内容分成两个部分标准首先发布的是其中的第 1 个部分(体系结构与基本多文种平面)的第 1版( Edition 1 ) ISOIEC 10646-11993 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane(信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

bull 2000年 3月推出 10646 标准第一个部分的第 2版( Edition 2 ) ISOIEC 10646-12000 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane

bull 2001年 10月推出 10646 标准第 2版的第二个部分(辅助平面)的第 1版( Edition 1 ) ISOIEC 10646-22001 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 2 Supplementary Planes

bull 2003年 10月推出的 10646新标准(第 1版 Edition 1 )将老标准中的两个部分标准合并成了一个单一的标准 ISOIEC 106462003 Information technology -- Universal Multiple- Octet Coded Character Set (UCS) 后来又于 2010年 2012年和 2014年分别推出了 ISOIEC 106462010 (第 2版)ISOIEC 106462012 (第 3版)和 ISOIEC 106462014 (第 4版)

UCS 通用字符集bull 通用字符集( Universal Character Set UCS )是

ISOIEC 10646 标准所定义的字符编码方式采用 4字节编码又称为 Universal Multiple-Octet Coded Character Set (通用多八位编码字符集)

bull 通用字符集是所有包括了其他字符集它保证了与其他字符集的双向兼容即如果你将任何文本字符串翻译到 UCS 格式然后再翻译回原编码你不会丢失任何信息

bull UCS 包含了已知语言的所有字符除了拉丁语希腊语斯拉夫语希伯来语阿拉伯语亚美尼亚语格鲁吉亚语还包括中文日文韩文这样的象形文字 UCS 还包括大量的图形印刷数学科学符号

名字与组合字符bull UCS 不仅给每个字符分配一个代码而且赋予了

一个正式的名字表示一个 UCS 或 Unicode值的十六进制数通常在前面加上ldquo U+rdquo 例如ldquo U+0041rdquo代表字符ldquo Ardquo

bull UCS里有些编码点分配给了组合字符组合字符机制允许在任何字符后加上重音符或其他指示标记 这在科学符号中特别有用 比如数学方程式和国际音标字母 可能会需要在一个基本字符后组合上一个或多个指示标记

实现级别bull 并不是所有的系统都需要支持像组合字符这样的的先进

机制因此 ISO 10646 指定了如下三种实现级别ndash 级别 1不支持组合字符和韩语 Hangul Jamo 字符 ( 一种特

别的 更加复杂的韩国文的编码 使用两个或三个子字符来编码一个韩文音节 )

ndash 级别 2类似于级别 1 但在某些文字中允许一列固定的组合字符 (例如 希伯来文 阿拉伯文 Devangari 孟加拉语 果鲁穆奇语 Gujarati Oriya 泰米尔语 Telugo 印 埃纳德语 Malayalam 泰国语和老挝语 ) 因为如果没有最起码的几个组合字符 UCS就不能完整地表达这些语言

ndash 级别 3支持所有的 UCS 字符如可以在任意一个字符上加上一个箭头或 和一个 tilde(颚化符号即字母上面的~ )

编码方式bull UCS 有如下两种编码方式

ndash UCS-2与 Unicode 的 2 字节编码基本一样ndash UCS-4 4 字节编码目前是在 UCS-2 前加

上 2 个全零的字节bull UCS 还有 UTF 编码方式参见下面第 4小节ldquo 4 UTFrdquo

3 Unicode 与 ISOIEC 10646bull 关系

ndash 历史上存在两个独立的尝试创立单一字符集的组织即国际标准化组织( ISO )和多语言软件制造商组成的统一码协会组织( Unicodeorg )前者开发的 ISO 10646项目后者开发的 Unicode项目因此最初制定了不同的标准

ndash 1991年前后两个项目的参与者都认识到世界不需要两个不兼容的字符集于是它们开始合并双方的工作成果并为创立一个单一编码表而协同工作

ndash 从 Unicode20开始 Unicode采用了与 ISO 10646-1相同的字库和字码 ISO 也承诺 ISO10646 将不会替超出 U+10FFFF 的 UCS-4 编码赋值以使得两者保持一致

ndash 两个项目仍都存在并独立地公布各自的标准但 Unicode协会和 ISOIEC JTC1SC2 都同意保持两者标准的码表兼容并紧密地共同调整任何未来的扩展

异同bull Unicode协会公布的 Unicode 标准包含了 ISO 10646-1 实现级别

3 的基本多文种平面在两个标准里所有的字符都在相同的位置并且有相同的名字

bull ISO 10646 标准就像 ISO 8859 标准一样只不过是一个简单的字符集表它定义了一些编码的别名指定了一些与标准有关的术语并包括了规范说明指定了怎样使用 UCS连接其他 ISO 标准的实现等

bull Unicode 标准额外定义了许多与字符有关的语义符号学并详细说明了绘制某些语言(如阿拉伯语)表达形式的算法处理双向文字(比如拉丁文和希伯来文的混合文字)的算法排序与字符串比较所需的算法等等

bull 考虑到 Unicode 标准有一个易记的名字既便宜又包括更多的辅助信息因而它使用得更广泛然而

bull 一般认为用于打印 ISO 10646-1 标准的字体在某些方面的质量要高于用于打印 Unicode 20 的专业字体设计者总是被建议说要两个标准都实现但一些提供的样例字形有显著的区别 ISO 10646-1 标准同样使用四种不同的风格变体来显示表意文字如中文日文和韩文 (CJK) 而 Unicode 20 的表里只有中文的变体

4 UTFbull Unicode 和 UCS 都是一个字符集可以看作为内码bull UTF ( UnicodeUCS Transformation Format 统一码

通用字符集转换格式)是一种编码方式它的出现是因为 Unicode 和 UCS 不适宜在某些场合直接传输和处理

bull UCS 和 Unicode 只是分配整数给字符的编码表现在存在好几种将一串字符表示为一串字节的方法(如高或低位字节在前)

bull 最显而易见的两种方法是将 UCS 和 Unicode 文本存储为 2 个 或 4 个字节序列的串这两种方法的正式名称分别为 UCS-2 和 UCS-4

bull 常用的 UTF具体编码方式有 UTF-8 UTF-16 和 UTF-32

UTF-8

bull UTF-8 是 UTF 的一种具体编码方式在 ISO 10646-1 的附录 R 和 IETF 的 RFC 2279 里定义

bull 由于要使文档中的文字与 ASCII兼容故 UTF-8 选择了使用可变长度字节来储存 Unicode 和 UCS 例如ndash ASCII 字母继续使用 1 字节储存ndash 重音文字希腊字母或西里尔字母等使用 2 字节来储存ndash 常用的汉字就要使用 3 字节ndash 辅助平面字符则使用 4 字节ndash 即 ASCII 不作变换其他字符做变长编码每个字符 1~4 字节

bull UTF-8 通常作为外码bull 在 UTF-8 文件的开首很多时都放置一个 U+FEFF 字符

(UTF-8 以 EF BB BF 代表 ) 以显示这个文字档案是以UTF-8 编码

UTF-8 的优点bull 与 CPU 字节顺序无关可以在不同平台之间交流

bull 容错能力高任何一个字节损坏后最多只会导致一个编码码位损失不会链锁错误 ( 如 GB 码错一个字节就会整行乱码 )

UTF-8 的缺点bull UTF-8 使用可变长度字节储存使计算机程序设计变得复杂 (故此在计算机程序或操作系统内部多采用 UCS-2 编码 )

bull 在旧式的中文日文及朝鲜文编码之中每字符都使用 2 字节储存而 UTF-8 须使用 3 字节 (采用 UTF-16 编码则可只使用 2字节储存 )

bull 泰语以往使用的 ISO 8859-11 每字符只使用 1 字节储存而 UTF-8 须使用 3 字节

UTF-8储存的多字节串字符bull U-00000000 - U-0000007F 0xxxxxxx bull U-00000080 - U-000007FF 110xxxxx 10xxxxxx

bull U-00000800 - U-0000FFFF 1110xxxx 10xxxxxx

10xxxxxx bull U-00010000 - U-001FFFFF 11110xxx 10xxxxx

x 10xxxxxx 10xxxxxx bull 在多字节串中第一个字节的开头ldquo 1rdquo 的数目就

是整个串中字节的数目bull 每个使用 UTF-8储存的字符除了第一个字节外其余字节的头两个位元都是以 10 开始使文字处理器能够较快地找出每个字符的开始位置

UTF-16bull UTF-16 是 UTF 的另一种具体编码方式在 ISO 1064

6-1 的附录 Q 和 IETF 的 RFC 2781 里定义bull UTF-16 是变长码( 2 或 4 字节)大致相当于 20位编码值在 0 到 0x10FFFF 之间基本上就是 Unicode 编码的实现 UTF-16 与 CPU 字序有关但因为最省空间常作为网络传输的外码 UTF-16 是 Unicode 的完美编码

bull lt0x10000 的直接用其对应的 16位整数编码位于 0x10000 ~ 0x10FFFF 之间的用 0xD800~0xDBFF 的 16位整数后跟 0xDC00~0xDFFF 的 16位整数的 4 字节编码 gt 0x10FFFF 的不能用 UTF-16 表示

bull 在 Unicode 的 BMP 中定义的字符(无论是拉丁字母汉字或其他文字或符号)一律使用 2 字节存储而在辅助平面定义的字符则以两个 2 字节的值来存储

UTF-16 的特点bull UTF-16比起 UTF-8 的好处在于大部分字符都以固定长

度的 2 字节存储但 UTF-16却无法相容于 ASCII 编码bull UTF-16 有两种编码模式即大尾序( big Endian 高位字节在前)和小尾序( little Endian 高位字节在后)储存形式(一般來說以 Macintosh 制作和存储的文字使用大尾序格式以 Microsoft 或 Linux 制作和存储的文字使用小尾序格式)

bull 为了弄区分 UTF-16 文件的大小尾序在 UTF-16 文件的开头都会放置一个 U+FEFF 字符作为字节顺序标记 (UTF-16LE 以 FF FE代表 UTF-16BE 以 FE FF代表 ) 以显示该文档是以 UTF-16 编码的

UTF-32

bull UTF-32 仅使用了 Unicode范围 (0 到 0x10FFFF) 的 32位编码相当于 UCS-4 的子集

bull 由于 Unicode 和 ISOIEC 10646 的编码和结构与前面讲过的 GB 13000 类似或等价这里就不再做详细的介绍

5支持bull 现在 UnicodeUCS 已经获得了十分广泛的支

持ndash网络与浏览器(如 HTML 4050 XML 与 IE

Safari Netscape Firefox Chrome Opera Edge 等)

ndash操作系统(如 Windows NT2000XPVista7810 Mac OS X iOS Android和 Linux )

ndash 编程语言新版本(如 CC++JavaObjective-CC Swift 等)

Unicode 代码的浏览器显示代码 字符标准名称 (英语 )

浏览器的显示

amp65 大写拉丁字母 A A

amp223 小写拉丁字母 Sharp S szlig

amp254 小写拉丁字母 Thorn thorn

amp916 大写希腊字母 Delta Δ

amp1049 大写斯拉夫字母 Short I Й

amp1511 希伯来字母 Qof ק

amp1605 阿拉伯字母 Meem م

amp3671 泰文数字 7 ๗amp4688 埃塞俄比亚音节文字 Qha ቐ

amp12354 日语平假名 A あamp12450 日语片假名 A アamp21494 简体汉字 叶 叶amp33865 繁体汉字 葉 葉amp50685 韩国音节文字 Yeob 엽

23 文字输出bull 文字输出是指将计算机内的字符编码通过计算机的输出设备(如显示器打印机喇叭)展现出所对应字符的图形或声音供人们阅读或聆听

bull 本节主要介绍文字图示输出的字形技术bull 文字声音输出属于语音合成只在本节的末尾作简单的介绍

231 字形技术bull 文字 = 图形bull 不论是象形文字中的单字还是拼音文字

中的字母都是用图形来表示的bull 在计算机里文字的表示 输出(显示和打

印)涉及ndash 字型ndash 字体ndash 字库

1字型bull 字型指构造和生成字形的方法一般可分为

ndash 点阵字 DOS 显卡 ROM 金山 科印特点似位图显示快占空间(字库大)放大后有马赛克效应

bull 显示字母 88 汉字 1616bull 打印 2424 4848 6464

ndash 矢量字单线条用于笔式绘图仪特点字库小算法简单难看

ndash 轮廓字用曲线描绘字的轮廓输出效果好所见即所得(WYSWYG) 可无级放大易实现空心 阴影 填充 变形等各种特效功能轮廓曲线一般采用样条曲线如 TrueType (Apple 1991 Mac OS Microsoft 1992 Windows 31)用的是二次 B 样条 Bezier曲线中文之星 RichWin采用的是三次 B 样条 Bezier曲线

字型种类

2字体bull 字体指字的形状风格如

ndash 汉字的

ndash 英文的

宋体楷体黑体仿宋

行楷隶书新魏幼圆

Times New Roman Arial Narrow Courier New

常用汉字字体bull 宋体mdashmdash宋体来自于北宋时雕版刻书所采用的欧体字(唐朝欧阳询体)宋体字的横顿拉捺挑钩别具特色间架平正疏密适中字体秀丽遒劲但笔画横细竖粗适合于刀刻不宜于手写现在宋体广泛用于印刷常来表现文档的正文

bull 仿宋体mdashmdash 1920年钱塘的丁辅之与丁善之等人将明代以后盛行的方廓形字体加以改造创造出长形和方形的聚珍仿宋后来演化为现在的仿宋体仿宋体比较接近于手写体为宋体和楷体的折中是采用的宋体的结构和楷体的笔法而成现常来表现打印文件以及文档的摘要和注释等

bull 黑体mdashmdash黑体是适应工艺美术的发展而出现的一种等线体是从日本引进的黑体的结构与宋体没有什么差别只是其笔画粗细一致健实粗壮主要用于文档的标题和重点及标语广告等方面

bull 楷体mdashmdash楷体源于楷书楷体的笔画圆浑笔调灵活结构端正美观但不宜于木板雕刻所以直到清末西洋的石板印刷术传入后才开始广泛用于印刷现代的楷体创造于 20世纪的二三十年代主要用于文档的正文(多用于中小学教材)也可用于工艺美术等方面

3字库bull 字库为一种文字的某一字体的所有字符的集合一般存放在一个磁盘文件中

bull 由于象形文字中单字的数量大(成千上万)而拼音文字中字母的数量小(不到一百个)所以字库的大小有很大的差别

bull 为了使文档界面丰富多彩常见的字处理软件都支持多种字体带有众多字库

4点阵字型的国家标准bull 我国已经公布了若干字体的点阵字型之国家标准

ndash GB 50071-19852001 信息技术 汉字编码字符集(基本集) 24 点阵字型

ndash GB 50072-19852001 信息技术 汉字编码字符集(辅助集) 24 点阵字型

ndash GB 5199-19862001 信息技术 汉字编码字符集(基本集) 16 点阵字型 宋体

ndash GB 6345-19862001 信息技术 汉字编码字符集(基本集) 32 点阵字型 宋体

ndash GB 12041-2001 信息技术 汉字编码字符集(基本集) 48点阵字型 宋体

ndash GB 17698-1999 信息技术 通用多八位编码字符集( I 区) 汉字 16 点阵字型

232 语音合成bull 文字的声音输出主要使用的是语音合成的技术bull 语音合成功能是ldquo文rarr语rdquo转换bull 文语转换 TTS (Text-To-Speech) 是将文本形式的信息转换成自然语音的一种技术其最终目标是使计算机输出清晰而又自然的声音

bull 英语的语音合成在上世纪 80年代就早已成熟而中文 汉语的合成现在也趋于成熟并有了广泛的应用(如汽车导航仪智能手机等)

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 6: 第一篇  媒体

211 键盘输入bull 计算机的通用键盘源自传统的打字机本身是

为英文字母的键入而设计的非常适合于拼音文字的字母输入而像汉字这样的象形文字用键盘输入则十分困难

bull 汉字的三个要素是形音义汉字的编码输入主要可以分为形码(如五笔字型)和音码(如全拼)两大类各种形码和音码输入法可以结合汉字的词义与语义特性进行词汇与整句等智能化的输入(如微软拼音输入法)

212 手写输入bull 随着各种手持设备(如平板电脑智能手

机)的不断出现与普遍使用联机手写文字的实时识别与输入方法已经得到越来越广泛的应用

bull 手写输入是指人用手指或(特制的)笔在图形板上书写机器进行实时的识别并将对应文字的编码输入

bull 汉字的联机手写输入是自动汉字识别中最简单的一种

特点

bull 机器识别的是笔画而不是整字bull 识别结果可以及时反馈所以对识别率要

求不高bull 输入方便不需对输入人员进行培训bull 适合于边想边写bull 可利用图形板方便地进行编辑和修改

技术bull 人写字时手的抖动书写速度的变化图形板的

量化和感应噪声等会对识别产生干扰因此必须进行必要的平滑和去噪预处理

bull 识别时还需进行字符分割以区分哪些笔画属于同一汉字

bull 手写输入在技术涉及图像识别模式匹配人工智能语言文字书写方式与习惯等方面的知识和方法

bull 目前的手写识别方法和技术还有待于进一步改进和完善以提高识别率减少对输入的限制降低输入设备和识别软件的成本加强软件的自学习功能

213 语音输入bull 语音输入是指利用语音内容的识别技术

将人的话音实时转换为对应文字编码并录入计算机

bull 语音输入的核心技术是语音识别技术bull 语音识别技术现在正在发展过程中还

有待于进一步完善

语音识别技术bull 早期的语音识别技术一直很落后到上世纪 70年代中采

用线性预测编码 LPC 和同态信号处理 (homomorphic signal process) 方法技术有了长足的进步但效果不理想到了上世纪 80年代矢量量化 (VQ Vector Quantization) 和隐马尔科夫模型 (HMM Hidden Markov Model) 的成功使用使语音识别在上世纪 90年代达到了商用化程度不过仍然存在问题识别率一直难以进一步提高又进入了相对低潮的相持阶段2011年 10月 14日苹果公司推出的 iPhone 4S 手机支持智能语音指令输入虽然还存在不少问题但是却引发了业界对语音输入研究和应用的新热潮

bull 语音输入的字词识别涉及词库声母分类规则库声母与韵母结合规则库声调知识库这些统称为声学基元模型库句子识别还涉及语义语法句法语用知识库这些统称为语言模型库句子理解则涉及常识库(难)

语音识别的过程图语音输入

darr数据采集

darr波形自动分析

darr预处理 参数特征提取

分帧后的语音特征矢量集合rarrdarr 声学模型 时间对准larr声学基元模型库

darr 语言模型库rarr 组句分析 larr统计信息与规则

语句候选rarrdarr识别语句输出

语音识别系统分类bull 按可识别词汇量可分为

ndash 小词汇量语音识别系统 (lt100)ndash 中词汇量语音识别系统 (100~1000)ndash 大词汇量语音识别系统 (gt1000)

bull 按语音输入方式可分为ndash 孤立词语音识别系统(简单)ndash 连接词语音识别系统(较难)ndash 连续语音语音识别系统(难)

bull 按发言人类型可分为ndash 特定人( 1 人)ndash 限定人( n 人)ndash 非特定人(任意人)

语音识别的目标是开发大词汇量非特定人的连续语音识别系统

214 扫描输入bull 扫描输入是指将图书期刊打印材料和印刷

品中的印刷体文字先通过扫描仪变成计算机中的数字图像然后再利用文字识别软件 OCR 自动转换成对应得文字编码并录入计算机

bull 目前我国研制的多种 OCR 软件的识别率已经达到 95 以上不过受印刷品质量的影响比较大

bull OCR = Optical Character Recognition Reader 光学字符识别 阅读器

bull 计算机识别印刷汉字的核心问题是抓住汉字的字形特征它主要体现在笔画和关键点上

bull 另一个核心问题是版面的分析与理解包括从图文混排版面中自动排除图形部分自动区分横排和竖排自动识别标题和正文对分栏文本实现自动对接等

bull 扫描输入方法除了用于印刷体文字的识别和输入外也可以用于手写体印刷文字的输入其文字识别的方法与印刷体文字类似也与手写实时输入的方法相关不过失去了笔顺信息属于整字识别类型

22 字符编码bull 字符编码包括西文编码中文编码和国际通

用字符编码本节的重点放在常用的编码标准上

bull 221 西文编码( ASCII 等)bull 222 中文编码( GB 2312 GB 13000

GBKGB 18030 )bull 223 国际通用字符编码( Unicode IS

OIEC 10646 )

221 西文编码bull 西文编码主要介绍 ASCII 字符集然后简

单介绍 IBM公司的 EBCDIC 和两种扩展 ASCII 显示字符表

bull 1 ASCII

bull 2 EBCDIC

bull 3扩展 ASCII 显示字符

1 ASCII

bull ASCII ( American Standard Code for Information Interchange 美国信息交换标准码)是 ANSI于 1963年提出 1968年确定的一种英文字符编码标准( ANSI X34-1986 )广泛应用于计算机网络和信息产业

bull ANSI = American National Standards Institute 美国国家标准协会

bull ASCII采用 7位二进制数的(共计 128 个)代码来表示字符(包括图示符和控制符)加上奇偶校验位(或最高位置 0 )则每个字符由 8位(一个字节)组成

ASCII 字符集

0 1 2 3 4 5 6 7

0 NUL DLE SP 0 P ` p

1 SOH DC1 1 A Q a q

2 STX DC2 ldquo 2 B R b r

3 ETX DC3 3 C S c s

4 EOT DC4 $ 4 D T d t

5 ENQ NAK 5 E U e u

6 ACK SYN amp 6 F V f v

7 BEL ETB lsquo 7 G W g w

8 BS CAN ( 8 H X h x

9 HT EM ) 9 I Y i y

A LF SUB J Z j z

B VT ESC + K [ k

C FF FS lt L l |

D CR GS - = M ] m

E SO RS gt N ^ n ~

F SI US O _ o DEL

bull ASCII 字符集以 32 个字符为一组bull 第一组( 0x00~0x1F )为控制符

(非打印符)用于数据处理 通信系统及其相应设备中的信息交换

bull 后面的除了第一个字符( SP空格符 0x20 )和最后一个字符( DEL删除符 0x7F )外全都是可打印(显示)的图示符包括ndash 第二组( 0x20 ~0x6F )的数字空格

和常用标点符号ndash 第三组( 0x40~0x5F )的大写拉丁字

母(即英文字母)与少数标点符号ndash 第四组( 0x60~0x7F )的小写拉丁字

母与少数标点符号

ASCII 的国际标准bull 1972年美国的国家标准 ASCII 与其若干拉丁语系国家的变体一起成为国际标准 ISO 6461972 ( Information processing -- ISO 7-bit coded character set for information interchange 信息处理mdashmdash ISO 用于信息交换的七位编码字符集)

bull 这些变体主要是将 ASCII 字符集中不常用的符号ldquo $ [ ] ^ ` | ~rdquo替换为他们各自语言的重音符号

bull 1987年 ISO 646 中的 ASCII部分成为 646 的国际参考版( IRV = International Reference Version ) ISO 646IRV1987 但是其中的美元符 $被替换为国际通用货币符 curren

bull 1991年推出的修订版 ISOIEC 646IRV1991 还原成原始的美国 ASCII 所以又被称为 ISO 646-US 或 US-ASCII

替代标准bull 由于 ISO 646 中各国的变体存在明显的兼容和统一问题现在已经作废

bull 有关编码已经被新的国际标准 ISOIEC 8859-1~16 19871998 ( Information processingtechnology -- 8-bit single-byte coded graphic character sets 信息处理 技术mdashmdash 8位单字节编码的图形字符集)所替代

bull 后来 ISO 646 与 ISOIEC 8859 标准又都被纳入 ISOIEC 1064619932003 ( Information technology -- Universal Multiple-Octet Coded Character Set (UCS) 信息技术mdashmdash通用多八位编码字符集 (UCS) )标准之中

bull 其中的标准编号 ISO 10646 = ISO 646 + 10000

标准化组织bull ANSI = American National Standards Institute 美

国国家标准协会bull ISO = International Organization for Standardization

国际标准化组织是由 153 个国家的国家标准协会联合组成的一个非政府国际组织总部(中央秘书处)设在瑞士的日内瓦负责制定适应商业和广泛社会需要的各种国际标准网址为 httpwwwisoorg

bull IEC = International Electrotechnical Commission 国际电工技术委员会是一个成立于 1906年 6月的国际标准化权威组织属于联合国的甲级咨询机构负责制定关于电工电子各方面的标准有 42 个会员国总部也设在瑞士的日内瓦网址为httpwwwiecch我国于 1958年 8月参加

2 EBCDIC

bull 西文的字符编码方案除了通用的 ASCII外还有 IBM公司于 1960年代初提出的 EBCDIC ( Extended Binary-Coded Decimal Interchange Code扩充的二进制编码的十进制交换码)

bull EBCDIC 现在仍然(仅)在 IBM 的 OS390 与 TPF 以及富士通 - 西门子的 BS2000OSD 等大型机的操作系统中使用

bull EBCDIC 是一种八位编码其字符的编码方案与ASCII 的完全不同

EBCDIC 字符集 0 1 2 3 4 5 6 7 8 9 A B C D E F

0 NUL DLE DS SP amp - 0

1 SOH DC1 SOS a j ~ A J 1

2 STX DC2 FS SYN b k s B K S 2

3 ETX TM c l t C L T 3

4 PF RES BYP PN d m u D M U 4

5 HT NL LF RS e n v E N V 5

6 LC BS ETB UC f o w F O W 6

7 DEL IL ESC EOT g p x G P X 7

8 GE CAN h q y H Q Y 8

9 RLF EM ` i r z I R Z 9

A SMM CC SM cent | |

B VT CU1 CU2 CU3 $

C FF IFS DC4 gt

D CR IGS ENQ NAK ( ) _ lsquo

E SO IRS ACK + lt =

F SI IUS BEL SUB | ldquo EO

3扩展 ASCII 显示字符bull ( 1 ) IBM PC

ndash IBM PC 的扩展 ASCII 显示字符由 IBM公司为其 PC 机制定可以由原始的 IBM PC 显示器在 DOS状态下显示

bull ( 2 ) Microsoft Windows ndash Microsoft Windows 的扩展 ASCII 显示字符由

微软公司为其Windows操作系统制定可以在Windows环境的西文状态下被显示

IBM PC 的扩展 ASCII 显示字符表

Microsoft Windows 的扩展 ASCII 显示字符表

222 中文编码bull 1 GB 1988 与 GB 2311

bull 2 GB 2312

bull 3汉字编码的辅助集bull 4 Big5

bull 5少数民族文字编码bull 6 GB 13000

bull 7 GBK 与 GB 18030

汉字编码bull 为了计算机处理汉字必须先对汉字进行编码由于汉

字数量大(《康熙字典》收字 47 035 个《汉语大字典》收字 54 678 个据统计在形成楷体后出现的汉字约有 9万个左右)显然不能像 ASCII那样用 7位或单字节来进行编码至少需要两个字节(最多可表示 6万5千多个字符)

bull 1980年我国制定了著名的 GB 2312-80双字节汉字编码标准(其中 GB 为ldquo国标rdquo这两个汉字的拼音首字母)收汉字 6 763 个

bull 1993年底又推出了等同于国际通用字符编码标准 ISOIEC 106461-1993 的国家标准 GB 130001-93 收汉字 20 902 个

bull 由于 GB 13000 与 GB 2312 的编码不兼容作为过渡2000年又公布了 GB 18030-2000 ( GBK )收汉字2万 7千个

1 GB 1988 与 GB 2311

bull 为了能够同时表示和处理汉字和英文实现中外文混排汉字编码必须兼容通用的 ASCII 编码因此1980年我国制定了与国际标准 ISO 6461972 (即ASCII )对应的国家标准 GB 1988-80《信息处理交换用的七位编码字符集》

bull 汉字成千上万不可能像 ASCII 一样只用单字节的七位来表示必须扩展到八位和多字节但是不能随意扩充而应该符合国际规范因此我国于 1980年又制定了与七位代码扩充到八位编码的国际标准 ISO 2022兼容的国家标准 GB 2311-80《信息处理交换用七位编码字符集的扩充办法》

GB 1988-80 ( ASCII )的代码结构图

行 0 1 2 3 4 5 6 7

0 SP

1 helliphellip

15

16

32个

控制符

94个

图形字符

DEL

GB 2311-80 的八位编码结构图列

行 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0 SP 100

1

helliphellip

14

15

C0

32个

控制符

GL

94或 96个

图形字符

DEL

C1

32个

控制符

GR

94或 96个

图形字符

1515

2 GB 2312

bull GB 2312-80《信息交换用汉字编码字符集 middot基本集》是我国制定的一个使用最广泛的汉字编码的强制性国家标准由原第四机械工业部的华北计算机研究所(后改名为电子工业部第十五研究所)起草1980年批准 1981年 5月 1日起实施

bull GB 2312-80 是在已有的国家标准 GB 1988-80(对应于 ISO 646 )和 GB 2311-80 (对应于 ISO 2022 )的基础上制定的采用与 ISO 2022兼容的GB 2311 之 7位到八位的代码扩充办法用双字节编码表示汉字与 ASCII兼容

收录的字符bull GB 2312 对应的是汉字的基本集共收汉字 6 763 个

可达到 9999 的使用频率因此除了极少数生僻的人名地名和古文外 GB 2312 中的汉字已经能基本满足平时的使用了

bull 除了汉字外 GB 2312 还收录了 682 个非汉字图形符号包括 202 个一般符号(含间隔符标点运算符和制表符) 60 个序号符 22 个数字符 52 个英文字母 169 个日文假名 48 个希腊字母 66 个俄文字母 26 个汉语拼音符号和 37 个汉语注音字母

bull 所以在 GB 2312-80 标准中共收录了( 6 763 汉字 + 682 非汉字图符 = ) 7 445 图形字符

两级汉字bull GB 2312 将其收录的六千多个汉字分成两个级别bull 一级汉字有 3 755 个都为使用频率高的常用汉

字为便于检索像字典那样将这些汉字按拼音字母顺序排列(同音字再按笔顺的横竖撇捺点折序排列)

bull 二级汉字有 3 008 个大部分较生僻不易掌握读音所以按部首顺序排列(同部首的字按笔画数排列同笔画数的字再按笔顺排列)

编码方案bull GB 2312 对所有图形字符(包括汉字和非汉字图符)都采用两个字节表示每个字节的低七位用于编码最高位全为 1 这样可以兼容 ASCII 编码(字节的最高位全为 0 )

bull 虽然在一个字节中最高位为 1 的符号位置有 128 个但从前面 GB 2311 的分析可知为了与 ASCII 的代码结构兼容保留了( 32 + 2 = ) 34 个控制符位置最后只有( 128 ndash 34 = ) 94 个符号位可供图形字符编码使用

bull 图形字符在代码表中的位置用区位码表示将码表分成94 个区对应于编码的第一个字节取值 0x21~0x7E 每个区又分成 94 个位对应于编码的第二个字节取值 0x21~0x7E (参见表 2-6 )

bull 例如ldquo中山大学rdquo的编码为中 (0xD6D0) 山 (0xC9BD) 大 (0xB4F3) 学 (0xD1A7)

GB 2312-80 字符集结构 20 21 22 helliphellip 7D 7E 7F

位号

区号

1 2 helliphellip 93 94

20

21~29 1~9 非汉字图符(682个)

2A~2F 10~15 空白区

30~57 16~55 一级汉字(3 755个)

58~77 56~87 二级汉字(3 008个)

78~7E 88~94 空白区

7F

第 1 区的部分非汉字图符

1区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 middot ˉ ˇ uml 々 mdash ~ hellip lsquo rsquo ldquo

17~32 rdquo 〔 〕 〈 〉 《 》 「 」 『 』 〖 〗 【 】 plusmn

33~48 times divide ∶ and or sum prod cup cap isin ∷ radic perp ∥ ang

49~64 ⊙ int ∮ equiv ≌ asymp ∽ prop ne ltu gtu le ge infin ∵ there4

65~80 deg prime Prime $ curren ¢ £ permil sect

81~94 rarr larr uarr darr

第 16 区的部分一级汉字

16区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 啊 阿 埃 挨 哎 唉 哀 皑 癌 蔼 矮 艾 碍 爱 隘 鞍

17~32 氨 安 俺 按 暗 岸 胺 案 肮 昂 盎 凹 敖 熬 翱 袄

33~48 傲 奥 懊 澳 芭 捌 扒 叭 吧 笆 八 疤 巴 拔 跋 靶

49~64 把 耙 坝 霸 罢 爸 白 柏 百 摆 佰 败 拜 稗 斑 班

65~80 搬 扳 般 颁 板 版 扮 拌 伴 瓣 半 办 绊 邦 帮 梆

81~94 榜 膀 绑 棒 磅 蚌 镑 傍 谤 苞 胞 包 褒 剥

第 56 区的部分二级汉字

56区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 亍 丌 兀 丐 廿 卅 丕 亘 丞 鬲 孬 噩 丨 禺 丿 匕

17~32 乇 夭 爻 卮 氐 囟 胤 馗 毓 睾 鼗 丶 亟 鼐 乜 乩

33~48 亓 芈 孛 啬 嘏 仄 厍 厝 厣 厥 厮 靥 赝 匚 叵 匦

49~64 匮 匾 赜 卦 卣 刂 刈 刎 刭 刳 刿 剀 剌 剞 剡 剜

65~80 蒯 剽 劂 劁 劐 劓 冂 罔 亻 仃 仉 仂 仨 仡 仫 仞

81~94 伛 仳 伢 佤 仵 伥 伧 伉 伫 佞 佧 攸 佚 佝

3汉字编码的辅助集bull 除了GB 2312基本集的 6 763 个简体汉字外国家标

准还给出了汉字编码字符集的多个辅助集bull 第二 四辅助集分别增加了 7 237 7 039 个简体汉字bull 第一和三 五辅助集则分别是与基本集和第二 四辅助集所对应的繁体汉字字符集的国家标准

bull 基本集加上辅助集共有 21 039 个简体汉字和 21 142个繁体汉字

bull 繁体汉字之所以多一些是因为在第一辅助集中有时几个繁体字对应一个简体字因此比基本集多出 103 个汉字

bull 基本集和辅助集的代码页之间靠其编码字节的最高位来区分

编码字符的分页标志

双字节汉字编码的页面结构第二字节 列号

行号 0 middot middot middot 32 33 34 helliphellip 125 126 127 128middot middot 160 161 162 helliphellip 254 255 0 middot middot 32

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

33 34 middot middot middot 126

1 2 middot middot middot 94

第四五辅助集 (7 039个汉字)

127

(兼容ASCII)

128 middot middot 160

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

161 162 middot middot middot 254

1 2 middot middot middot 94

第二三辅助集 (7 237个汉字)

1 2 middot middot middot 94

基本集第一辅助集 (6 763 6 866个汉字) (682个非汉字图符)

第一字节

255

4 Big5

bull 除了中国大陆使用的简体汉字外在台湾香港澳门和海外华侨社区使用的是传统的繁体汉字

bull 简体汉字使用 GB (国标)系列编码标准bull 繁体汉字一般使用的是 Big5内码(大五码)即台湾的ldquo资讯工业策进会rdquo发布的《标准交换码 (Ⅲ码 )》收录汉字 13 053 个

bull Big5内码是 1984年由台湾财团法人资讯工业策进会与宏碁 (Acer) 神通 (MiTAC) 佳佳零壹 (Zero One) 大众 (FIC) 等五大软件公司联合推出故称为大五码

BIG5 的代码空间低位字节

00 hellip 3F 40 hellip 7E 7F hellip A0 A1 hellip FE FF

高位字节

00middot

80

81middot

A0用户定义区 用户定义区

A1A2A3

非汉字图符 非汉字图符

A4middot

C6常用汉字 常用汉字

C7C8

用户定义区 用户定义区

C9middot

F9次常用汉字 次常用汉字

FAmiddot

FE用户定义区 用户定义区

FF

5少数民族文字编码bull 中国共有 56 个民族除了汉回满族一般使用汉语外其他少数民族大多有自己的民族语言

bull 我国各民族使用的 50 多种文字可以分为字母式结构文字和非字母式结构文字两大类ndash 字母式结构的有拉丁文斯拉夫文蒙古文维吾尔文哈萨克文藏文和朝鲜文等字母式

ndash 非字母式结构的有汉字象形文字图画文字和音节文字等bull 各民族文字的书写方向也有不同

ndash 壮文藏文朝鲜文彝文等的字从左到右行从上到下ndash 维吾尔文哈萨克文和柯尔克孜文等的字从右到左行从上

到下ndash 蒙古文和满文的字从上到下行从左到右ndash 汉字的书写方向有两种

bull 大陆的简体汉字的字从左到右行从上到下bull 港台与古旧书的繁体汉字的字从上到下行从右到左

国家标准bull 下面按发布时间列出若干已经公布的我国少数民族文字

编码集的国家标准(这些字符集一般分成两类对字母式结构文字采用八位编码对非字母式结构文字采用双字节编码)ndash GB 8045-87《信息处理交换用蒙古文七位和八位编码图形字

符集》收 82 个蒙古文字母和 12 个其他符号共 94 个字符ndash GB 12050-89《信息处理交换用维吾尔文编码图形字符集》收 32 个维吾尔文字母一个维吾尔文复合字符和 37 个其他符号共 70 个字符

ndash GB 12052-89《信息交换用朝鲜文编码字符集》收 5297 个朝鲜文字和 682 个其他符号(与 GB 2132同)共 5 979 个字符

ndash GB 13134-91《信息交换用彝文编码字符集》收 1165 个彝文字符和 688 个其他符号共 1853 个字符

ndash GB 16959-1997《信息技术 信息交换用藏文编码字符集 基本集》收 41 个藏文字母 36 个藏文主字 13 个元音字符12 个语音字符 10 个藏文数字 10 个半值符一个控制用连接符和 46 个其他藏文图形符号共 169 个字符

6 GB 13000bull GB 13000 是与 ISOIEC 10646 等价的国际通用编码字符集标准收汉字 2万多个但是与 GB 2312 和 GBK 不兼容

bull 1993年 5月 ISO 与 IEC 联合推出了可用于世界各种文字的通用编码字符集的国际标准的第 1部分ndash ISOIEC 10646-11993 Information technology -- Universal Multiple-Octe

t Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane (信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

ndash 该标准收字符 96万个几乎涵盖世界上的所有文字其中包含汉字 21 003 个

bull 1993年底我国推出了等同于国际标准 ISOIEC 1064611993 的强制性国家标准 ndash GB 130001-93《信息技术 通用多八位编码字符集( UCS ) 第一部分

体系结构与基本多文种平面》ndash 该标准于 1993年 12月 24日被国家技术监督局批准 1994年 8月 1日起实施

GB 13000 的主要特点

bull 世界各语言文种字符统一编码避免冲突便于国际交流

bull 编码空间宽阔连续每个图形字符的编码唯一(一字一码)不再存在兼容性问题

bull 按文种而不是按语言编码避免重复和浪费(如中日韩汉字的统一编码 CJK )

bull 与 GB 2312 和 GBK 不兼容

体系结构bull UCS 的体系结构是基于所谓ldquo多八位rdquo的而ldquo八位rdquo就是一个字节ldquo多八位rdquo就是多个字节

bull UCS采用 4 个字节来表征组面行位的四维空间bull 整个 UCS空间包含 128 个组( 0x00组 ~0x7F组)每组有 256 个平面( 0x00 平面 ~0xFF 平面)每个平面有 256 行每行又由 256 个字位构成

bull UCS共有( 128 times 256 = ) 32 768 个平面每个平面有( 256 times 256 = ) 65 536 个字位每个字位对应于一个字符的编码

bull 目前的编码只限于 00组已经定义的平面有 00组的00 平面mdashmdash称之为基本多文种平面 BMP ( Basic Multilingual Plane ) 及若干辅助平面

UCS 的全部编码空间

每个平面256times256 个

字位

00组 00 平面

00组 FF 平面

01组 00 平面

7F组 00 平面00

01组

7F组

UCS 的 00组

BMPbull BMP = Basic Multilingual Plane 基本多文种平面bull BMP 用作双八位编码字符集称之为 UCS-2 它被

分成四个区ndash A- 区(字位 0x0000~0x4DFF 有 19 903 个字位)用于

字母文字音节文字以及各种符号ndash I- 区(字位 0x4E00~0x9FFF 共 20 992 个字位)用于中日韩统一汉字( CJK )

ndash O- 区(字位 0xA000~0xDFFF 共 16 384 个字位)保留未来标准化用

ndash R- 区(字位 0xE000~0xFFFD 共 8 190 个字位)为 BMP 的限制使用区包括专用字符变形显现形式及兼容字符

BMP总貌

A-区

00~33 拼音文字(见下页)

34~3D 朝鲜文

3E~44 朝鲜文补充 -A

45~4D 朝鲜文补充 -B

I-区 4E~9F CJK统一汉字O-区 A0~DF

R-区

E0~F8 专用区

F9~FA CJK兼容汉字FB 拼音文字变形显现形式

FC~FD 阿拉伯文变形显现形式 -A

FE半形组合用标志

CJK兼容形式

小写变体

阿拉伯文变形显现形式 -B

FF 半形及全形字符 特殊字符

BMP 的0x00~0x33

行字母文字区

00 基本拉丁文 拉丁文-1补充

01 拉丁文扩充-A 拉丁文扩充-B

02 拉丁文扩充-B 国际音标扩充 进格修饰字符

03 组合用发音符 基本希腊文 希腊符号及哥普特文

04 西里尔文

05 美亚尼亚文 希伯来文(基本和扩充)

06 基本阿拉伯文 阿拉伯文扩充

07

08

09 梵文 孟加拉文

0A 锡克教文 古吉拉特文

0B 奥利雅文 泰米尔文

0C 泰卢固文 卡纳达文

0D 德拉维族文

0E 泰文 老挝文

0F

10 格鲁吉亚文

11 朝鲜文字母

12~1D

1E 拉丁文扩充增补

1F 希腊文扩充

20 广义标点 上下标 货币符号 符号组合用区分标志

21 类似字母的符号 数字形式 箭头

22 数学运算符

23 零杂技术用符号

24 控制图符 光学识别符 带括号的字母数字

25 制表符 方块元素 几何图形符

26 零杂符号

27 示意符等

28~2F

30 CJK符号和标点 平假名 片假名

31 注音 朝鲜文兼容字母 CJK零杂字符

32 带括号的CJK字母及月份

33 CJK兼容字符

留作将来标准化用

非图形字符

表示形式bull GB 13000提供了字符编码表示的两种替代使用的形式

ndash 双八位 BMP 形式( UCS-2 )mdashmdash允许使用 BMP 中的字符且每个字符用两个字节表示

ndash 肆八位正则形式( UCS-4 )mdashmdash允许使用 GB 13000 中的全部字符且每个字符用四个字节表示

bull 除了 UCS-24外还有另外两种变形的表示形式ndash UTF-8 (单字节 ~ 多字节)ndash UTF-16 (双字节和 4 字节与 UCS-2 等价)ndash 目前在工业上的实现均为 UTF-16 ( UCS-2 )和 UTF-8ndash UTF = Unicode UCS Transformation Format 统一码 UC

S转换格式bull 关于统一码我们会在下一小节详细介绍

7 GBK 与 GB 18030bull 由于 GB 13000 标准与 GB 2312 标准的字符编码不兼容作为过渡在国家信息技术标准化委员会的主持下制定了与 GB 2312兼容的《汉字内码扩展规范( GBK )》( K 为扩展的ldquo扩rdquo字的拼音首字母)并于 1995年 12月 15日由原国家技术监督局标准司联合原电子工业部科技与质量监督司作为指导性技术规范发布实施

bull 2000年 GBK又被国家标准 GB 18030-2000《信息技术 信息交换用汉字编码字符集 基本集的扩充》所代替该标准收汉字 2万 7千个

bull 与 GB 2312 一样 GB 18030 也为中国的强制性国家标准微软公司的 Windows XPVista78 中文版与苹果公司的 Mac OS X 和 iOS 谷歌公司的 Android (安卓)等操作系统已经全面支持 GBK

GB 18030 的码位范围分布

字节数 码位空间 码位数目

单字节 0x00~0x7F 128

双字节第 1字节 第 2字节

23 9400x81~0xFE

0x40~0x7E 0x80~0xFE

四字节第 1字节 第 2字节 第 3字节 第 4字节

1 587 6000x81~0xFE 0x30~0x39 0x81~0xFE 0x30~0x39

GB 18030的

总体结构图

收录字符bull 单字节部分mdashmdash收录了GBT 11383 的 0x00~0x7F 全部 128 个字符(似 ASCI

I )bull 双字节部分mdashmdash收录内容如下 (21 003 个汉字和 884 个符号共 21 887 个字符 )

ndash GB 130001-93 的全部 CJK 统一汉字字符 20 902 个( GB 2312 的编码汉字在双字节 2 区其他 CJK 统一汉字在双字节 34 区)

ndash GB 130001-93 的 CJK兼容区挑选出来的 21 个汉字ldquo郎凉秊helliphellip﨨﨩rdquo( 0xFD9C~0xFDA0 和 0xFE40~0xFE4F )

ndash GB 130001-93 中收录而 GB 2312未收录的台湾地区使用的图形字符 139 个ldquoˊˋ˙helliphelliprdquo( 0xA840~0xA895 和 0xA940~0XA988 )

ndash GB 130001-93收录的其他字符 31 ( 13)个(在双字节 5 区)ndash GB 2312-80 中的非汉字字符 682 个( 0xA1A1~0xA9EF )ndash GB 12345-90 的竖排标点符号 19 ( 29)个ldquo︵︶︹helliphellip︳︴rdquo( 0xA6D9~0xA6

F5 )ndash GB 2312-80未收录的 10 个小写罗马数字ldquoⅰⅱⅲhelliphellipⅸⅹrdquo( 0xA2A1~ 0xA2A

A )ndash GB 2312-80未收录的带音调的汉语拼音字母 5 ( 4)个ldquo ńňǹrdquo 以及 ɑ 和 ɡ ( 0

xA8BB~0xA8C0 )ndash 汉字数字零ldquo〇rdquo (0xA996) 和欧元符ldquoeurordquo (0xA2E3)ndash 表意文字描述符 13 个ldquohelliphelliprdquo( 0xA989~0xA995 )ndash 对 GB 130001-93增补的汉字和部首 构件 80 个ldquohelliphellip䶮rdquo( 0xFE50~ 0x

FEA0 )bull 四字节部分mdashmdash收录了上述双字节字符之外的包括 CJK 统一汉字扩充 A 在内

的 GB 130001-93 中的全部字符

GB 18030双字节部分的码位安排

类别 区名 码位范围 码位数 字符数 内容

符号区双字节 1区 A1A1~A9FE 846 718

GB 2312非汉字字符等

双字节 5区 A840~A9A0 192 166 台湾图符等

汉字区双字节 2区 B0A1~F7FE 6768 6763 GB 2312汉字双字节 3区 8140~A0FE 6080 6080 CJK统一汉字双字节 4区 AA40~FEA0 8160 8160 CJK统一汉字等

用户自定义区双字节用户区 1 AAA1~AFFE 564

用户自定义字符双字节用户区 2 F8A1~FEFE 658

双字节用户区 3 A140~A7A0 672

GB 18030双字节部分的编码空间结构图 尾字节

0x40larr――rarr0x7E 0x80larr――rarr0xA0 0xA1larr――――――――――――rarr0xFE

0x81 uarr darr

0xA0

0xA1 uarr darr

0xA7

0xA8 0xA9

首字节

0xAA uarr | | | | | | | | | | darr

0xFE

双字节 3区

汉字区6 080个码位

双字节用户区 3

用户自定义区672个码位

双字节 5区 图形符号区192个码位

双字节 4区

汉字区8 160个码位

双字节 1区

图形符号区564个码位

双字节 2区

汉字区6 768个码位

双字节用户区 1 用户自定义区564个码位

双字节用户区 2 用户自定义区658个码位

223 国际通用字符编码

bull Unicode (统一码)是由多语言软件制造商组成的统一码协会( httpwwwUnicodeorg)所制定一种国际字符的编码标准

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull 本节主要介绍这两种关系密切的主流国际字符编码标准的来历编码方案各自特点与相互关系

1 Unicode 统一码bull 发展历史

ndash 1987年施乐( Xerox )公司的 Joe Becker 与 Lee Collins 和苹果( Apple )公司的 Mark Davis 等人开始讨论统一编码 1987年 12月 Joe Becker造词 Unicode (统一码)含义为ldquo unique universal and uniform character encodingrdquo (单一通用统一的字符编码) 1989年 2月开始定期召开统一码会议 1989年 9月公布 Unicode草案

ndash 1991年 1月 3 日由 Xerox Apple Sun IBM Aldis Microsoft 等公司出资在美国加州成立了统一码协会( Unicode Consortium )并由协会设立非盈利性的统一码公司( Unicode Inc )后来 HP Adobe Borland Digital Lotus Novell 等公司也纷纷加入 1991年 1月成立统一码技术委员会 UTC 并制定了其规程

ndash 1991年 2月在 Ed Hart 的推动下进行了ldquo统一码对 10464 国际标准草案 1rdquo 的对话Unicode 与 ISOIEC 10646开始走向融合

ndash 1991年 8月发布 Unicode 标准 10版的第 1卷(体系结构非表意字符) 1992年6月发表 Unicode 10版的第 2卷(表意字符) 1993年 6月发布 Unicode 11版与 1993年 5月公布的 ISOIEC 10646-11993 实现了合并

ndash 1996年 7月发布 Unicode 20版ndash 1999年 9月发布 Unicode 30版ndash 2003年 4月发布 Unicode 40版(对应于 ISOIEC 106462003 ) 2004年 3月 31日发布 Unicode 401版 2005年 3月 31日发布 Unicode 410版

ndash 2006年 7月 14日发布 Unicode 50版 2008年 4月 4日发布 Unicode 51版 2009年 12月 22日发布 Unicode 52版

ndash 2010年 10月发布 Unicode 60版 2012年 1月发布 Unicode 61版(对应于 ISOIEC 106462012 ) 2012年 9月推出 Unicode 62版 2013年 9月推出 Unicode 63版

ndash 2014年 6月 16日发布 Unicode 70版 ndash 2015年 6月 17日发布 Unicode 80版

字符集bull Unicode 字符集的空间分成双字节的基本多语言平面 (Basic Multilingual Pla

ne BMP) 和 4 字节的辅助多语言平面 (Supplementary Multilingual Plane SMP) 两种

bull BMPndash Unicode 的基本平面或基本多语言平面 BMP 对应于 ISOIEC 10646-1 的第 00组的 00 平面( BMP )即 Unicode 与 ISOIEC 10646 的 BMP 中的字符编码完全一致

bull SMPndash 鉴于 Unicode 原有的 16位元空间不足以应用从 Unicode 31版本开始设立了 16 个辅助平面使 Unicode 的可使用空间由六万多字增至约一百万字

ndash 原有的 Unicode双字节空间称为基本平面或基本多语言平面 BMP 辅助多语言平面 SMP 字符要用 4 字节来储存

ndash 第一辅助平面摆放拼音文字(主要为现时已不再使用的文字)及符号范围在 U+10000 - U+1FFFD

ndash 第二辅助平面又称为表意文字补充平面 (Supplementary Ideographic Plane 简称 SIP) 现时摆放ldquo中日韩统汉字扩展 B 区rdquo共 43253 个汉字范围在 U+20000 - U+2FFFD

ndash 第三至十三辅助平面尚未使用ndash 第十四辅助平面又称为特殊用途补充平面 (Supplementary Special-purpose Pl

ane 简称 SSP) 摆放 Language tags 和 Variation Selectors 它们都是控制字符范围在 U+E0000 - U+E01FF

ndash 第十五至十六辅助平面都是私人使用区它们的范围是 U+F0000 - U+FFFFD 及 U+100000 - U+1000FD

bull Unicode 字符集的具体编码方式参加第 4小节ldquo 4 UTFrdquo

2 ISOIEC 10646

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull ISOIEC 10646 标准由 ISO 与 IEC 联合成立的 ISOIEC JTC1SC2WG2 制定ndash JTC 1 ( Joint Technical Committee 1 on Information

technology ISOIEC信息技术联合技术委员会 1 )负责信息技术方面标准的制定工作

ndash SC 2 ( SubCommittee 2 on Coded character sets 编码字符集分会 2 )下的 WG 2 ( Working Group 2 on Universal coded character set 通用编码字符集工作组 2 )负责制定国际通用字符编码标准即后来公布的 ISOIEC 10646

发展历史bull 1984年 ISO 的一些会员国发起制定新的国际字符编码标准同年 4月 ISO

与 IEC 联合成立 ISOIEC JTC1SC2WG2 1987年 3月制定出编码架构1992年 6月投票通过第二版国际标准草案

bull 1993年 5月推出 10646 标准时将内容分成两个部分标准首先发布的是其中的第 1 个部分(体系结构与基本多文种平面)的第 1版( Edition 1 ) ISOIEC 10646-11993 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane(信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

bull 2000年 3月推出 10646 标准第一个部分的第 2版( Edition 2 ) ISOIEC 10646-12000 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane

bull 2001年 10月推出 10646 标准第 2版的第二个部分(辅助平面)的第 1版( Edition 1 ) ISOIEC 10646-22001 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 2 Supplementary Planes

bull 2003年 10月推出的 10646新标准(第 1版 Edition 1 )将老标准中的两个部分标准合并成了一个单一的标准 ISOIEC 106462003 Information technology -- Universal Multiple- Octet Coded Character Set (UCS) 后来又于 2010年 2012年和 2014年分别推出了 ISOIEC 106462010 (第 2版)ISOIEC 106462012 (第 3版)和 ISOIEC 106462014 (第 4版)

UCS 通用字符集bull 通用字符集( Universal Character Set UCS )是

ISOIEC 10646 标准所定义的字符编码方式采用 4字节编码又称为 Universal Multiple-Octet Coded Character Set (通用多八位编码字符集)

bull 通用字符集是所有包括了其他字符集它保证了与其他字符集的双向兼容即如果你将任何文本字符串翻译到 UCS 格式然后再翻译回原编码你不会丢失任何信息

bull UCS 包含了已知语言的所有字符除了拉丁语希腊语斯拉夫语希伯来语阿拉伯语亚美尼亚语格鲁吉亚语还包括中文日文韩文这样的象形文字 UCS 还包括大量的图形印刷数学科学符号

名字与组合字符bull UCS 不仅给每个字符分配一个代码而且赋予了

一个正式的名字表示一个 UCS 或 Unicode值的十六进制数通常在前面加上ldquo U+rdquo 例如ldquo U+0041rdquo代表字符ldquo Ardquo

bull UCS里有些编码点分配给了组合字符组合字符机制允许在任何字符后加上重音符或其他指示标记 这在科学符号中特别有用 比如数学方程式和国际音标字母 可能会需要在一个基本字符后组合上一个或多个指示标记

实现级别bull 并不是所有的系统都需要支持像组合字符这样的的先进

机制因此 ISO 10646 指定了如下三种实现级别ndash 级别 1不支持组合字符和韩语 Hangul Jamo 字符 ( 一种特

别的 更加复杂的韩国文的编码 使用两个或三个子字符来编码一个韩文音节 )

ndash 级别 2类似于级别 1 但在某些文字中允许一列固定的组合字符 (例如 希伯来文 阿拉伯文 Devangari 孟加拉语 果鲁穆奇语 Gujarati Oriya 泰米尔语 Telugo 印 埃纳德语 Malayalam 泰国语和老挝语 ) 因为如果没有最起码的几个组合字符 UCS就不能完整地表达这些语言

ndash 级别 3支持所有的 UCS 字符如可以在任意一个字符上加上一个箭头或 和一个 tilde(颚化符号即字母上面的~ )

编码方式bull UCS 有如下两种编码方式

ndash UCS-2与 Unicode 的 2 字节编码基本一样ndash UCS-4 4 字节编码目前是在 UCS-2 前加

上 2 个全零的字节bull UCS 还有 UTF 编码方式参见下面第 4小节ldquo 4 UTFrdquo

3 Unicode 与 ISOIEC 10646bull 关系

ndash 历史上存在两个独立的尝试创立单一字符集的组织即国际标准化组织( ISO )和多语言软件制造商组成的统一码协会组织( Unicodeorg )前者开发的 ISO 10646项目后者开发的 Unicode项目因此最初制定了不同的标准

ndash 1991年前后两个项目的参与者都认识到世界不需要两个不兼容的字符集于是它们开始合并双方的工作成果并为创立一个单一编码表而协同工作

ndash 从 Unicode20开始 Unicode采用了与 ISO 10646-1相同的字库和字码 ISO 也承诺 ISO10646 将不会替超出 U+10FFFF 的 UCS-4 编码赋值以使得两者保持一致

ndash 两个项目仍都存在并独立地公布各自的标准但 Unicode协会和 ISOIEC JTC1SC2 都同意保持两者标准的码表兼容并紧密地共同调整任何未来的扩展

异同bull Unicode协会公布的 Unicode 标准包含了 ISO 10646-1 实现级别

3 的基本多文种平面在两个标准里所有的字符都在相同的位置并且有相同的名字

bull ISO 10646 标准就像 ISO 8859 标准一样只不过是一个简单的字符集表它定义了一些编码的别名指定了一些与标准有关的术语并包括了规范说明指定了怎样使用 UCS连接其他 ISO 标准的实现等

bull Unicode 标准额外定义了许多与字符有关的语义符号学并详细说明了绘制某些语言(如阿拉伯语)表达形式的算法处理双向文字(比如拉丁文和希伯来文的混合文字)的算法排序与字符串比较所需的算法等等

bull 考虑到 Unicode 标准有一个易记的名字既便宜又包括更多的辅助信息因而它使用得更广泛然而

bull 一般认为用于打印 ISO 10646-1 标准的字体在某些方面的质量要高于用于打印 Unicode 20 的专业字体设计者总是被建议说要两个标准都实现但一些提供的样例字形有显著的区别 ISO 10646-1 标准同样使用四种不同的风格变体来显示表意文字如中文日文和韩文 (CJK) 而 Unicode 20 的表里只有中文的变体

4 UTFbull Unicode 和 UCS 都是一个字符集可以看作为内码bull UTF ( UnicodeUCS Transformation Format 统一码

通用字符集转换格式)是一种编码方式它的出现是因为 Unicode 和 UCS 不适宜在某些场合直接传输和处理

bull UCS 和 Unicode 只是分配整数给字符的编码表现在存在好几种将一串字符表示为一串字节的方法(如高或低位字节在前)

bull 最显而易见的两种方法是将 UCS 和 Unicode 文本存储为 2 个 或 4 个字节序列的串这两种方法的正式名称分别为 UCS-2 和 UCS-4

bull 常用的 UTF具体编码方式有 UTF-8 UTF-16 和 UTF-32

UTF-8

bull UTF-8 是 UTF 的一种具体编码方式在 ISO 10646-1 的附录 R 和 IETF 的 RFC 2279 里定义

bull 由于要使文档中的文字与 ASCII兼容故 UTF-8 选择了使用可变长度字节来储存 Unicode 和 UCS 例如ndash ASCII 字母继续使用 1 字节储存ndash 重音文字希腊字母或西里尔字母等使用 2 字节来储存ndash 常用的汉字就要使用 3 字节ndash 辅助平面字符则使用 4 字节ndash 即 ASCII 不作变换其他字符做变长编码每个字符 1~4 字节

bull UTF-8 通常作为外码bull 在 UTF-8 文件的开首很多时都放置一个 U+FEFF 字符

(UTF-8 以 EF BB BF 代表 ) 以显示这个文字档案是以UTF-8 编码

UTF-8 的优点bull 与 CPU 字节顺序无关可以在不同平台之间交流

bull 容错能力高任何一个字节损坏后最多只会导致一个编码码位损失不会链锁错误 ( 如 GB 码错一个字节就会整行乱码 )

UTF-8 的缺点bull UTF-8 使用可变长度字节储存使计算机程序设计变得复杂 (故此在计算机程序或操作系统内部多采用 UCS-2 编码 )

bull 在旧式的中文日文及朝鲜文编码之中每字符都使用 2 字节储存而 UTF-8 须使用 3 字节 (采用 UTF-16 编码则可只使用 2字节储存 )

bull 泰语以往使用的 ISO 8859-11 每字符只使用 1 字节储存而 UTF-8 须使用 3 字节

UTF-8储存的多字节串字符bull U-00000000 - U-0000007F 0xxxxxxx bull U-00000080 - U-000007FF 110xxxxx 10xxxxxx

bull U-00000800 - U-0000FFFF 1110xxxx 10xxxxxx

10xxxxxx bull U-00010000 - U-001FFFFF 11110xxx 10xxxxx

x 10xxxxxx 10xxxxxx bull 在多字节串中第一个字节的开头ldquo 1rdquo 的数目就

是整个串中字节的数目bull 每个使用 UTF-8储存的字符除了第一个字节外其余字节的头两个位元都是以 10 开始使文字处理器能够较快地找出每个字符的开始位置

UTF-16bull UTF-16 是 UTF 的另一种具体编码方式在 ISO 1064

6-1 的附录 Q 和 IETF 的 RFC 2781 里定义bull UTF-16 是变长码( 2 或 4 字节)大致相当于 20位编码值在 0 到 0x10FFFF 之间基本上就是 Unicode 编码的实现 UTF-16 与 CPU 字序有关但因为最省空间常作为网络传输的外码 UTF-16 是 Unicode 的完美编码

bull lt0x10000 的直接用其对应的 16位整数编码位于 0x10000 ~ 0x10FFFF 之间的用 0xD800~0xDBFF 的 16位整数后跟 0xDC00~0xDFFF 的 16位整数的 4 字节编码 gt 0x10FFFF 的不能用 UTF-16 表示

bull 在 Unicode 的 BMP 中定义的字符(无论是拉丁字母汉字或其他文字或符号)一律使用 2 字节存储而在辅助平面定义的字符则以两个 2 字节的值来存储

UTF-16 的特点bull UTF-16比起 UTF-8 的好处在于大部分字符都以固定长

度的 2 字节存储但 UTF-16却无法相容于 ASCII 编码bull UTF-16 有两种编码模式即大尾序( big Endian 高位字节在前)和小尾序( little Endian 高位字节在后)储存形式(一般來說以 Macintosh 制作和存储的文字使用大尾序格式以 Microsoft 或 Linux 制作和存储的文字使用小尾序格式)

bull 为了弄区分 UTF-16 文件的大小尾序在 UTF-16 文件的开头都会放置一个 U+FEFF 字符作为字节顺序标记 (UTF-16LE 以 FF FE代表 UTF-16BE 以 FE FF代表 ) 以显示该文档是以 UTF-16 编码的

UTF-32

bull UTF-32 仅使用了 Unicode范围 (0 到 0x10FFFF) 的 32位编码相当于 UCS-4 的子集

bull 由于 Unicode 和 ISOIEC 10646 的编码和结构与前面讲过的 GB 13000 类似或等价这里就不再做详细的介绍

5支持bull 现在 UnicodeUCS 已经获得了十分广泛的支

持ndash网络与浏览器(如 HTML 4050 XML 与 IE

Safari Netscape Firefox Chrome Opera Edge 等)

ndash操作系统(如 Windows NT2000XPVista7810 Mac OS X iOS Android和 Linux )

ndash 编程语言新版本(如 CC++JavaObjective-CC Swift 等)

Unicode 代码的浏览器显示代码 字符标准名称 (英语 )

浏览器的显示

amp65 大写拉丁字母 A A

amp223 小写拉丁字母 Sharp S szlig

amp254 小写拉丁字母 Thorn thorn

amp916 大写希腊字母 Delta Δ

amp1049 大写斯拉夫字母 Short I Й

amp1511 希伯来字母 Qof ק

amp1605 阿拉伯字母 Meem م

amp3671 泰文数字 7 ๗amp4688 埃塞俄比亚音节文字 Qha ቐ

amp12354 日语平假名 A あamp12450 日语片假名 A アamp21494 简体汉字 叶 叶amp33865 繁体汉字 葉 葉amp50685 韩国音节文字 Yeob 엽

23 文字输出bull 文字输出是指将计算机内的字符编码通过计算机的输出设备(如显示器打印机喇叭)展现出所对应字符的图形或声音供人们阅读或聆听

bull 本节主要介绍文字图示输出的字形技术bull 文字声音输出属于语音合成只在本节的末尾作简单的介绍

231 字形技术bull 文字 = 图形bull 不论是象形文字中的单字还是拼音文字

中的字母都是用图形来表示的bull 在计算机里文字的表示 输出(显示和打

印)涉及ndash 字型ndash 字体ndash 字库

1字型bull 字型指构造和生成字形的方法一般可分为

ndash 点阵字 DOS 显卡 ROM 金山 科印特点似位图显示快占空间(字库大)放大后有马赛克效应

bull 显示字母 88 汉字 1616bull 打印 2424 4848 6464

ndash 矢量字单线条用于笔式绘图仪特点字库小算法简单难看

ndash 轮廓字用曲线描绘字的轮廓输出效果好所见即所得(WYSWYG) 可无级放大易实现空心 阴影 填充 变形等各种特效功能轮廓曲线一般采用样条曲线如 TrueType (Apple 1991 Mac OS Microsoft 1992 Windows 31)用的是二次 B 样条 Bezier曲线中文之星 RichWin采用的是三次 B 样条 Bezier曲线

字型种类

2字体bull 字体指字的形状风格如

ndash 汉字的

ndash 英文的

宋体楷体黑体仿宋

行楷隶书新魏幼圆

Times New Roman Arial Narrow Courier New

常用汉字字体bull 宋体mdashmdash宋体来自于北宋时雕版刻书所采用的欧体字(唐朝欧阳询体)宋体字的横顿拉捺挑钩别具特色间架平正疏密适中字体秀丽遒劲但笔画横细竖粗适合于刀刻不宜于手写现在宋体广泛用于印刷常来表现文档的正文

bull 仿宋体mdashmdash 1920年钱塘的丁辅之与丁善之等人将明代以后盛行的方廓形字体加以改造创造出长形和方形的聚珍仿宋后来演化为现在的仿宋体仿宋体比较接近于手写体为宋体和楷体的折中是采用的宋体的结构和楷体的笔法而成现常来表现打印文件以及文档的摘要和注释等

bull 黑体mdashmdash黑体是适应工艺美术的发展而出现的一种等线体是从日本引进的黑体的结构与宋体没有什么差别只是其笔画粗细一致健实粗壮主要用于文档的标题和重点及标语广告等方面

bull 楷体mdashmdash楷体源于楷书楷体的笔画圆浑笔调灵活结构端正美观但不宜于木板雕刻所以直到清末西洋的石板印刷术传入后才开始广泛用于印刷现代的楷体创造于 20世纪的二三十年代主要用于文档的正文(多用于中小学教材)也可用于工艺美术等方面

3字库bull 字库为一种文字的某一字体的所有字符的集合一般存放在一个磁盘文件中

bull 由于象形文字中单字的数量大(成千上万)而拼音文字中字母的数量小(不到一百个)所以字库的大小有很大的差别

bull 为了使文档界面丰富多彩常见的字处理软件都支持多种字体带有众多字库

4点阵字型的国家标准bull 我国已经公布了若干字体的点阵字型之国家标准

ndash GB 50071-19852001 信息技术 汉字编码字符集(基本集) 24 点阵字型

ndash GB 50072-19852001 信息技术 汉字编码字符集(辅助集) 24 点阵字型

ndash GB 5199-19862001 信息技术 汉字编码字符集(基本集) 16 点阵字型 宋体

ndash GB 6345-19862001 信息技术 汉字编码字符集(基本集) 32 点阵字型 宋体

ndash GB 12041-2001 信息技术 汉字编码字符集(基本集) 48点阵字型 宋体

ndash GB 17698-1999 信息技术 通用多八位编码字符集( I 区) 汉字 16 点阵字型

232 语音合成bull 文字的声音输出主要使用的是语音合成的技术bull 语音合成功能是ldquo文rarr语rdquo转换bull 文语转换 TTS (Text-To-Speech) 是将文本形式的信息转换成自然语音的一种技术其最终目标是使计算机输出清晰而又自然的声音

bull 英语的语音合成在上世纪 80年代就早已成熟而中文 汉语的合成现在也趋于成熟并有了广泛的应用(如汽车导航仪智能手机等)

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 7: 第一篇  媒体

212 手写输入bull 随着各种手持设备(如平板电脑智能手

机)的不断出现与普遍使用联机手写文字的实时识别与输入方法已经得到越来越广泛的应用

bull 手写输入是指人用手指或(特制的)笔在图形板上书写机器进行实时的识别并将对应文字的编码输入

bull 汉字的联机手写输入是自动汉字识别中最简单的一种

特点

bull 机器识别的是笔画而不是整字bull 识别结果可以及时反馈所以对识别率要

求不高bull 输入方便不需对输入人员进行培训bull 适合于边想边写bull 可利用图形板方便地进行编辑和修改

技术bull 人写字时手的抖动书写速度的变化图形板的

量化和感应噪声等会对识别产生干扰因此必须进行必要的平滑和去噪预处理

bull 识别时还需进行字符分割以区分哪些笔画属于同一汉字

bull 手写输入在技术涉及图像识别模式匹配人工智能语言文字书写方式与习惯等方面的知识和方法

bull 目前的手写识别方法和技术还有待于进一步改进和完善以提高识别率减少对输入的限制降低输入设备和识别软件的成本加强软件的自学习功能

213 语音输入bull 语音输入是指利用语音内容的识别技术

将人的话音实时转换为对应文字编码并录入计算机

bull 语音输入的核心技术是语音识别技术bull 语音识别技术现在正在发展过程中还

有待于进一步完善

语音识别技术bull 早期的语音识别技术一直很落后到上世纪 70年代中采

用线性预测编码 LPC 和同态信号处理 (homomorphic signal process) 方法技术有了长足的进步但效果不理想到了上世纪 80年代矢量量化 (VQ Vector Quantization) 和隐马尔科夫模型 (HMM Hidden Markov Model) 的成功使用使语音识别在上世纪 90年代达到了商用化程度不过仍然存在问题识别率一直难以进一步提高又进入了相对低潮的相持阶段2011年 10月 14日苹果公司推出的 iPhone 4S 手机支持智能语音指令输入虽然还存在不少问题但是却引发了业界对语音输入研究和应用的新热潮

bull 语音输入的字词识别涉及词库声母分类规则库声母与韵母结合规则库声调知识库这些统称为声学基元模型库句子识别还涉及语义语法句法语用知识库这些统称为语言模型库句子理解则涉及常识库(难)

语音识别的过程图语音输入

darr数据采集

darr波形自动分析

darr预处理 参数特征提取

分帧后的语音特征矢量集合rarrdarr 声学模型 时间对准larr声学基元模型库

darr 语言模型库rarr 组句分析 larr统计信息与规则

语句候选rarrdarr识别语句输出

语音识别系统分类bull 按可识别词汇量可分为

ndash 小词汇量语音识别系统 (lt100)ndash 中词汇量语音识别系统 (100~1000)ndash 大词汇量语音识别系统 (gt1000)

bull 按语音输入方式可分为ndash 孤立词语音识别系统(简单)ndash 连接词语音识别系统(较难)ndash 连续语音语音识别系统(难)

bull 按发言人类型可分为ndash 特定人( 1 人)ndash 限定人( n 人)ndash 非特定人(任意人)

语音识别的目标是开发大词汇量非特定人的连续语音识别系统

214 扫描输入bull 扫描输入是指将图书期刊打印材料和印刷

品中的印刷体文字先通过扫描仪变成计算机中的数字图像然后再利用文字识别软件 OCR 自动转换成对应得文字编码并录入计算机

bull 目前我国研制的多种 OCR 软件的识别率已经达到 95 以上不过受印刷品质量的影响比较大

bull OCR = Optical Character Recognition Reader 光学字符识别 阅读器

bull 计算机识别印刷汉字的核心问题是抓住汉字的字形特征它主要体现在笔画和关键点上

bull 另一个核心问题是版面的分析与理解包括从图文混排版面中自动排除图形部分自动区分横排和竖排自动识别标题和正文对分栏文本实现自动对接等

bull 扫描输入方法除了用于印刷体文字的识别和输入外也可以用于手写体印刷文字的输入其文字识别的方法与印刷体文字类似也与手写实时输入的方法相关不过失去了笔顺信息属于整字识别类型

22 字符编码bull 字符编码包括西文编码中文编码和国际通

用字符编码本节的重点放在常用的编码标准上

bull 221 西文编码( ASCII 等)bull 222 中文编码( GB 2312 GB 13000

GBKGB 18030 )bull 223 国际通用字符编码( Unicode IS

OIEC 10646 )

221 西文编码bull 西文编码主要介绍 ASCII 字符集然后简

单介绍 IBM公司的 EBCDIC 和两种扩展 ASCII 显示字符表

bull 1 ASCII

bull 2 EBCDIC

bull 3扩展 ASCII 显示字符

1 ASCII

bull ASCII ( American Standard Code for Information Interchange 美国信息交换标准码)是 ANSI于 1963年提出 1968年确定的一种英文字符编码标准( ANSI X34-1986 )广泛应用于计算机网络和信息产业

bull ANSI = American National Standards Institute 美国国家标准协会

bull ASCII采用 7位二进制数的(共计 128 个)代码来表示字符(包括图示符和控制符)加上奇偶校验位(或最高位置 0 )则每个字符由 8位(一个字节)组成

ASCII 字符集

0 1 2 3 4 5 6 7

0 NUL DLE SP 0 P ` p

1 SOH DC1 1 A Q a q

2 STX DC2 ldquo 2 B R b r

3 ETX DC3 3 C S c s

4 EOT DC4 $ 4 D T d t

5 ENQ NAK 5 E U e u

6 ACK SYN amp 6 F V f v

7 BEL ETB lsquo 7 G W g w

8 BS CAN ( 8 H X h x

9 HT EM ) 9 I Y i y

A LF SUB J Z j z

B VT ESC + K [ k

C FF FS lt L l |

D CR GS - = M ] m

E SO RS gt N ^ n ~

F SI US O _ o DEL

bull ASCII 字符集以 32 个字符为一组bull 第一组( 0x00~0x1F )为控制符

(非打印符)用于数据处理 通信系统及其相应设备中的信息交换

bull 后面的除了第一个字符( SP空格符 0x20 )和最后一个字符( DEL删除符 0x7F )外全都是可打印(显示)的图示符包括ndash 第二组( 0x20 ~0x6F )的数字空格

和常用标点符号ndash 第三组( 0x40~0x5F )的大写拉丁字

母(即英文字母)与少数标点符号ndash 第四组( 0x60~0x7F )的小写拉丁字

母与少数标点符号

ASCII 的国际标准bull 1972年美国的国家标准 ASCII 与其若干拉丁语系国家的变体一起成为国际标准 ISO 6461972 ( Information processing -- ISO 7-bit coded character set for information interchange 信息处理mdashmdash ISO 用于信息交换的七位编码字符集)

bull 这些变体主要是将 ASCII 字符集中不常用的符号ldquo $ [ ] ^ ` | ~rdquo替换为他们各自语言的重音符号

bull 1987年 ISO 646 中的 ASCII部分成为 646 的国际参考版( IRV = International Reference Version ) ISO 646IRV1987 但是其中的美元符 $被替换为国际通用货币符 curren

bull 1991年推出的修订版 ISOIEC 646IRV1991 还原成原始的美国 ASCII 所以又被称为 ISO 646-US 或 US-ASCII

替代标准bull 由于 ISO 646 中各国的变体存在明显的兼容和统一问题现在已经作废

bull 有关编码已经被新的国际标准 ISOIEC 8859-1~16 19871998 ( Information processingtechnology -- 8-bit single-byte coded graphic character sets 信息处理 技术mdashmdash 8位单字节编码的图形字符集)所替代

bull 后来 ISO 646 与 ISOIEC 8859 标准又都被纳入 ISOIEC 1064619932003 ( Information technology -- Universal Multiple-Octet Coded Character Set (UCS) 信息技术mdashmdash通用多八位编码字符集 (UCS) )标准之中

bull 其中的标准编号 ISO 10646 = ISO 646 + 10000

标准化组织bull ANSI = American National Standards Institute 美

国国家标准协会bull ISO = International Organization for Standardization

国际标准化组织是由 153 个国家的国家标准协会联合组成的一个非政府国际组织总部(中央秘书处)设在瑞士的日内瓦负责制定适应商业和广泛社会需要的各种国际标准网址为 httpwwwisoorg

bull IEC = International Electrotechnical Commission 国际电工技术委员会是一个成立于 1906年 6月的国际标准化权威组织属于联合国的甲级咨询机构负责制定关于电工电子各方面的标准有 42 个会员国总部也设在瑞士的日内瓦网址为httpwwwiecch我国于 1958年 8月参加

2 EBCDIC

bull 西文的字符编码方案除了通用的 ASCII外还有 IBM公司于 1960年代初提出的 EBCDIC ( Extended Binary-Coded Decimal Interchange Code扩充的二进制编码的十进制交换码)

bull EBCDIC 现在仍然(仅)在 IBM 的 OS390 与 TPF 以及富士通 - 西门子的 BS2000OSD 等大型机的操作系统中使用

bull EBCDIC 是一种八位编码其字符的编码方案与ASCII 的完全不同

EBCDIC 字符集 0 1 2 3 4 5 6 7 8 9 A B C D E F

0 NUL DLE DS SP amp - 0

1 SOH DC1 SOS a j ~ A J 1

2 STX DC2 FS SYN b k s B K S 2

3 ETX TM c l t C L T 3

4 PF RES BYP PN d m u D M U 4

5 HT NL LF RS e n v E N V 5

6 LC BS ETB UC f o w F O W 6

7 DEL IL ESC EOT g p x G P X 7

8 GE CAN h q y H Q Y 8

9 RLF EM ` i r z I R Z 9

A SMM CC SM cent | |

B VT CU1 CU2 CU3 $

C FF IFS DC4 gt

D CR IGS ENQ NAK ( ) _ lsquo

E SO IRS ACK + lt =

F SI IUS BEL SUB | ldquo EO

3扩展 ASCII 显示字符bull ( 1 ) IBM PC

ndash IBM PC 的扩展 ASCII 显示字符由 IBM公司为其 PC 机制定可以由原始的 IBM PC 显示器在 DOS状态下显示

bull ( 2 ) Microsoft Windows ndash Microsoft Windows 的扩展 ASCII 显示字符由

微软公司为其Windows操作系统制定可以在Windows环境的西文状态下被显示

IBM PC 的扩展 ASCII 显示字符表

Microsoft Windows 的扩展 ASCII 显示字符表

222 中文编码bull 1 GB 1988 与 GB 2311

bull 2 GB 2312

bull 3汉字编码的辅助集bull 4 Big5

bull 5少数民族文字编码bull 6 GB 13000

bull 7 GBK 与 GB 18030

汉字编码bull 为了计算机处理汉字必须先对汉字进行编码由于汉

字数量大(《康熙字典》收字 47 035 个《汉语大字典》收字 54 678 个据统计在形成楷体后出现的汉字约有 9万个左右)显然不能像 ASCII那样用 7位或单字节来进行编码至少需要两个字节(最多可表示 6万5千多个字符)

bull 1980年我国制定了著名的 GB 2312-80双字节汉字编码标准(其中 GB 为ldquo国标rdquo这两个汉字的拼音首字母)收汉字 6 763 个

bull 1993年底又推出了等同于国际通用字符编码标准 ISOIEC 106461-1993 的国家标准 GB 130001-93 收汉字 20 902 个

bull 由于 GB 13000 与 GB 2312 的编码不兼容作为过渡2000年又公布了 GB 18030-2000 ( GBK )收汉字2万 7千个

1 GB 1988 与 GB 2311

bull 为了能够同时表示和处理汉字和英文实现中外文混排汉字编码必须兼容通用的 ASCII 编码因此1980年我国制定了与国际标准 ISO 6461972 (即ASCII )对应的国家标准 GB 1988-80《信息处理交换用的七位编码字符集》

bull 汉字成千上万不可能像 ASCII 一样只用单字节的七位来表示必须扩展到八位和多字节但是不能随意扩充而应该符合国际规范因此我国于 1980年又制定了与七位代码扩充到八位编码的国际标准 ISO 2022兼容的国家标准 GB 2311-80《信息处理交换用七位编码字符集的扩充办法》

GB 1988-80 ( ASCII )的代码结构图

行 0 1 2 3 4 5 6 7

0 SP

1 helliphellip

15

16

32个

控制符

94个

图形字符

DEL

GB 2311-80 的八位编码结构图列

行 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0 SP 100

1

helliphellip

14

15

C0

32个

控制符

GL

94或 96个

图形字符

DEL

C1

32个

控制符

GR

94或 96个

图形字符

1515

2 GB 2312

bull GB 2312-80《信息交换用汉字编码字符集 middot基本集》是我国制定的一个使用最广泛的汉字编码的强制性国家标准由原第四机械工业部的华北计算机研究所(后改名为电子工业部第十五研究所)起草1980年批准 1981年 5月 1日起实施

bull GB 2312-80 是在已有的国家标准 GB 1988-80(对应于 ISO 646 )和 GB 2311-80 (对应于 ISO 2022 )的基础上制定的采用与 ISO 2022兼容的GB 2311 之 7位到八位的代码扩充办法用双字节编码表示汉字与 ASCII兼容

收录的字符bull GB 2312 对应的是汉字的基本集共收汉字 6 763 个

可达到 9999 的使用频率因此除了极少数生僻的人名地名和古文外 GB 2312 中的汉字已经能基本满足平时的使用了

bull 除了汉字外 GB 2312 还收录了 682 个非汉字图形符号包括 202 个一般符号(含间隔符标点运算符和制表符) 60 个序号符 22 个数字符 52 个英文字母 169 个日文假名 48 个希腊字母 66 个俄文字母 26 个汉语拼音符号和 37 个汉语注音字母

bull 所以在 GB 2312-80 标准中共收录了( 6 763 汉字 + 682 非汉字图符 = ) 7 445 图形字符

两级汉字bull GB 2312 将其收录的六千多个汉字分成两个级别bull 一级汉字有 3 755 个都为使用频率高的常用汉

字为便于检索像字典那样将这些汉字按拼音字母顺序排列(同音字再按笔顺的横竖撇捺点折序排列)

bull 二级汉字有 3 008 个大部分较生僻不易掌握读音所以按部首顺序排列(同部首的字按笔画数排列同笔画数的字再按笔顺排列)

编码方案bull GB 2312 对所有图形字符(包括汉字和非汉字图符)都采用两个字节表示每个字节的低七位用于编码最高位全为 1 这样可以兼容 ASCII 编码(字节的最高位全为 0 )

bull 虽然在一个字节中最高位为 1 的符号位置有 128 个但从前面 GB 2311 的分析可知为了与 ASCII 的代码结构兼容保留了( 32 + 2 = ) 34 个控制符位置最后只有( 128 ndash 34 = ) 94 个符号位可供图形字符编码使用

bull 图形字符在代码表中的位置用区位码表示将码表分成94 个区对应于编码的第一个字节取值 0x21~0x7E 每个区又分成 94 个位对应于编码的第二个字节取值 0x21~0x7E (参见表 2-6 )

bull 例如ldquo中山大学rdquo的编码为中 (0xD6D0) 山 (0xC9BD) 大 (0xB4F3) 学 (0xD1A7)

GB 2312-80 字符集结构 20 21 22 helliphellip 7D 7E 7F

位号

区号

1 2 helliphellip 93 94

20

21~29 1~9 非汉字图符(682个)

2A~2F 10~15 空白区

30~57 16~55 一级汉字(3 755个)

58~77 56~87 二级汉字(3 008个)

78~7E 88~94 空白区

7F

第 1 区的部分非汉字图符

1区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 middot ˉ ˇ uml 々 mdash ~ hellip lsquo rsquo ldquo

17~32 rdquo 〔 〕 〈 〉 《 》 「 」 『 』 〖 〗 【 】 plusmn

33~48 times divide ∶ and or sum prod cup cap isin ∷ radic perp ∥ ang

49~64 ⊙ int ∮ equiv ≌ asymp ∽ prop ne ltu gtu le ge infin ∵ there4

65~80 deg prime Prime $ curren ¢ £ permil sect

81~94 rarr larr uarr darr

第 16 区的部分一级汉字

16区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 啊 阿 埃 挨 哎 唉 哀 皑 癌 蔼 矮 艾 碍 爱 隘 鞍

17~32 氨 安 俺 按 暗 岸 胺 案 肮 昂 盎 凹 敖 熬 翱 袄

33~48 傲 奥 懊 澳 芭 捌 扒 叭 吧 笆 八 疤 巴 拔 跋 靶

49~64 把 耙 坝 霸 罢 爸 白 柏 百 摆 佰 败 拜 稗 斑 班

65~80 搬 扳 般 颁 板 版 扮 拌 伴 瓣 半 办 绊 邦 帮 梆

81~94 榜 膀 绑 棒 磅 蚌 镑 傍 谤 苞 胞 包 褒 剥

第 56 区的部分二级汉字

56区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 亍 丌 兀 丐 廿 卅 丕 亘 丞 鬲 孬 噩 丨 禺 丿 匕

17~32 乇 夭 爻 卮 氐 囟 胤 馗 毓 睾 鼗 丶 亟 鼐 乜 乩

33~48 亓 芈 孛 啬 嘏 仄 厍 厝 厣 厥 厮 靥 赝 匚 叵 匦

49~64 匮 匾 赜 卦 卣 刂 刈 刎 刭 刳 刿 剀 剌 剞 剡 剜

65~80 蒯 剽 劂 劁 劐 劓 冂 罔 亻 仃 仉 仂 仨 仡 仫 仞

81~94 伛 仳 伢 佤 仵 伥 伧 伉 伫 佞 佧 攸 佚 佝

3汉字编码的辅助集bull 除了GB 2312基本集的 6 763 个简体汉字外国家标

准还给出了汉字编码字符集的多个辅助集bull 第二 四辅助集分别增加了 7 237 7 039 个简体汉字bull 第一和三 五辅助集则分别是与基本集和第二 四辅助集所对应的繁体汉字字符集的国家标准

bull 基本集加上辅助集共有 21 039 个简体汉字和 21 142个繁体汉字

bull 繁体汉字之所以多一些是因为在第一辅助集中有时几个繁体字对应一个简体字因此比基本集多出 103 个汉字

bull 基本集和辅助集的代码页之间靠其编码字节的最高位来区分

编码字符的分页标志

双字节汉字编码的页面结构第二字节 列号

行号 0 middot middot middot 32 33 34 helliphellip 125 126 127 128middot middot 160 161 162 helliphellip 254 255 0 middot middot 32

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

33 34 middot middot middot 126

1 2 middot middot middot 94

第四五辅助集 (7 039个汉字)

127

(兼容ASCII)

128 middot middot 160

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

161 162 middot middot middot 254

1 2 middot middot middot 94

第二三辅助集 (7 237个汉字)

1 2 middot middot middot 94

基本集第一辅助集 (6 763 6 866个汉字) (682个非汉字图符)

第一字节

255

4 Big5

bull 除了中国大陆使用的简体汉字外在台湾香港澳门和海外华侨社区使用的是传统的繁体汉字

bull 简体汉字使用 GB (国标)系列编码标准bull 繁体汉字一般使用的是 Big5内码(大五码)即台湾的ldquo资讯工业策进会rdquo发布的《标准交换码 (Ⅲ码 )》收录汉字 13 053 个

bull Big5内码是 1984年由台湾财团法人资讯工业策进会与宏碁 (Acer) 神通 (MiTAC) 佳佳零壹 (Zero One) 大众 (FIC) 等五大软件公司联合推出故称为大五码

BIG5 的代码空间低位字节

00 hellip 3F 40 hellip 7E 7F hellip A0 A1 hellip FE FF

高位字节

00middot

80

81middot

A0用户定义区 用户定义区

A1A2A3

非汉字图符 非汉字图符

A4middot

C6常用汉字 常用汉字

C7C8

用户定义区 用户定义区

C9middot

F9次常用汉字 次常用汉字

FAmiddot

FE用户定义区 用户定义区

FF

5少数民族文字编码bull 中国共有 56 个民族除了汉回满族一般使用汉语外其他少数民族大多有自己的民族语言

bull 我国各民族使用的 50 多种文字可以分为字母式结构文字和非字母式结构文字两大类ndash 字母式结构的有拉丁文斯拉夫文蒙古文维吾尔文哈萨克文藏文和朝鲜文等字母式

ndash 非字母式结构的有汉字象形文字图画文字和音节文字等bull 各民族文字的书写方向也有不同

ndash 壮文藏文朝鲜文彝文等的字从左到右行从上到下ndash 维吾尔文哈萨克文和柯尔克孜文等的字从右到左行从上

到下ndash 蒙古文和满文的字从上到下行从左到右ndash 汉字的书写方向有两种

bull 大陆的简体汉字的字从左到右行从上到下bull 港台与古旧书的繁体汉字的字从上到下行从右到左

国家标准bull 下面按发布时间列出若干已经公布的我国少数民族文字

编码集的国家标准(这些字符集一般分成两类对字母式结构文字采用八位编码对非字母式结构文字采用双字节编码)ndash GB 8045-87《信息处理交换用蒙古文七位和八位编码图形字

符集》收 82 个蒙古文字母和 12 个其他符号共 94 个字符ndash GB 12050-89《信息处理交换用维吾尔文编码图形字符集》收 32 个维吾尔文字母一个维吾尔文复合字符和 37 个其他符号共 70 个字符

ndash GB 12052-89《信息交换用朝鲜文编码字符集》收 5297 个朝鲜文字和 682 个其他符号(与 GB 2132同)共 5 979 个字符

ndash GB 13134-91《信息交换用彝文编码字符集》收 1165 个彝文字符和 688 个其他符号共 1853 个字符

ndash GB 16959-1997《信息技术 信息交换用藏文编码字符集 基本集》收 41 个藏文字母 36 个藏文主字 13 个元音字符12 个语音字符 10 个藏文数字 10 个半值符一个控制用连接符和 46 个其他藏文图形符号共 169 个字符

6 GB 13000bull GB 13000 是与 ISOIEC 10646 等价的国际通用编码字符集标准收汉字 2万多个但是与 GB 2312 和 GBK 不兼容

bull 1993年 5月 ISO 与 IEC 联合推出了可用于世界各种文字的通用编码字符集的国际标准的第 1部分ndash ISOIEC 10646-11993 Information technology -- Universal Multiple-Octe

t Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane (信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

ndash 该标准收字符 96万个几乎涵盖世界上的所有文字其中包含汉字 21 003 个

bull 1993年底我国推出了等同于国际标准 ISOIEC 1064611993 的强制性国家标准 ndash GB 130001-93《信息技术 通用多八位编码字符集( UCS ) 第一部分

体系结构与基本多文种平面》ndash 该标准于 1993年 12月 24日被国家技术监督局批准 1994年 8月 1日起实施

GB 13000 的主要特点

bull 世界各语言文种字符统一编码避免冲突便于国际交流

bull 编码空间宽阔连续每个图形字符的编码唯一(一字一码)不再存在兼容性问题

bull 按文种而不是按语言编码避免重复和浪费(如中日韩汉字的统一编码 CJK )

bull 与 GB 2312 和 GBK 不兼容

体系结构bull UCS 的体系结构是基于所谓ldquo多八位rdquo的而ldquo八位rdquo就是一个字节ldquo多八位rdquo就是多个字节

bull UCS采用 4 个字节来表征组面行位的四维空间bull 整个 UCS空间包含 128 个组( 0x00组 ~0x7F组)每组有 256 个平面( 0x00 平面 ~0xFF 平面)每个平面有 256 行每行又由 256 个字位构成

bull UCS共有( 128 times 256 = ) 32 768 个平面每个平面有( 256 times 256 = ) 65 536 个字位每个字位对应于一个字符的编码

bull 目前的编码只限于 00组已经定义的平面有 00组的00 平面mdashmdash称之为基本多文种平面 BMP ( Basic Multilingual Plane ) 及若干辅助平面

UCS 的全部编码空间

每个平面256times256 个

字位

00组 00 平面

00组 FF 平面

01组 00 平面

7F组 00 平面00

01组

7F组

UCS 的 00组

BMPbull BMP = Basic Multilingual Plane 基本多文种平面bull BMP 用作双八位编码字符集称之为 UCS-2 它被

分成四个区ndash A- 区(字位 0x0000~0x4DFF 有 19 903 个字位)用于

字母文字音节文字以及各种符号ndash I- 区(字位 0x4E00~0x9FFF 共 20 992 个字位)用于中日韩统一汉字( CJK )

ndash O- 区(字位 0xA000~0xDFFF 共 16 384 个字位)保留未来标准化用

ndash R- 区(字位 0xE000~0xFFFD 共 8 190 个字位)为 BMP 的限制使用区包括专用字符变形显现形式及兼容字符

BMP总貌

A-区

00~33 拼音文字(见下页)

34~3D 朝鲜文

3E~44 朝鲜文补充 -A

45~4D 朝鲜文补充 -B

I-区 4E~9F CJK统一汉字O-区 A0~DF

R-区

E0~F8 专用区

F9~FA CJK兼容汉字FB 拼音文字变形显现形式

FC~FD 阿拉伯文变形显现形式 -A

FE半形组合用标志

CJK兼容形式

小写变体

阿拉伯文变形显现形式 -B

FF 半形及全形字符 特殊字符

BMP 的0x00~0x33

行字母文字区

00 基本拉丁文 拉丁文-1补充

01 拉丁文扩充-A 拉丁文扩充-B

02 拉丁文扩充-B 国际音标扩充 进格修饰字符

03 组合用发音符 基本希腊文 希腊符号及哥普特文

04 西里尔文

05 美亚尼亚文 希伯来文(基本和扩充)

06 基本阿拉伯文 阿拉伯文扩充

07

08

09 梵文 孟加拉文

0A 锡克教文 古吉拉特文

0B 奥利雅文 泰米尔文

0C 泰卢固文 卡纳达文

0D 德拉维族文

0E 泰文 老挝文

0F

10 格鲁吉亚文

11 朝鲜文字母

12~1D

1E 拉丁文扩充增补

1F 希腊文扩充

20 广义标点 上下标 货币符号 符号组合用区分标志

21 类似字母的符号 数字形式 箭头

22 数学运算符

23 零杂技术用符号

24 控制图符 光学识别符 带括号的字母数字

25 制表符 方块元素 几何图形符

26 零杂符号

27 示意符等

28~2F

30 CJK符号和标点 平假名 片假名

31 注音 朝鲜文兼容字母 CJK零杂字符

32 带括号的CJK字母及月份

33 CJK兼容字符

留作将来标准化用

非图形字符

表示形式bull GB 13000提供了字符编码表示的两种替代使用的形式

ndash 双八位 BMP 形式( UCS-2 )mdashmdash允许使用 BMP 中的字符且每个字符用两个字节表示

ndash 肆八位正则形式( UCS-4 )mdashmdash允许使用 GB 13000 中的全部字符且每个字符用四个字节表示

bull 除了 UCS-24外还有另外两种变形的表示形式ndash UTF-8 (单字节 ~ 多字节)ndash UTF-16 (双字节和 4 字节与 UCS-2 等价)ndash 目前在工业上的实现均为 UTF-16 ( UCS-2 )和 UTF-8ndash UTF = Unicode UCS Transformation Format 统一码 UC

S转换格式bull 关于统一码我们会在下一小节详细介绍

7 GBK 与 GB 18030bull 由于 GB 13000 标准与 GB 2312 标准的字符编码不兼容作为过渡在国家信息技术标准化委员会的主持下制定了与 GB 2312兼容的《汉字内码扩展规范( GBK )》( K 为扩展的ldquo扩rdquo字的拼音首字母)并于 1995年 12月 15日由原国家技术监督局标准司联合原电子工业部科技与质量监督司作为指导性技术规范发布实施

bull 2000年 GBK又被国家标准 GB 18030-2000《信息技术 信息交换用汉字编码字符集 基本集的扩充》所代替该标准收汉字 2万 7千个

bull 与 GB 2312 一样 GB 18030 也为中国的强制性国家标准微软公司的 Windows XPVista78 中文版与苹果公司的 Mac OS X 和 iOS 谷歌公司的 Android (安卓)等操作系统已经全面支持 GBK

GB 18030 的码位范围分布

字节数 码位空间 码位数目

单字节 0x00~0x7F 128

双字节第 1字节 第 2字节

23 9400x81~0xFE

0x40~0x7E 0x80~0xFE

四字节第 1字节 第 2字节 第 3字节 第 4字节

1 587 6000x81~0xFE 0x30~0x39 0x81~0xFE 0x30~0x39

GB 18030的

总体结构图

收录字符bull 单字节部分mdashmdash收录了GBT 11383 的 0x00~0x7F 全部 128 个字符(似 ASCI

I )bull 双字节部分mdashmdash收录内容如下 (21 003 个汉字和 884 个符号共 21 887 个字符 )

ndash GB 130001-93 的全部 CJK 统一汉字字符 20 902 个( GB 2312 的编码汉字在双字节 2 区其他 CJK 统一汉字在双字节 34 区)

ndash GB 130001-93 的 CJK兼容区挑选出来的 21 个汉字ldquo郎凉秊helliphellip﨨﨩rdquo( 0xFD9C~0xFDA0 和 0xFE40~0xFE4F )

ndash GB 130001-93 中收录而 GB 2312未收录的台湾地区使用的图形字符 139 个ldquoˊˋ˙helliphelliprdquo( 0xA840~0xA895 和 0xA940~0XA988 )

ndash GB 130001-93收录的其他字符 31 ( 13)个(在双字节 5 区)ndash GB 2312-80 中的非汉字字符 682 个( 0xA1A1~0xA9EF )ndash GB 12345-90 的竖排标点符号 19 ( 29)个ldquo︵︶︹helliphellip︳︴rdquo( 0xA6D9~0xA6

F5 )ndash GB 2312-80未收录的 10 个小写罗马数字ldquoⅰⅱⅲhelliphellipⅸⅹrdquo( 0xA2A1~ 0xA2A

A )ndash GB 2312-80未收录的带音调的汉语拼音字母 5 ( 4)个ldquo ńňǹrdquo 以及 ɑ 和 ɡ ( 0

xA8BB~0xA8C0 )ndash 汉字数字零ldquo〇rdquo (0xA996) 和欧元符ldquoeurordquo (0xA2E3)ndash 表意文字描述符 13 个ldquohelliphelliprdquo( 0xA989~0xA995 )ndash 对 GB 130001-93增补的汉字和部首 构件 80 个ldquohelliphellip䶮rdquo( 0xFE50~ 0x

FEA0 )bull 四字节部分mdashmdash收录了上述双字节字符之外的包括 CJK 统一汉字扩充 A 在内

的 GB 130001-93 中的全部字符

GB 18030双字节部分的码位安排

类别 区名 码位范围 码位数 字符数 内容

符号区双字节 1区 A1A1~A9FE 846 718

GB 2312非汉字字符等

双字节 5区 A840~A9A0 192 166 台湾图符等

汉字区双字节 2区 B0A1~F7FE 6768 6763 GB 2312汉字双字节 3区 8140~A0FE 6080 6080 CJK统一汉字双字节 4区 AA40~FEA0 8160 8160 CJK统一汉字等

用户自定义区双字节用户区 1 AAA1~AFFE 564

用户自定义字符双字节用户区 2 F8A1~FEFE 658

双字节用户区 3 A140~A7A0 672

GB 18030双字节部分的编码空间结构图 尾字节

0x40larr――rarr0x7E 0x80larr――rarr0xA0 0xA1larr――――――――――――rarr0xFE

0x81 uarr darr

0xA0

0xA1 uarr darr

0xA7

0xA8 0xA9

首字节

0xAA uarr | | | | | | | | | | darr

0xFE

双字节 3区

汉字区6 080个码位

双字节用户区 3

用户自定义区672个码位

双字节 5区 图形符号区192个码位

双字节 4区

汉字区8 160个码位

双字节 1区

图形符号区564个码位

双字节 2区

汉字区6 768个码位

双字节用户区 1 用户自定义区564个码位

双字节用户区 2 用户自定义区658个码位

223 国际通用字符编码

bull Unicode (统一码)是由多语言软件制造商组成的统一码协会( httpwwwUnicodeorg)所制定一种国际字符的编码标准

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull 本节主要介绍这两种关系密切的主流国际字符编码标准的来历编码方案各自特点与相互关系

1 Unicode 统一码bull 发展历史

ndash 1987年施乐( Xerox )公司的 Joe Becker 与 Lee Collins 和苹果( Apple )公司的 Mark Davis 等人开始讨论统一编码 1987年 12月 Joe Becker造词 Unicode (统一码)含义为ldquo unique universal and uniform character encodingrdquo (单一通用统一的字符编码) 1989年 2月开始定期召开统一码会议 1989年 9月公布 Unicode草案

ndash 1991年 1月 3 日由 Xerox Apple Sun IBM Aldis Microsoft 等公司出资在美国加州成立了统一码协会( Unicode Consortium )并由协会设立非盈利性的统一码公司( Unicode Inc )后来 HP Adobe Borland Digital Lotus Novell 等公司也纷纷加入 1991年 1月成立统一码技术委员会 UTC 并制定了其规程

ndash 1991年 2月在 Ed Hart 的推动下进行了ldquo统一码对 10464 国际标准草案 1rdquo 的对话Unicode 与 ISOIEC 10646开始走向融合

ndash 1991年 8月发布 Unicode 标准 10版的第 1卷(体系结构非表意字符) 1992年6月发表 Unicode 10版的第 2卷(表意字符) 1993年 6月发布 Unicode 11版与 1993年 5月公布的 ISOIEC 10646-11993 实现了合并

ndash 1996年 7月发布 Unicode 20版ndash 1999年 9月发布 Unicode 30版ndash 2003年 4月发布 Unicode 40版(对应于 ISOIEC 106462003 ) 2004年 3月 31日发布 Unicode 401版 2005年 3月 31日发布 Unicode 410版

ndash 2006年 7月 14日发布 Unicode 50版 2008年 4月 4日发布 Unicode 51版 2009年 12月 22日发布 Unicode 52版

ndash 2010年 10月发布 Unicode 60版 2012年 1月发布 Unicode 61版(对应于 ISOIEC 106462012 ) 2012年 9月推出 Unicode 62版 2013年 9月推出 Unicode 63版

ndash 2014年 6月 16日发布 Unicode 70版 ndash 2015年 6月 17日发布 Unicode 80版

字符集bull Unicode 字符集的空间分成双字节的基本多语言平面 (Basic Multilingual Pla

ne BMP) 和 4 字节的辅助多语言平面 (Supplementary Multilingual Plane SMP) 两种

bull BMPndash Unicode 的基本平面或基本多语言平面 BMP 对应于 ISOIEC 10646-1 的第 00组的 00 平面( BMP )即 Unicode 与 ISOIEC 10646 的 BMP 中的字符编码完全一致

bull SMPndash 鉴于 Unicode 原有的 16位元空间不足以应用从 Unicode 31版本开始设立了 16 个辅助平面使 Unicode 的可使用空间由六万多字增至约一百万字

ndash 原有的 Unicode双字节空间称为基本平面或基本多语言平面 BMP 辅助多语言平面 SMP 字符要用 4 字节来储存

ndash 第一辅助平面摆放拼音文字(主要为现时已不再使用的文字)及符号范围在 U+10000 - U+1FFFD

ndash 第二辅助平面又称为表意文字补充平面 (Supplementary Ideographic Plane 简称 SIP) 现时摆放ldquo中日韩统汉字扩展 B 区rdquo共 43253 个汉字范围在 U+20000 - U+2FFFD

ndash 第三至十三辅助平面尚未使用ndash 第十四辅助平面又称为特殊用途补充平面 (Supplementary Special-purpose Pl

ane 简称 SSP) 摆放 Language tags 和 Variation Selectors 它们都是控制字符范围在 U+E0000 - U+E01FF

ndash 第十五至十六辅助平面都是私人使用区它们的范围是 U+F0000 - U+FFFFD 及 U+100000 - U+1000FD

bull Unicode 字符集的具体编码方式参加第 4小节ldquo 4 UTFrdquo

2 ISOIEC 10646

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull ISOIEC 10646 标准由 ISO 与 IEC 联合成立的 ISOIEC JTC1SC2WG2 制定ndash JTC 1 ( Joint Technical Committee 1 on Information

technology ISOIEC信息技术联合技术委员会 1 )负责信息技术方面标准的制定工作

ndash SC 2 ( SubCommittee 2 on Coded character sets 编码字符集分会 2 )下的 WG 2 ( Working Group 2 on Universal coded character set 通用编码字符集工作组 2 )负责制定国际通用字符编码标准即后来公布的 ISOIEC 10646

发展历史bull 1984年 ISO 的一些会员国发起制定新的国际字符编码标准同年 4月 ISO

与 IEC 联合成立 ISOIEC JTC1SC2WG2 1987年 3月制定出编码架构1992年 6月投票通过第二版国际标准草案

bull 1993年 5月推出 10646 标准时将内容分成两个部分标准首先发布的是其中的第 1 个部分(体系结构与基本多文种平面)的第 1版( Edition 1 ) ISOIEC 10646-11993 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane(信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

bull 2000年 3月推出 10646 标准第一个部分的第 2版( Edition 2 ) ISOIEC 10646-12000 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane

bull 2001年 10月推出 10646 标准第 2版的第二个部分(辅助平面)的第 1版( Edition 1 ) ISOIEC 10646-22001 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 2 Supplementary Planes

bull 2003年 10月推出的 10646新标准(第 1版 Edition 1 )将老标准中的两个部分标准合并成了一个单一的标准 ISOIEC 106462003 Information technology -- Universal Multiple- Octet Coded Character Set (UCS) 后来又于 2010年 2012年和 2014年分别推出了 ISOIEC 106462010 (第 2版)ISOIEC 106462012 (第 3版)和 ISOIEC 106462014 (第 4版)

UCS 通用字符集bull 通用字符集( Universal Character Set UCS )是

ISOIEC 10646 标准所定义的字符编码方式采用 4字节编码又称为 Universal Multiple-Octet Coded Character Set (通用多八位编码字符集)

bull 通用字符集是所有包括了其他字符集它保证了与其他字符集的双向兼容即如果你将任何文本字符串翻译到 UCS 格式然后再翻译回原编码你不会丢失任何信息

bull UCS 包含了已知语言的所有字符除了拉丁语希腊语斯拉夫语希伯来语阿拉伯语亚美尼亚语格鲁吉亚语还包括中文日文韩文这样的象形文字 UCS 还包括大量的图形印刷数学科学符号

名字与组合字符bull UCS 不仅给每个字符分配一个代码而且赋予了

一个正式的名字表示一个 UCS 或 Unicode值的十六进制数通常在前面加上ldquo U+rdquo 例如ldquo U+0041rdquo代表字符ldquo Ardquo

bull UCS里有些编码点分配给了组合字符组合字符机制允许在任何字符后加上重音符或其他指示标记 这在科学符号中特别有用 比如数学方程式和国际音标字母 可能会需要在一个基本字符后组合上一个或多个指示标记

实现级别bull 并不是所有的系统都需要支持像组合字符这样的的先进

机制因此 ISO 10646 指定了如下三种实现级别ndash 级别 1不支持组合字符和韩语 Hangul Jamo 字符 ( 一种特

别的 更加复杂的韩国文的编码 使用两个或三个子字符来编码一个韩文音节 )

ndash 级别 2类似于级别 1 但在某些文字中允许一列固定的组合字符 (例如 希伯来文 阿拉伯文 Devangari 孟加拉语 果鲁穆奇语 Gujarati Oriya 泰米尔语 Telugo 印 埃纳德语 Malayalam 泰国语和老挝语 ) 因为如果没有最起码的几个组合字符 UCS就不能完整地表达这些语言

ndash 级别 3支持所有的 UCS 字符如可以在任意一个字符上加上一个箭头或 和一个 tilde(颚化符号即字母上面的~ )

编码方式bull UCS 有如下两种编码方式

ndash UCS-2与 Unicode 的 2 字节编码基本一样ndash UCS-4 4 字节编码目前是在 UCS-2 前加

上 2 个全零的字节bull UCS 还有 UTF 编码方式参见下面第 4小节ldquo 4 UTFrdquo

3 Unicode 与 ISOIEC 10646bull 关系

ndash 历史上存在两个独立的尝试创立单一字符集的组织即国际标准化组织( ISO )和多语言软件制造商组成的统一码协会组织( Unicodeorg )前者开发的 ISO 10646项目后者开发的 Unicode项目因此最初制定了不同的标准

ndash 1991年前后两个项目的参与者都认识到世界不需要两个不兼容的字符集于是它们开始合并双方的工作成果并为创立一个单一编码表而协同工作

ndash 从 Unicode20开始 Unicode采用了与 ISO 10646-1相同的字库和字码 ISO 也承诺 ISO10646 将不会替超出 U+10FFFF 的 UCS-4 编码赋值以使得两者保持一致

ndash 两个项目仍都存在并独立地公布各自的标准但 Unicode协会和 ISOIEC JTC1SC2 都同意保持两者标准的码表兼容并紧密地共同调整任何未来的扩展

异同bull Unicode协会公布的 Unicode 标准包含了 ISO 10646-1 实现级别

3 的基本多文种平面在两个标准里所有的字符都在相同的位置并且有相同的名字

bull ISO 10646 标准就像 ISO 8859 标准一样只不过是一个简单的字符集表它定义了一些编码的别名指定了一些与标准有关的术语并包括了规范说明指定了怎样使用 UCS连接其他 ISO 标准的实现等

bull Unicode 标准额外定义了许多与字符有关的语义符号学并详细说明了绘制某些语言(如阿拉伯语)表达形式的算法处理双向文字(比如拉丁文和希伯来文的混合文字)的算法排序与字符串比较所需的算法等等

bull 考虑到 Unicode 标准有一个易记的名字既便宜又包括更多的辅助信息因而它使用得更广泛然而

bull 一般认为用于打印 ISO 10646-1 标准的字体在某些方面的质量要高于用于打印 Unicode 20 的专业字体设计者总是被建议说要两个标准都实现但一些提供的样例字形有显著的区别 ISO 10646-1 标准同样使用四种不同的风格变体来显示表意文字如中文日文和韩文 (CJK) 而 Unicode 20 的表里只有中文的变体

4 UTFbull Unicode 和 UCS 都是一个字符集可以看作为内码bull UTF ( UnicodeUCS Transformation Format 统一码

通用字符集转换格式)是一种编码方式它的出现是因为 Unicode 和 UCS 不适宜在某些场合直接传输和处理

bull UCS 和 Unicode 只是分配整数给字符的编码表现在存在好几种将一串字符表示为一串字节的方法(如高或低位字节在前)

bull 最显而易见的两种方法是将 UCS 和 Unicode 文本存储为 2 个 或 4 个字节序列的串这两种方法的正式名称分别为 UCS-2 和 UCS-4

bull 常用的 UTF具体编码方式有 UTF-8 UTF-16 和 UTF-32

UTF-8

bull UTF-8 是 UTF 的一种具体编码方式在 ISO 10646-1 的附录 R 和 IETF 的 RFC 2279 里定义

bull 由于要使文档中的文字与 ASCII兼容故 UTF-8 选择了使用可变长度字节来储存 Unicode 和 UCS 例如ndash ASCII 字母继续使用 1 字节储存ndash 重音文字希腊字母或西里尔字母等使用 2 字节来储存ndash 常用的汉字就要使用 3 字节ndash 辅助平面字符则使用 4 字节ndash 即 ASCII 不作变换其他字符做变长编码每个字符 1~4 字节

bull UTF-8 通常作为外码bull 在 UTF-8 文件的开首很多时都放置一个 U+FEFF 字符

(UTF-8 以 EF BB BF 代表 ) 以显示这个文字档案是以UTF-8 编码

UTF-8 的优点bull 与 CPU 字节顺序无关可以在不同平台之间交流

bull 容错能力高任何一个字节损坏后最多只会导致一个编码码位损失不会链锁错误 ( 如 GB 码错一个字节就会整行乱码 )

UTF-8 的缺点bull UTF-8 使用可变长度字节储存使计算机程序设计变得复杂 (故此在计算机程序或操作系统内部多采用 UCS-2 编码 )

bull 在旧式的中文日文及朝鲜文编码之中每字符都使用 2 字节储存而 UTF-8 须使用 3 字节 (采用 UTF-16 编码则可只使用 2字节储存 )

bull 泰语以往使用的 ISO 8859-11 每字符只使用 1 字节储存而 UTF-8 须使用 3 字节

UTF-8储存的多字节串字符bull U-00000000 - U-0000007F 0xxxxxxx bull U-00000080 - U-000007FF 110xxxxx 10xxxxxx

bull U-00000800 - U-0000FFFF 1110xxxx 10xxxxxx

10xxxxxx bull U-00010000 - U-001FFFFF 11110xxx 10xxxxx

x 10xxxxxx 10xxxxxx bull 在多字节串中第一个字节的开头ldquo 1rdquo 的数目就

是整个串中字节的数目bull 每个使用 UTF-8储存的字符除了第一个字节外其余字节的头两个位元都是以 10 开始使文字处理器能够较快地找出每个字符的开始位置

UTF-16bull UTF-16 是 UTF 的另一种具体编码方式在 ISO 1064

6-1 的附录 Q 和 IETF 的 RFC 2781 里定义bull UTF-16 是变长码( 2 或 4 字节)大致相当于 20位编码值在 0 到 0x10FFFF 之间基本上就是 Unicode 编码的实现 UTF-16 与 CPU 字序有关但因为最省空间常作为网络传输的外码 UTF-16 是 Unicode 的完美编码

bull lt0x10000 的直接用其对应的 16位整数编码位于 0x10000 ~ 0x10FFFF 之间的用 0xD800~0xDBFF 的 16位整数后跟 0xDC00~0xDFFF 的 16位整数的 4 字节编码 gt 0x10FFFF 的不能用 UTF-16 表示

bull 在 Unicode 的 BMP 中定义的字符(无论是拉丁字母汉字或其他文字或符号)一律使用 2 字节存储而在辅助平面定义的字符则以两个 2 字节的值来存储

UTF-16 的特点bull UTF-16比起 UTF-8 的好处在于大部分字符都以固定长

度的 2 字节存储但 UTF-16却无法相容于 ASCII 编码bull UTF-16 有两种编码模式即大尾序( big Endian 高位字节在前)和小尾序( little Endian 高位字节在后)储存形式(一般來說以 Macintosh 制作和存储的文字使用大尾序格式以 Microsoft 或 Linux 制作和存储的文字使用小尾序格式)

bull 为了弄区分 UTF-16 文件的大小尾序在 UTF-16 文件的开头都会放置一个 U+FEFF 字符作为字节顺序标记 (UTF-16LE 以 FF FE代表 UTF-16BE 以 FE FF代表 ) 以显示该文档是以 UTF-16 编码的

UTF-32

bull UTF-32 仅使用了 Unicode范围 (0 到 0x10FFFF) 的 32位编码相当于 UCS-4 的子集

bull 由于 Unicode 和 ISOIEC 10646 的编码和结构与前面讲过的 GB 13000 类似或等价这里就不再做详细的介绍

5支持bull 现在 UnicodeUCS 已经获得了十分广泛的支

持ndash网络与浏览器(如 HTML 4050 XML 与 IE

Safari Netscape Firefox Chrome Opera Edge 等)

ndash操作系统(如 Windows NT2000XPVista7810 Mac OS X iOS Android和 Linux )

ndash 编程语言新版本(如 CC++JavaObjective-CC Swift 等)

Unicode 代码的浏览器显示代码 字符标准名称 (英语 )

浏览器的显示

amp65 大写拉丁字母 A A

amp223 小写拉丁字母 Sharp S szlig

amp254 小写拉丁字母 Thorn thorn

amp916 大写希腊字母 Delta Δ

amp1049 大写斯拉夫字母 Short I Й

amp1511 希伯来字母 Qof ק

amp1605 阿拉伯字母 Meem م

amp3671 泰文数字 7 ๗amp4688 埃塞俄比亚音节文字 Qha ቐ

amp12354 日语平假名 A あamp12450 日语片假名 A アamp21494 简体汉字 叶 叶amp33865 繁体汉字 葉 葉amp50685 韩国音节文字 Yeob 엽

23 文字输出bull 文字输出是指将计算机内的字符编码通过计算机的输出设备(如显示器打印机喇叭)展现出所对应字符的图形或声音供人们阅读或聆听

bull 本节主要介绍文字图示输出的字形技术bull 文字声音输出属于语音合成只在本节的末尾作简单的介绍

231 字形技术bull 文字 = 图形bull 不论是象形文字中的单字还是拼音文字

中的字母都是用图形来表示的bull 在计算机里文字的表示 输出(显示和打

印)涉及ndash 字型ndash 字体ndash 字库

1字型bull 字型指构造和生成字形的方法一般可分为

ndash 点阵字 DOS 显卡 ROM 金山 科印特点似位图显示快占空间(字库大)放大后有马赛克效应

bull 显示字母 88 汉字 1616bull 打印 2424 4848 6464

ndash 矢量字单线条用于笔式绘图仪特点字库小算法简单难看

ndash 轮廓字用曲线描绘字的轮廓输出效果好所见即所得(WYSWYG) 可无级放大易实现空心 阴影 填充 变形等各种特效功能轮廓曲线一般采用样条曲线如 TrueType (Apple 1991 Mac OS Microsoft 1992 Windows 31)用的是二次 B 样条 Bezier曲线中文之星 RichWin采用的是三次 B 样条 Bezier曲线

字型种类

2字体bull 字体指字的形状风格如

ndash 汉字的

ndash 英文的

宋体楷体黑体仿宋

行楷隶书新魏幼圆

Times New Roman Arial Narrow Courier New

常用汉字字体bull 宋体mdashmdash宋体来自于北宋时雕版刻书所采用的欧体字(唐朝欧阳询体)宋体字的横顿拉捺挑钩别具特色间架平正疏密适中字体秀丽遒劲但笔画横细竖粗适合于刀刻不宜于手写现在宋体广泛用于印刷常来表现文档的正文

bull 仿宋体mdashmdash 1920年钱塘的丁辅之与丁善之等人将明代以后盛行的方廓形字体加以改造创造出长形和方形的聚珍仿宋后来演化为现在的仿宋体仿宋体比较接近于手写体为宋体和楷体的折中是采用的宋体的结构和楷体的笔法而成现常来表现打印文件以及文档的摘要和注释等

bull 黑体mdashmdash黑体是适应工艺美术的发展而出现的一种等线体是从日本引进的黑体的结构与宋体没有什么差别只是其笔画粗细一致健实粗壮主要用于文档的标题和重点及标语广告等方面

bull 楷体mdashmdash楷体源于楷书楷体的笔画圆浑笔调灵活结构端正美观但不宜于木板雕刻所以直到清末西洋的石板印刷术传入后才开始广泛用于印刷现代的楷体创造于 20世纪的二三十年代主要用于文档的正文(多用于中小学教材)也可用于工艺美术等方面

3字库bull 字库为一种文字的某一字体的所有字符的集合一般存放在一个磁盘文件中

bull 由于象形文字中单字的数量大(成千上万)而拼音文字中字母的数量小(不到一百个)所以字库的大小有很大的差别

bull 为了使文档界面丰富多彩常见的字处理软件都支持多种字体带有众多字库

4点阵字型的国家标准bull 我国已经公布了若干字体的点阵字型之国家标准

ndash GB 50071-19852001 信息技术 汉字编码字符集(基本集) 24 点阵字型

ndash GB 50072-19852001 信息技术 汉字编码字符集(辅助集) 24 点阵字型

ndash GB 5199-19862001 信息技术 汉字编码字符集(基本集) 16 点阵字型 宋体

ndash GB 6345-19862001 信息技术 汉字编码字符集(基本集) 32 点阵字型 宋体

ndash GB 12041-2001 信息技术 汉字编码字符集(基本集) 48点阵字型 宋体

ndash GB 17698-1999 信息技术 通用多八位编码字符集( I 区) 汉字 16 点阵字型

232 语音合成bull 文字的声音输出主要使用的是语音合成的技术bull 语音合成功能是ldquo文rarr语rdquo转换bull 文语转换 TTS (Text-To-Speech) 是将文本形式的信息转换成自然语音的一种技术其最终目标是使计算机输出清晰而又自然的声音

bull 英语的语音合成在上世纪 80年代就早已成熟而中文 汉语的合成现在也趋于成熟并有了广泛的应用(如汽车导航仪智能手机等)

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 8: 第一篇  媒体

特点

bull 机器识别的是笔画而不是整字bull 识别结果可以及时反馈所以对识别率要

求不高bull 输入方便不需对输入人员进行培训bull 适合于边想边写bull 可利用图形板方便地进行编辑和修改

技术bull 人写字时手的抖动书写速度的变化图形板的

量化和感应噪声等会对识别产生干扰因此必须进行必要的平滑和去噪预处理

bull 识别时还需进行字符分割以区分哪些笔画属于同一汉字

bull 手写输入在技术涉及图像识别模式匹配人工智能语言文字书写方式与习惯等方面的知识和方法

bull 目前的手写识别方法和技术还有待于进一步改进和完善以提高识别率减少对输入的限制降低输入设备和识别软件的成本加强软件的自学习功能

213 语音输入bull 语音输入是指利用语音内容的识别技术

将人的话音实时转换为对应文字编码并录入计算机

bull 语音输入的核心技术是语音识别技术bull 语音识别技术现在正在发展过程中还

有待于进一步完善

语音识别技术bull 早期的语音识别技术一直很落后到上世纪 70年代中采

用线性预测编码 LPC 和同态信号处理 (homomorphic signal process) 方法技术有了长足的进步但效果不理想到了上世纪 80年代矢量量化 (VQ Vector Quantization) 和隐马尔科夫模型 (HMM Hidden Markov Model) 的成功使用使语音识别在上世纪 90年代达到了商用化程度不过仍然存在问题识别率一直难以进一步提高又进入了相对低潮的相持阶段2011年 10月 14日苹果公司推出的 iPhone 4S 手机支持智能语音指令输入虽然还存在不少问题但是却引发了业界对语音输入研究和应用的新热潮

bull 语音输入的字词识别涉及词库声母分类规则库声母与韵母结合规则库声调知识库这些统称为声学基元模型库句子识别还涉及语义语法句法语用知识库这些统称为语言模型库句子理解则涉及常识库(难)

语音识别的过程图语音输入

darr数据采集

darr波形自动分析

darr预处理 参数特征提取

分帧后的语音特征矢量集合rarrdarr 声学模型 时间对准larr声学基元模型库

darr 语言模型库rarr 组句分析 larr统计信息与规则

语句候选rarrdarr识别语句输出

语音识别系统分类bull 按可识别词汇量可分为

ndash 小词汇量语音识别系统 (lt100)ndash 中词汇量语音识别系统 (100~1000)ndash 大词汇量语音识别系统 (gt1000)

bull 按语音输入方式可分为ndash 孤立词语音识别系统(简单)ndash 连接词语音识别系统(较难)ndash 连续语音语音识别系统(难)

bull 按发言人类型可分为ndash 特定人( 1 人)ndash 限定人( n 人)ndash 非特定人(任意人)

语音识别的目标是开发大词汇量非特定人的连续语音识别系统

214 扫描输入bull 扫描输入是指将图书期刊打印材料和印刷

品中的印刷体文字先通过扫描仪变成计算机中的数字图像然后再利用文字识别软件 OCR 自动转换成对应得文字编码并录入计算机

bull 目前我国研制的多种 OCR 软件的识别率已经达到 95 以上不过受印刷品质量的影响比较大

bull OCR = Optical Character Recognition Reader 光学字符识别 阅读器

bull 计算机识别印刷汉字的核心问题是抓住汉字的字形特征它主要体现在笔画和关键点上

bull 另一个核心问题是版面的分析与理解包括从图文混排版面中自动排除图形部分自动区分横排和竖排自动识别标题和正文对分栏文本实现自动对接等

bull 扫描输入方法除了用于印刷体文字的识别和输入外也可以用于手写体印刷文字的输入其文字识别的方法与印刷体文字类似也与手写实时输入的方法相关不过失去了笔顺信息属于整字识别类型

22 字符编码bull 字符编码包括西文编码中文编码和国际通

用字符编码本节的重点放在常用的编码标准上

bull 221 西文编码( ASCII 等)bull 222 中文编码( GB 2312 GB 13000

GBKGB 18030 )bull 223 国际通用字符编码( Unicode IS

OIEC 10646 )

221 西文编码bull 西文编码主要介绍 ASCII 字符集然后简

单介绍 IBM公司的 EBCDIC 和两种扩展 ASCII 显示字符表

bull 1 ASCII

bull 2 EBCDIC

bull 3扩展 ASCII 显示字符

1 ASCII

bull ASCII ( American Standard Code for Information Interchange 美国信息交换标准码)是 ANSI于 1963年提出 1968年确定的一种英文字符编码标准( ANSI X34-1986 )广泛应用于计算机网络和信息产业

bull ANSI = American National Standards Institute 美国国家标准协会

bull ASCII采用 7位二进制数的(共计 128 个)代码来表示字符(包括图示符和控制符)加上奇偶校验位(或最高位置 0 )则每个字符由 8位(一个字节)组成

ASCII 字符集

0 1 2 3 4 5 6 7

0 NUL DLE SP 0 P ` p

1 SOH DC1 1 A Q a q

2 STX DC2 ldquo 2 B R b r

3 ETX DC3 3 C S c s

4 EOT DC4 $ 4 D T d t

5 ENQ NAK 5 E U e u

6 ACK SYN amp 6 F V f v

7 BEL ETB lsquo 7 G W g w

8 BS CAN ( 8 H X h x

9 HT EM ) 9 I Y i y

A LF SUB J Z j z

B VT ESC + K [ k

C FF FS lt L l |

D CR GS - = M ] m

E SO RS gt N ^ n ~

F SI US O _ o DEL

bull ASCII 字符集以 32 个字符为一组bull 第一组( 0x00~0x1F )为控制符

(非打印符)用于数据处理 通信系统及其相应设备中的信息交换

bull 后面的除了第一个字符( SP空格符 0x20 )和最后一个字符( DEL删除符 0x7F )外全都是可打印(显示)的图示符包括ndash 第二组( 0x20 ~0x6F )的数字空格

和常用标点符号ndash 第三组( 0x40~0x5F )的大写拉丁字

母(即英文字母)与少数标点符号ndash 第四组( 0x60~0x7F )的小写拉丁字

母与少数标点符号

ASCII 的国际标准bull 1972年美国的国家标准 ASCII 与其若干拉丁语系国家的变体一起成为国际标准 ISO 6461972 ( Information processing -- ISO 7-bit coded character set for information interchange 信息处理mdashmdash ISO 用于信息交换的七位编码字符集)

bull 这些变体主要是将 ASCII 字符集中不常用的符号ldquo $ [ ] ^ ` | ~rdquo替换为他们各自语言的重音符号

bull 1987年 ISO 646 中的 ASCII部分成为 646 的国际参考版( IRV = International Reference Version ) ISO 646IRV1987 但是其中的美元符 $被替换为国际通用货币符 curren

bull 1991年推出的修订版 ISOIEC 646IRV1991 还原成原始的美国 ASCII 所以又被称为 ISO 646-US 或 US-ASCII

替代标准bull 由于 ISO 646 中各国的变体存在明显的兼容和统一问题现在已经作废

bull 有关编码已经被新的国际标准 ISOIEC 8859-1~16 19871998 ( Information processingtechnology -- 8-bit single-byte coded graphic character sets 信息处理 技术mdashmdash 8位单字节编码的图形字符集)所替代

bull 后来 ISO 646 与 ISOIEC 8859 标准又都被纳入 ISOIEC 1064619932003 ( Information technology -- Universal Multiple-Octet Coded Character Set (UCS) 信息技术mdashmdash通用多八位编码字符集 (UCS) )标准之中

bull 其中的标准编号 ISO 10646 = ISO 646 + 10000

标准化组织bull ANSI = American National Standards Institute 美

国国家标准协会bull ISO = International Organization for Standardization

国际标准化组织是由 153 个国家的国家标准协会联合组成的一个非政府国际组织总部(中央秘书处)设在瑞士的日内瓦负责制定适应商业和广泛社会需要的各种国际标准网址为 httpwwwisoorg

bull IEC = International Electrotechnical Commission 国际电工技术委员会是一个成立于 1906年 6月的国际标准化权威组织属于联合国的甲级咨询机构负责制定关于电工电子各方面的标准有 42 个会员国总部也设在瑞士的日内瓦网址为httpwwwiecch我国于 1958年 8月参加

2 EBCDIC

bull 西文的字符编码方案除了通用的 ASCII外还有 IBM公司于 1960年代初提出的 EBCDIC ( Extended Binary-Coded Decimal Interchange Code扩充的二进制编码的十进制交换码)

bull EBCDIC 现在仍然(仅)在 IBM 的 OS390 与 TPF 以及富士通 - 西门子的 BS2000OSD 等大型机的操作系统中使用

bull EBCDIC 是一种八位编码其字符的编码方案与ASCII 的完全不同

EBCDIC 字符集 0 1 2 3 4 5 6 7 8 9 A B C D E F

0 NUL DLE DS SP amp - 0

1 SOH DC1 SOS a j ~ A J 1

2 STX DC2 FS SYN b k s B K S 2

3 ETX TM c l t C L T 3

4 PF RES BYP PN d m u D M U 4

5 HT NL LF RS e n v E N V 5

6 LC BS ETB UC f o w F O W 6

7 DEL IL ESC EOT g p x G P X 7

8 GE CAN h q y H Q Y 8

9 RLF EM ` i r z I R Z 9

A SMM CC SM cent | |

B VT CU1 CU2 CU3 $

C FF IFS DC4 gt

D CR IGS ENQ NAK ( ) _ lsquo

E SO IRS ACK + lt =

F SI IUS BEL SUB | ldquo EO

3扩展 ASCII 显示字符bull ( 1 ) IBM PC

ndash IBM PC 的扩展 ASCII 显示字符由 IBM公司为其 PC 机制定可以由原始的 IBM PC 显示器在 DOS状态下显示

bull ( 2 ) Microsoft Windows ndash Microsoft Windows 的扩展 ASCII 显示字符由

微软公司为其Windows操作系统制定可以在Windows环境的西文状态下被显示

IBM PC 的扩展 ASCII 显示字符表

Microsoft Windows 的扩展 ASCII 显示字符表

222 中文编码bull 1 GB 1988 与 GB 2311

bull 2 GB 2312

bull 3汉字编码的辅助集bull 4 Big5

bull 5少数民族文字编码bull 6 GB 13000

bull 7 GBK 与 GB 18030

汉字编码bull 为了计算机处理汉字必须先对汉字进行编码由于汉

字数量大(《康熙字典》收字 47 035 个《汉语大字典》收字 54 678 个据统计在形成楷体后出现的汉字约有 9万个左右)显然不能像 ASCII那样用 7位或单字节来进行编码至少需要两个字节(最多可表示 6万5千多个字符)

bull 1980年我国制定了著名的 GB 2312-80双字节汉字编码标准(其中 GB 为ldquo国标rdquo这两个汉字的拼音首字母)收汉字 6 763 个

bull 1993年底又推出了等同于国际通用字符编码标准 ISOIEC 106461-1993 的国家标准 GB 130001-93 收汉字 20 902 个

bull 由于 GB 13000 与 GB 2312 的编码不兼容作为过渡2000年又公布了 GB 18030-2000 ( GBK )收汉字2万 7千个

1 GB 1988 与 GB 2311

bull 为了能够同时表示和处理汉字和英文实现中外文混排汉字编码必须兼容通用的 ASCII 编码因此1980年我国制定了与国际标准 ISO 6461972 (即ASCII )对应的国家标准 GB 1988-80《信息处理交换用的七位编码字符集》

bull 汉字成千上万不可能像 ASCII 一样只用单字节的七位来表示必须扩展到八位和多字节但是不能随意扩充而应该符合国际规范因此我国于 1980年又制定了与七位代码扩充到八位编码的国际标准 ISO 2022兼容的国家标准 GB 2311-80《信息处理交换用七位编码字符集的扩充办法》

GB 1988-80 ( ASCII )的代码结构图

行 0 1 2 3 4 5 6 7

0 SP

1 helliphellip

15

16

32个

控制符

94个

图形字符

DEL

GB 2311-80 的八位编码结构图列

行 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0 SP 100

1

helliphellip

14

15

C0

32个

控制符

GL

94或 96个

图形字符

DEL

C1

32个

控制符

GR

94或 96个

图形字符

1515

2 GB 2312

bull GB 2312-80《信息交换用汉字编码字符集 middot基本集》是我国制定的一个使用最广泛的汉字编码的强制性国家标准由原第四机械工业部的华北计算机研究所(后改名为电子工业部第十五研究所)起草1980年批准 1981年 5月 1日起实施

bull GB 2312-80 是在已有的国家标准 GB 1988-80(对应于 ISO 646 )和 GB 2311-80 (对应于 ISO 2022 )的基础上制定的采用与 ISO 2022兼容的GB 2311 之 7位到八位的代码扩充办法用双字节编码表示汉字与 ASCII兼容

收录的字符bull GB 2312 对应的是汉字的基本集共收汉字 6 763 个

可达到 9999 的使用频率因此除了极少数生僻的人名地名和古文外 GB 2312 中的汉字已经能基本满足平时的使用了

bull 除了汉字外 GB 2312 还收录了 682 个非汉字图形符号包括 202 个一般符号(含间隔符标点运算符和制表符) 60 个序号符 22 个数字符 52 个英文字母 169 个日文假名 48 个希腊字母 66 个俄文字母 26 个汉语拼音符号和 37 个汉语注音字母

bull 所以在 GB 2312-80 标准中共收录了( 6 763 汉字 + 682 非汉字图符 = ) 7 445 图形字符

两级汉字bull GB 2312 将其收录的六千多个汉字分成两个级别bull 一级汉字有 3 755 个都为使用频率高的常用汉

字为便于检索像字典那样将这些汉字按拼音字母顺序排列(同音字再按笔顺的横竖撇捺点折序排列)

bull 二级汉字有 3 008 个大部分较生僻不易掌握读音所以按部首顺序排列(同部首的字按笔画数排列同笔画数的字再按笔顺排列)

编码方案bull GB 2312 对所有图形字符(包括汉字和非汉字图符)都采用两个字节表示每个字节的低七位用于编码最高位全为 1 这样可以兼容 ASCII 编码(字节的最高位全为 0 )

bull 虽然在一个字节中最高位为 1 的符号位置有 128 个但从前面 GB 2311 的分析可知为了与 ASCII 的代码结构兼容保留了( 32 + 2 = ) 34 个控制符位置最后只有( 128 ndash 34 = ) 94 个符号位可供图形字符编码使用

bull 图形字符在代码表中的位置用区位码表示将码表分成94 个区对应于编码的第一个字节取值 0x21~0x7E 每个区又分成 94 个位对应于编码的第二个字节取值 0x21~0x7E (参见表 2-6 )

bull 例如ldquo中山大学rdquo的编码为中 (0xD6D0) 山 (0xC9BD) 大 (0xB4F3) 学 (0xD1A7)

GB 2312-80 字符集结构 20 21 22 helliphellip 7D 7E 7F

位号

区号

1 2 helliphellip 93 94

20

21~29 1~9 非汉字图符(682个)

2A~2F 10~15 空白区

30~57 16~55 一级汉字(3 755个)

58~77 56~87 二级汉字(3 008个)

78~7E 88~94 空白区

7F

第 1 区的部分非汉字图符

1区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 middot ˉ ˇ uml 々 mdash ~ hellip lsquo rsquo ldquo

17~32 rdquo 〔 〕 〈 〉 《 》 「 」 『 』 〖 〗 【 】 plusmn

33~48 times divide ∶ and or sum prod cup cap isin ∷ radic perp ∥ ang

49~64 ⊙ int ∮ equiv ≌ asymp ∽ prop ne ltu gtu le ge infin ∵ there4

65~80 deg prime Prime $ curren ¢ £ permil sect

81~94 rarr larr uarr darr

第 16 区的部分一级汉字

16区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 啊 阿 埃 挨 哎 唉 哀 皑 癌 蔼 矮 艾 碍 爱 隘 鞍

17~32 氨 安 俺 按 暗 岸 胺 案 肮 昂 盎 凹 敖 熬 翱 袄

33~48 傲 奥 懊 澳 芭 捌 扒 叭 吧 笆 八 疤 巴 拔 跋 靶

49~64 把 耙 坝 霸 罢 爸 白 柏 百 摆 佰 败 拜 稗 斑 班

65~80 搬 扳 般 颁 板 版 扮 拌 伴 瓣 半 办 绊 邦 帮 梆

81~94 榜 膀 绑 棒 磅 蚌 镑 傍 谤 苞 胞 包 褒 剥

第 56 区的部分二级汉字

56区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 亍 丌 兀 丐 廿 卅 丕 亘 丞 鬲 孬 噩 丨 禺 丿 匕

17~32 乇 夭 爻 卮 氐 囟 胤 馗 毓 睾 鼗 丶 亟 鼐 乜 乩

33~48 亓 芈 孛 啬 嘏 仄 厍 厝 厣 厥 厮 靥 赝 匚 叵 匦

49~64 匮 匾 赜 卦 卣 刂 刈 刎 刭 刳 刿 剀 剌 剞 剡 剜

65~80 蒯 剽 劂 劁 劐 劓 冂 罔 亻 仃 仉 仂 仨 仡 仫 仞

81~94 伛 仳 伢 佤 仵 伥 伧 伉 伫 佞 佧 攸 佚 佝

3汉字编码的辅助集bull 除了GB 2312基本集的 6 763 个简体汉字外国家标

准还给出了汉字编码字符集的多个辅助集bull 第二 四辅助集分别增加了 7 237 7 039 个简体汉字bull 第一和三 五辅助集则分别是与基本集和第二 四辅助集所对应的繁体汉字字符集的国家标准

bull 基本集加上辅助集共有 21 039 个简体汉字和 21 142个繁体汉字

bull 繁体汉字之所以多一些是因为在第一辅助集中有时几个繁体字对应一个简体字因此比基本集多出 103 个汉字

bull 基本集和辅助集的代码页之间靠其编码字节的最高位来区分

编码字符的分页标志

双字节汉字编码的页面结构第二字节 列号

行号 0 middot middot middot 32 33 34 helliphellip 125 126 127 128middot middot 160 161 162 helliphellip 254 255 0 middot middot 32

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

33 34 middot middot middot 126

1 2 middot middot middot 94

第四五辅助集 (7 039个汉字)

127

(兼容ASCII)

128 middot middot 160

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

161 162 middot middot middot 254

1 2 middot middot middot 94

第二三辅助集 (7 237个汉字)

1 2 middot middot middot 94

基本集第一辅助集 (6 763 6 866个汉字) (682个非汉字图符)

第一字节

255

4 Big5

bull 除了中国大陆使用的简体汉字外在台湾香港澳门和海外华侨社区使用的是传统的繁体汉字

bull 简体汉字使用 GB (国标)系列编码标准bull 繁体汉字一般使用的是 Big5内码(大五码)即台湾的ldquo资讯工业策进会rdquo发布的《标准交换码 (Ⅲ码 )》收录汉字 13 053 个

bull Big5内码是 1984年由台湾财团法人资讯工业策进会与宏碁 (Acer) 神通 (MiTAC) 佳佳零壹 (Zero One) 大众 (FIC) 等五大软件公司联合推出故称为大五码

BIG5 的代码空间低位字节

00 hellip 3F 40 hellip 7E 7F hellip A0 A1 hellip FE FF

高位字节

00middot

80

81middot

A0用户定义区 用户定义区

A1A2A3

非汉字图符 非汉字图符

A4middot

C6常用汉字 常用汉字

C7C8

用户定义区 用户定义区

C9middot

F9次常用汉字 次常用汉字

FAmiddot

FE用户定义区 用户定义区

FF

5少数民族文字编码bull 中国共有 56 个民族除了汉回满族一般使用汉语外其他少数民族大多有自己的民族语言

bull 我国各民族使用的 50 多种文字可以分为字母式结构文字和非字母式结构文字两大类ndash 字母式结构的有拉丁文斯拉夫文蒙古文维吾尔文哈萨克文藏文和朝鲜文等字母式

ndash 非字母式结构的有汉字象形文字图画文字和音节文字等bull 各民族文字的书写方向也有不同

ndash 壮文藏文朝鲜文彝文等的字从左到右行从上到下ndash 维吾尔文哈萨克文和柯尔克孜文等的字从右到左行从上

到下ndash 蒙古文和满文的字从上到下行从左到右ndash 汉字的书写方向有两种

bull 大陆的简体汉字的字从左到右行从上到下bull 港台与古旧书的繁体汉字的字从上到下行从右到左

国家标准bull 下面按发布时间列出若干已经公布的我国少数民族文字

编码集的国家标准(这些字符集一般分成两类对字母式结构文字采用八位编码对非字母式结构文字采用双字节编码)ndash GB 8045-87《信息处理交换用蒙古文七位和八位编码图形字

符集》收 82 个蒙古文字母和 12 个其他符号共 94 个字符ndash GB 12050-89《信息处理交换用维吾尔文编码图形字符集》收 32 个维吾尔文字母一个维吾尔文复合字符和 37 个其他符号共 70 个字符

ndash GB 12052-89《信息交换用朝鲜文编码字符集》收 5297 个朝鲜文字和 682 个其他符号(与 GB 2132同)共 5 979 个字符

ndash GB 13134-91《信息交换用彝文编码字符集》收 1165 个彝文字符和 688 个其他符号共 1853 个字符

ndash GB 16959-1997《信息技术 信息交换用藏文编码字符集 基本集》收 41 个藏文字母 36 个藏文主字 13 个元音字符12 个语音字符 10 个藏文数字 10 个半值符一个控制用连接符和 46 个其他藏文图形符号共 169 个字符

6 GB 13000bull GB 13000 是与 ISOIEC 10646 等价的国际通用编码字符集标准收汉字 2万多个但是与 GB 2312 和 GBK 不兼容

bull 1993年 5月 ISO 与 IEC 联合推出了可用于世界各种文字的通用编码字符集的国际标准的第 1部分ndash ISOIEC 10646-11993 Information technology -- Universal Multiple-Octe

t Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane (信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

ndash 该标准收字符 96万个几乎涵盖世界上的所有文字其中包含汉字 21 003 个

bull 1993年底我国推出了等同于国际标准 ISOIEC 1064611993 的强制性国家标准 ndash GB 130001-93《信息技术 通用多八位编码字符集( UCS ) 第一部分

体系结构与基本多文种平面》ndash 该标准于 1993年 12月 24日被国家技术监督局批准 1994年 8月 1日起实施

GB 13000 的主要特点

bull 世界各语言文种字符统一编码避免冲突便于国际交流

bull 编码空间宽阔连续每个图形字符的编码唯一(一字一码)不再存在兼容性问题

bull 按文种而不是按语言编码避免重复和浪费(如中日韩汉字的统一编码 CJK )

bull 与 GB 2312 和 GBK 不兼容

体系结构bull UCS 的体系结构是基于所谓ldquo多八位rdquo的而ldquo八位rdquo就是一个字节ldquo多八位rdquo就是多个字节

bull UCS采用 4 个字节来表征组面行位的四维空间bull 整个 UCS空间包含 128 个组( 0x00组 ~0x7F组)每组有 256 个平面( 0x00 平面 ~0xFF 平面)每个平面有 256 行每行又由 256 个字位构成

bull UCS共有( 128 times 256 = ) 32 768 个平面每个平面有( 256 times 256 = ) 65 536 个字位每个字位对应于一个字符的编码

bull 目前的编码只限于 00组已经定义的平面有 00组的00 平面mdashmdash称之为基本多文种平面 BMP ( Basic Multilingual Plane ) 及若干辅助平面

UCS 的全部编码空间

每个平面256times256 个

字位

00组 00 平面

00组 FF 平面

01组 00 平面

7F组 00 平面00

01组

7F组

UCS 的 00组

BMPbull BMP = Basic Multilingual Plane 基本多文种平面bull BMP 用作双八位编码字符集称之为 UCS-2 它被

分成四个区ndash A- 区(字位 0x0000~0x4DFF 有 19 903 个字位)用于

字母文字音节文字以及各种符号ndash I- 区(字位 0x4E00~0x9FFF 共 20 992 个字位)用于中日韩统一汉字( CJK )

ndash O- 区(字位 0xA000~0xDFFF 共 16 384 个字位)保留未来标准化用

ndash R- 区(字位 0xE000~0xFFFD 共 8 190 个字位)为 BMP 的限制使用区包括专用字符变形显现形式及兼容字符

BMP总貌

A-区

00~33 拼音文字(见下页)

34~3D 朝鲜文

3E~44 朝鲜文补充 -A

45~4D 朝鲜文补充 -B

I-区 4E~9F CJK统一汉字O-区 A0~DF

R-区

E0~F8 专用区

F9~FA CJK兼容汉字FB 拼音文字变形显现形式

FC~FD 阿拉伯文变形显现形式 -A

FE半形组合用标志

CJK兼容形式

小写变体

阿拉伯文变形显现形式 -B

FF 半形及全形字符 特殊字符

BMP 的0x00~0x33

行字母文字区

00 基本拉丁文 拉丁文-1补充

01 拉丁文扩充-A 拉丁文扩充-B

02 拉丁文扩充-B 国际音标扩充 进格修饰字符

03 组合用发音符 基本希腊文 希腊符号及哥普特文

04 西里尔文

05 美亚尼亚文 希伯来文(基本和扩充)

06 基本阿拉伯文 阿拉伯文扩充

07

08

09 梵文 孟加拉文

0A 锡克教文 古吉拉特文

0B 奥利雅文 泰米尔文

0C 泰卢固文 卡纳达文

0D 德拉维族文

0E 泰文 老挝文

0F

10 格鲁吉亚文

11 朝鲜文字母

12~1D

1E 拉丁文扩充增补

1F 希腊文扩充

20 广义标点 上下标 货币符号 符号组合用区分标志

21 类似字母的符号 数字形式 箭头

22 数学运算符

23 零杂技术用符号

24 控制图符 光学识别符 带括号的字母数字

25 制表符 方块元素 几何图形符

26 零杂符号

27 示意符等

28~2F

30 CJK符号和标点 平假名 片假名

31 注音 朝鲜文兼容字母 CJK零杂字符

32 带括号的CJK字母及月份

33 CJK兼容字符

留作将来标准化用

非图形字符

表示形式bull GB 13000提供了字符编码表示的两种替代使用的形式

ndash 双八位 BMP 形式( UCS-2 )mdashmdash允许使用 BMP 中的字符且每个字符用两个字节表示

ndash 肆八位正则形式( UCS-4 )mdashmdash允许使用 GB 13000 中的全部字符且每个字符用四个字节表示

bull 除了 UCS-24外还有另外两种变形的表示形式ndash UTF-8 (单字节 ~ 多字节)ndash UTF-16 (双字节和 4 字节与 UCS-2 等价)ndash 目前在工业上的实现均为 UTF-16 ( UCS-2 )和 UTF-8ndash UTF = Unicode UCS Transformation Format 统一码 UC

S转换格式bull 关于统一码我们会在下一小节详细介绍

7 GBK 与 GB 18030bull 由于 GB 13000 标准与 GB 2312 标准的字符编码不兼容作为过渡在国家信息技术标准化委员会的主持下制定了与 GB 2312兼容的《汉字内码扩展规范( GBK )》( K 为扩展的ldquo扩rdquo字的拼音首字母)并于 1995年 12月 15日由原国家技术监督局标准司联合原电子工业部科技与质量监督司作为指导性技术规范发布实施

bull 2000年 GBK又被国家标准 GB 18030-2000《信息技术 信息交换用汉字编码字符集 基本集的扩充》所代替该标准收汉字 2万 7千个

bull 与 GB 2312 一样 GB 18030 也为中国的强制性国家标准微软公司的 Windows XPVista78 中文版与苹果公司的 Mac OS X 和 iOS 谷歌公司的 Android (安卓)等操作系统已经全面支持 GBK

GB 18030 的码位范围分布

字节数 码位空间 码位数目

单字节 0x00~0x7F 128

双字节第 1字节 第 2字节

23 9400x81~0xFE

0x40~0x7E 0x80~0xFE

四字节第 1字节 第 2字节 第 3字节 第 4字节

1 587 6000x81~0xFE 0x30~0x39 0x81~0xFE 0x30~0x39

GB 18030的

总体结构图

收录字符bull 单字节部分mdashmdash收录了GBT 11383 的 0x00~0x7F 全部 128 个字符(似 ASCI

I )bull 双字节部分mdashmdash收录内容如下 (21 003 个汉字和 884 个符号共 21 887 个字符 )

ndash GB 130001-93 的全部 CJK 统一汉字字符 20 902 个( GB 2312 的编码汉字在双字节 2 区其他 CJK 统一汉字在双字节 34 区)

ndash GB 130001-93 的 CJK兼容区挑选出来的 21 个汉字ldquo郎凉秊helliphellip﨨﨩rdquo( 0xFD9C~0xFDA0 和 0xFE40~0xFE4F )

ndash GB 130001-93 中收录而 GB 2312未收录的台湾地区使用的图形字符 139 个ldquoˊˋ˙helliphelliprdquo( 0xA840~0xA895 和 0xA940~0XA988 )

ndash GB 130001-93收录的其他字符 31 ( 13)个(在双字节 5 区)ndash GB 2312-80 中的非汉字字符 682 个( 0xA1A1~0xA9EF )ndash GB 12345-90 的竖排标点符号 19 ( 29)个ldquo︵︶︹helliphellip︳︴rdquo( 0xA6D9~0xA6

F5 )ndash GB 2312-80未收录的 10 个小写罗马数字ldquoⅰⅱⅲhelliphellipⅸⅹrdquo( 0xA2A1~ 0xA2A

A )ndash GB 2312-80未收录的带音调的汉语拼音字母 5 ( 4)个ldquo ńňǹrdquo 以及 ɑ 和 ɡ ( 0

xA8BB~0xA8C0 )ndash 汉字数字零ldquo〇rdquo (0xA996) 和欧元符ldquoeurordquo (0xA2E3)ndash 表意文字描述符 13 个ldquohelliphelliprdquo( 0xA989~0xA995 )ndash 对 GB 130001-93增补的汉字和部首 构件 80 个ldquohelliphellip䶮rdquo( 0xFE50~ 0x

FEA0 )bull 四字节部分mdashmdash收录了上述双字节字符之外的包括 CJK 统一汉字扩充 A 在内

的 GB 130001-93 中的全部字符

GB 18030双字节部分的码位安排

类别 区名 码位范围 码位数 字符数 内容

符号区双字节 1区 A1A1~A9FE 846 718

GB 2312非汉字字符等

双字节 5区 A840~A9A0 192 166 台湾图符等

汉字区双字节 2区 B0A1~F7FE 6768 6763 GB 2312汉字双字节 3区 8140~A0FE 6080 6080 CJK统一汉字双字节 4区 AA40~FEA0 8160 8160 CJK统一汉字等

用户自定义区双字节用户区 1 AAA1~AFFE 564

用户自定义字符双字节用户区 2 F8A1~FEFE 658

双字节用户区 3 A140~A7A0 672

GB 18030双字节部分的编码空间结构图 尾字节

0x40larr――rarr0x7E 0x80larr――rarr0xA0 0xA1larr――――――――――――rarr0xFE

0x81 uarr darr

0xA0

0xA1 uarr darr

0xA7

0xA8 0xA9

首字节

0xAA uarr | | | | | | | | | | darr

0xFE

双字节 3区

汉字区6 080个码位

双字节用户区 3

用户自定义区672个码位

双字节 5区 图形符号区192个码位

双字节 4区

汉字区8 160个码位

双字节 1区

图形符号区564个码位

双字节 2区

汉字区6 768个码位

双字节用户区 1 用户自定义区564个码位

双字节用户区 2 用户自定义区658个码位

223 国际通用字符编码

bull Unicode (统一码)是由多语言软件制造商组成的统一码协会( httpwwwUnicodeorg)所制定一种国际字符的编码标准

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull 本节主要介绍这两种关系密切的主流国际字符编码标准的来历编码方案各自特点与相互关系

1 Unicode 统一码bull 发展历史

ndash 1987年施乐( Xerox )公司的 Joe Becker 与 Lee Collins 和苹果( Apple )公司的 Mark Davis 等人开始讨论统一编码 1987年 12月 Joe Becker造词 Unicode (统一码)含义为ldquo unique universal and uniform character encodingrdquo (单一通用统一的字符编码) 1989年 2月开始定期召开统一码会议 1989年 9月公布 Unicode草案

ndash 1991年 1月 3 日由 Xerox Apple Sun IBM Aldis Microsoft 等公司出资在美国加州成立了统一码协会( Unicode Consortium )并由协会设立非盈利性的统一码公司( Unicode Inc )后来 HP Adobe Borland Digital Lotus Novell 等公司也纷纷加入 1991年 1月成立统一码技术委员会 UTC 并制定了其规程

ndash 1991年 2月在 Ed Hart 的推动下进行了ldquo统一码对 10464 国际标准草案 1rdquo 的对话Unicode 与 ISOIEC 10646开始走向融合

ndash 1991年 8月发布 Unicode 标准 10版的第 1卷(体系结构非表意字符) 1992年6月发表 Unicode 10版的第 2卷(表意字符) 1993年 6月发布 Unicode 11版与 1993年 5月公布的 ISOIEC 10646-11993 实现了合并

ndash 1996年 7月发布 Unicode 20版ndash 1999年 9月发布 Unicode 30版ndash 2003年 4月发布 Unicode 40版(对应于 ISOIEC 106462003 ) 2004年 3月 31日发布 Unicode 401版 2005年 3月 31日发布 Unicode 410版

ndash 2006年 7月 14日发布 Unicode 50版 2008年 4月 4日发布 Unicode 51版 2009年 12月 22日发布 Unicode 52版

ndash 2010年 10月发布 Unicode 60版 2012年 1月发布 Unicode 61版(对应于 ISOIEC 106462012 ) 2012年 9月推出 Unicode 62版 2013年 9月推出 Unicode 63版

ndash 2014年 6月 16日发布 Unicode 70版 ndash 2015年 6月 17日发布 Unicode 80版

字符集bull Unicode 字符集的空间分成双字节的基本多语言平面 (Basic Multilingual Pla

ne BMP) 和 4 字节的辅助多语言平面 (Supplementary Multilingual Plane SMP) 两种

bull BMPndash Unicode 的基本平面或基本多语言平面 BMP 对应于 ISOIEC 10646-1 的第 00组的 00 平面( BMP )即 Unicode 与 ISOIEC 10646 的 BMP 中的字符编码完全一致

bull SMPndash 鉴于 Unicode 原有的 16位元空间不足以应用从 Unicode 31版本开始设立了 16 个辅助平面使 Unicode 的可使用空间由六万多字增至约一百万字

ndash 原有的 Unicode双字节空间称为基本平面或基本多语言平面 BMP 辅助多语言平面 SMP 字符要用 4 字节来储存

ndash 第一辅助平面摆放拼音文字(主要为现时已不再使用的文字)及符号范围在 U+10000 - U+1FFFD

ndash 第二辅助平面又称为表意文字补充平面 (Supplementary Ideographic Plane 简称 SIP) 现时摆放ldquo中日韩统汉字扩展 B 区rdquo共 43253 个汉字范围在 U+20000 - U+2FFFD

ndash 第三至十三辅助平面尚未使用ndash 第十四辅助平面又称为特殊用途补充平面 (Supplementary Special-purpose Pl

ane 简称 SSP) 摆放 Language tags 和 Variation Selectors 它们都是控制字符范围在 U+E0000 - U+E01FF

ndash 第十五至十六辅助平面都是私人使用区它们的范围是 U+F0000 - U+FFFFD 及 U+100000 - U+1000FD

bull Unicode 字符集的具体编码方式参加第 4小节ldquo 4 UTFrdquo

2 ISOIEC 10646

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull ISOIEC 10646 标准由 ISO 与 IEC 联合成立的 ISOIEC JTC1SC2WG2 制定ndash JTC 1 ( Joint Technical Committee 1 on Information

technology ISOIEC信息技术联合技术委员会 1 )负责信息技术方面标准的制定工作

ndash SC 2 ( SubCommittee 2 on Coded character sets 编码字符集分会 2 )下的 WG 2 ( Working Group 2 on Universal coded character set 通用编码字符集工作组 2 )负责制定国际通用字符编码标准即后来公布的 ISOIEC 10646

发展历史bull 1984年 ISO 的一些会员国发起制定新的国际字符编码标准同年 4月 ISO

与 IEC 联合成立 ISOIEC JTC1SC2WG2 1987年 3月制定出编码架构1992年 6月投票通过第二版国际标准草案

bull 1993年 5月推出 10646 标准时将内容分成两个部分标准首先发布的是其中的第 1 个部分(体系结构与基本多文种平面)的第 1版( Edition 1 ) ISOIEC 10646-11993 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane(信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

bull 2000年 3月推出 10646 标准第一个部分的第 2版( Edition 2 ) ISOIEC 10646-12000 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane

bull 2001年 10月推出 10646 标准第 2版的第二个部分(辅助平面)的第 1版( Edition 1 ) ISOIEC 10646-22001 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 2 Supplementary Planes

bull 2003年 10月推出的 10646新标准(第 1版 Edition 1 )将老标准中的两个部分标准合并成了一个单一的标准 ISOIEC 106462003 Information technology -- Universal Multiple- Octet Coded Character Set (UCS) 后来又于 2010年 2012年和 2014年分别推出了 ISOIEC 106462010 (第 2版)ISOIEC 106462012 (第 3版)和 ISOIEC 106462014 (第 4版)

UCS 通用字符集bull 通用字符集( Universal Character Set UCS )是

ISOIEC 10646 标准所定义的字符编码方式采用 4字节编码又称为 Universal Multiple-Octet Coded Character Set (通用多八位编码字符集)

bull 通用字符集是所有包括了其他字符集它保证了与其他字符集的双向兼容即如果你将任何文本字符串翻译到 UCS 格式然后再翻译回原编码你不会丢失任何信息

bull UCS 包含了已知语言的所有字符除了拉丁语希腊语斯拉夫语希伯来语阿拉伯语亚美尼亚语格鲁吉亚语还包括中文日文韩文这样的象形文字 UCS 还包括大量的图形印刷数学科学符号

名字与组合字符bull UCS 不仅给每个字符分配一个代码而且赋予了

一个正式的名字表示一个 UCS 或 Unicode值的十六进制数通常在前面加上ldquo U+rdquo 例如ldquo U+0041rdquo代表字符ldquo Ardquo

bull UCS里有些编码点分配给了组合字符组合字符机制允许在任何字符后加上重音符或其他指示标记 这在科学符号中特别有用 比如数学方程式和国际音标字母 可能会需要在一个基本字符后组合上一个或多个指示标记

实现级别bull 并不是所有的系统都需要支持像组合字符这样的的先进

机制因此 ISO 10646 指定了如下三种实现级别ndash 级别 1不支持组合字符和韩语 Hangul Jamo 字符 ( 一种特

别的 更加复杂的韩国文的编码 使用两个或三个子字符来编码一个韩文音节 )

ndash 级别 2类似于级别 1 但在某些文字中允许一列固定的组合字符 (例如 希伯来文 阿拉伯文 Devangari 孟加拉语 果鲁穆奇语 Gujarati Oriya 泰米尔语 Telugo 印 埃纳德语 Malayalam 泰国语和老挝语 ) 因为如果没有最起码的几个组合字符 UCS就不能完整地表达这些语言

ndash 级别 3支持所有的 UCS 字符如可以在任意一个字符上加上一个箭头或 和一个 tilde(颚化符号即字母上面的~ )

编码方式bull UCS 有如下两种编码方式

ndash UCS-2与 Unicode 的 2 字节编码基本一样ndash UCS-4 4 字节编码目前是在 UCS-2 前加

上 2 个全零的字节bull UCS 还有 UTF 编码方式参见下面第 4小节ldquo 4 UTFrdquo

3 Unicode 与 ISOIEC 10646bull 关系

ndash 历史上存在两个独立的尝试创立单一字符集的组织即国际标准化组织( ISO )和多语言软件制造商组成的统一码协会组织( Unicodeorg )前者开发的 ISO 10646项目后者开发的 Unicode项目因此最初制定了不同的标准

ndash 1991年前后两个项目的参与者都认识到世界不需要两个不兼容的字符集于是它们开始合并双方的工作成果并为创立一个单一编码表而协同工作

ndash 从 Unicode20开始 Unicode采用了与 ISO 10646-1相同的字库和字码 ISO 也承诺 ISO10646 将不会替超出 U+10FFFF 的 UCS-4 编码赋值以使得两者保持一致

ndash 两个项目仍都存在并独立地公布各自的标准但 Unicode协会和 ISOIEC JTC1SC2 都同意保持两者标准的码表兼容并紧密地共同调整任何未来的扩展

异同bull Unicode协会公布的 Unicode 标准包含了 ISO 10646-1 实现级别

3 的基本多文种平面在两个标准里所有的字符都在相同的位置并且有相同的名字

bull ISO 10646 标准就像 ISO 8859 标准一样只不过是一个简单的字符集表它定义了一些编码的别名指定了一些与标准有关的术语并包括了规范说明指定了怎样使用 UCS连接其他 ISO 标准的实现等

bull Unicode 标准额外定义了许多与字符有关的语义符号学并详细说明了绘制某些语言(如阿拉伯语)表达形式的算法处理双向文字(比如拉丁文和希伯来文的混合文字)的算法排序与字符串比较所需的算法等等

bull 考虑到 Unicode 标准有一个易记的名字既便宜又包括更多的辅助信息因而它使用得更广泛然而

bull 一般认为用于打印 ISO 10646-1 标准的字体在某些方面的质量要高于用于打印 Unicode 20 的专业字体设计者总是被建议说要两个标准都实现但一些提供的样例字形有显著的区别 ISO 10646-1 标准同样使用四种不同的风格变体来显示表意文字如中文日文和韩文 (CJK) 而 Unicode 20 的表里只有中文的变体

4 UTFbull Unicode 和 UCS 都是一个字符集可以看作为内码bull UTF ( UnicodeUCS Transformation Format 统一码

通用字符集转换格式)是一种编码方式它的出现是因为 Unicode 和 UCS 不适宜在某些场合直接传输和处理

bull UCS 和 Unicode 只是分配整数给字符的编码表现在存在好几种将一串字符表示为一串字节的方法(如高或低位字节在前)

bull 最显而易见的两种方法是将 UCS 和 Unicode 文本存储为 2 个 或 4 个字节序列的串这两种方法的正式名称分别为 UCS-2 和 UCS-4

bull 常用的 UTF具体编码方式有 UTF-8 UTF-16 和 UTF-32

UTF-8

bull UTF-8 是 UTF 的一种具体编码方式在 ISO 10646-1 的附录 R 和 IETF 的 RFC 2279 里定义

bull 由于要使文档中的文字与 ASCII兼容故 UTF-8 选择了使用可变长度字节来储存 Unicode 和 UCS 例如ndash ASCII 字母继续使用 1 字节储存ndash 重音文字希腊字母或西里尔字母等使用 2 字节来储存ndash 常用的汉字就要使用 3 字节ndash 辅助平面字符则使用 4 字节ndash 即 ASCII 不作变换其他字符做变长编码每个字符 1~4 字节

bull UTF-8 通常作为外码bull 在 UTF-8 文件的开首很多时都放置一个 U+FEFF 字符

(UTF-8 以 EF BB BF 代表 ) 以显示这个文字档案是以UTF-8 编码

UTF-8 的优点bull 与 CPU 字节顺序无关可以在不同平台之间交流

bull 容错能力高任何一个字节损坏后最多只会导致一个编码码位损失不会链锁错误 ( 如 GB 码错一个字节就会整行乱码 )

UTF-8 的缺点bull UTF-8 使用可变长度字节储存使计算机程序设计变得复杂 (故此在计算机程序或操作系统内部多采用 UCS-2 编码 )

bull 在旧式的中文日文及朝鲜文编码之中每字符都使用 2 字节储存而 UTF-8 须使用 3 字节 (采用 UTF-16 编码则可只使用 2字节储存 )

bull 泰语以往使用的 ISO 8859-11 每字符只使用 1 字节储存而 UTF-8 须使用 3 字节

UTF-8储存的多字节串字符bull U-00000000 - U-0000007F 0xxxxxxx bull U-00000080 - U-000007FF 110xxxxx 10xxxxxx

bull U-00000800 - U-0000FFFF 1110xxxx 10xxxxxx

10xxxxxx bull U-00010000 - U-001FFFFF 11110xxx 10xxxxx

x 10xxxxxx 10xxxxxx bull 在多字节串中第一个字节的开头ldquo 1rdquo 的数目就

是整个串中字节的数目bull 每个使用 UTF-8储存的字符除了第一个字节外其余字节的头两个位元都是以 10 开始使文字处理器能够较快地找出每个字符的开始位置

UTF-16bull UTF-16 是 UTF 的另一种具体编码方式在 ISO 1064

6-1 的附录 Q 和 IETF 的 RFC 2781 里定义bull UTF-16 是变长码( 2 或 4 字节)大致相当于 20位编码值在 0 到 0x10FFFF 之间基本上就是 Unicode 编码的实现 UTF-16 与 CPU 字序有关但因为最省空间常作为网络传输的外码 UTF-16 是 Unicode 的完美编码

bull lt0x10000 的直接用其对应的 16位整数编码位于 0x10000 ~ 0x10FFFF 之间的用 0xD800~0xDBFF 的 16位整数后跟 0xDC00~0xDFFF 的 16位整数的 4 字节编码 gt 0x10FFFF 的不能用 UTF-16 表示

bull 在 Unicode 的 BMP 中定义的字符(无论是拉丁字母汉字或其他文字或符号)一律使用 2 字节存储而在辅助平面定义的字符则以两个 2 字节的值来存储

UTF-16 的特点bull UTF-16比起 UTF-8 的好处在于大部分字符都以固定长

度的 2 字节存储但 UTF-16却无法相容于 ASCII 编码bull UTF-16 有两种编码模式即大尾序( big Endian 高位字节在前)和小尾序( little Endian 高位字节在后)储存形式(一般來說以 Macintosh 制作和存储的文字使用大尾序格式以 Microsoft 或 Linux 制作和存储的文字使用小尾序格式)

bull 为了弄区分 UTF-16 文件的大小尾序在 UTF-16 文件的开头都会放置一个 U+FEFF 字符作为字节顺序标记 (UTF-16LE 以 FF FE代表 UTF-16BE 以 FE FF代表 ) 以显示该文档是以 UTF-16 编码的

UTF-32

bull UTF-32 仅使用了 Unicode范围 (0 到 0x10FFFF) 的 32位编码相当于 UCS-4 的子集

bull 由于 Unicode 和 ISOIEC 10646 的编码和结构与前面讲过的 GB 13000 类似或等价这里就不再做详细的介绍

5支持bull 现在 UnicodeUCS 已经获得了十分广泛的支

持ndash网络与浏览器(如 HTML 4050 XML 与 IE

Safari Netscape Firefox Chrome Opera Edge 等)

ndash操作系统(如 Windows NT2000XPVista7810 Mac OS X iOS Android和 Linux )

ndash 编程语言新版本(如 CC++JavaObjective-CC Swift 等)

Unicode 代码的浏览器显示代码 字符标准名称 (英语 )

浏览器的显示

amp65 大写拉丁字母 A A

amp223 小写拉丁字母 Sharp S szlig

amp254 小写拉丁字母 Thorn thorn

amp916 大写希腊字母 Delta Δ

amp1049 大写斯拉夫字母 Short I Й

amp1511 希伯来字母 Qof ק

amp1605 阿拉伯字母 Meem م

amp3671 泰文数字 7 ๗amp4688 埃塞俄比亚音节文字 Qha ቐ

amp12354 日语平假名 A あamp12450 日语片假名 A アamp21494 简体汉字 叶 叶amp33865 繁体汉字 葉 葉amp50685 韩国音节文字 Yeob 엽

23 文字输出bull 文字输出是指将计算机内的字符编码通过计算机的输出设备(如显示器打印机喇叭)展现出所对应字符的图形或声音供人们阅读或聆听

bull 本节主要介绍文字图示输出的字形技术bull 文字声音输出属于语音合成只在本节的末尾作简单的介绍

231 字形技术bull 文字 = 图形bull 不论是象形文字中的单字还是拼音文字

中的字母都是用图形来表示的bull 在计算机里文字的表示 输出(显示和打

印)涉及ndash 字型ndash 字体ndash 字库

1字型bull 字型指构造和生成字形的方法一般可分为

ndash 点阵字 DOS 显卡 ROM 金山 科印特点似位图显示快占空间(字库大)放大后有马赛克效应

bull 显示字母 88 汉字 1616bull 打印 2424 4848 6464

ndash 矢量字单线条用于笔式绘图仪特点字库小算法简单难看

ndash 轮廓字用曲线描绘字的轮廓输出效果好所见即所得(WYSWYG) 可无级放大易实现空心 阴影 填充 变形等各种特效功能轮廓曲线一般采用样条曲线如 TrueType (Apple 1991 Mac OS Microsoft 1992 Windows 31)用的是二次 B 样条 Bezier曲线中文之星 RichWin采用的是三次 B 样条 Bezier曲线

字型种类

2字体bull 字体指字的形状风格如

ndash 汉字的

ndash 英文的

宋体楷体黑体仿宋

行楷隶书新魏幼圆

Times New Roman Arial Narrow Courier New

常用汉字字体bull 宋体mdashmdash宋体来自于北宋时雕版刻书所采用的欧体字(唐朝欧阳询体)宋体字的横顿拉捺挑钩别具特色间架平正疏密适中字体秀丽遒劲但笔画横细竖粗适合于刀刻不宜于手写现在宋体广泛用于印刷常来表现文档的正文

bull 仿宋体mdashmdash 1920年钱塘的丁辅之与丁善之等人将明代以后盛行的方廓形字体加以改造创造出长形和方形的聚珍仿宋后来演化为现在的仿宋体仿宋体比较接近于手写体为宋体和楷体的折中是采用的宋体的结构和楷体的笔法而成现常来表现打印文件以及文档的摘要和注释等

bull 黑体mdashmdash黑体是适应工艺美术的发展而出现的一种等线体是从日本引进的黑体的结构与宋体没有什么差别只是其笔画粗细一致健实粗壮主要用于文档的标题和重点及标语广告等方面

bull 楷体mdashmdash楷体源于楷书楷体的笔画圆浑笔调灵活结构端正美观但不宜于木板雕刻所以直到清末西洋的石板印刷术传入后才开始广泛用于印刷现代的楷体创造于 20世纪的二三十年代主要用于文档的正文(多用于中小学教材)也可用于工艺美术等方面

3字库bull 字库为一种文字的某一字体的所有字符的集合一般存放在一个磁盘文件中

bull 由于象形文字中单字的数量大(成千上万)而拼音文字中字母的数量小(不到一百个)所以字库的大小有很大的差别

bull 为了使文档界面丰富多彩常见的字处理软件都支持多种字体带有众多字库

4点阵字型的国家标准bull 我国已经公布了若干字体的点阵字型之国家标准

ndash GB 50071-19852001 信息技术 汉字编码字符集(基本集) 24 点阵字型

ndash GB 50072-19852001 信息技术 汉字编码字符集(辅助集) 24 点阵字型

ndash GB 5199-19862001 信息技术 汉字编码字符集(基本集) 16 点阵字型 宋体

ndash GB 6345-19862001 信息技术 汉字编码字符集(基本集) 32 点阵字型 宋体

ndash GB 12041-2001 信息技术 汉字编码字符集(基本集) 48点阵字型 宋体

ndash GB 17698-1999 信息技术 通用多八位编码字符集( I 区) 汉字 16 点阵字型

232 语音合成bull 文字的声音输出主要使用的是语音合成的技术bull 语音合成功能是ldquo文rarr语rdquo转换bull 文语转换 TTS (Text-To-Speech) 是将文本形式的信息转换成自然语音的一种技术其最终目标是使计算机输出清晰而又自然的声音

bull 英语的语音合成在上世纪 80年代就早已成熟而中文 汉语的合成现在也趋于成熟并有了广泛的应用(如汽车导航仪智能手机等)

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 9: 第一篇  媒体

技术bull 人写字时手的抖动书写速度的变化图形板的

量化和感应噪声等会对识别产生干扰因此必须进行必要的平滑和去噪预处理

bull 识别时还需进行字符分割以区分哪些笔画属于同一汉字

bull 手写输入在技术涉及图像识别模式匹配人工智能语言文字书写方式与习惯等方面的知识和方法

bull 目前的手写识别方法和技术还有待于进一步改进和完善以提高识别率减少对输入的限制降低输入设备和识别软件的成本加强软件的自学习功能

213 语音输入bull 语音输入是指利用语音内容的识别技术

将人的话音实时转换为对应文字编码并录入计算机

bull 语音输入的核心技术是语音识别技术bull 语音识别技术现在正在发展过程中还

有待于进一步完善

语音识别技术bull 早期的语音识别技术一直很落后到上世纪 70年代中采

用线性预测编码 LPC 和同态信号处理 (homomorphic signal process) 方法技术有了长足的进步但效果不理想到了上世纪 80年代矢量量化 (VQ Vector Quantization) 和隐马尔科夫模型 (HMM Hidden Markov Model) 的成功使用使语音识别在上世纪 90年代达到了商用化程度不过仍然存在问题识别率一直难以进一步提高又进入了相对低潮的相持阶段2011年 10月 14日苹果公司推出的 iPhone 4S 手机支持智能语音指令输入虽然还存在不少问题但是却引发了业界对语音输入研究和应用的新热潮

bull 语音输入的字词识别涉及词库声母分类规则库声母与韵母结合规则库声调知识库这些统称为声学基元模型库句子识别还涉及语义语法句法语用知识库这些统称为语言模型库句子理解则涉及常识库(难)

语音识别的过程图语音输入

darr数据采集

darr波形自动分析

darr预处理 参数特征提取

分帧后的语音特征矢量集合rarrdarr 声学模型 时间对准larr声学基元模型库

darr 语言模型库rarr 组句分析 larr统计信息与规则

语句候选rarrdarr识别语句输出

语音识别系统分类bull 按可识别词汇量可分为

ndash 小词汇量语音识别系统 (lt100)ndash 中词汇量语音识别系统 (100~1000)ndash 大词汇量语音识别系统 (gt1000)

bull 按语音输入方式可分为ndash 孤立词语音识别系统(简单)ndash 连接词语音识别系统(较难)ndash 连续语音语音识别系统(难)

bull 按发言人类型可分为ndash 特定人( 1 人)ndash 限定人( n 人)ndash 非特定人(任意人)

语音识别的目标是开发大词汇量非特定人的连续语音识别系统

214 扫描输入bull 扫描输入是指将图书期刊打印材料和印刷

品中的印刷体文字先通过扫描仪变成计算机中的数字图像然后再利用文字识别软件 OCR 自动转换成对应得文字编码并录入计算机

bull 目前我国研制的多种 OCR 软件的识别率已经达到 95 以上不过受印刷品质量的影响比较大

bull OCR = Optical Character Recognition Reader 光学字符识别 阅读器

bull 计算机识别印刷汉字的核心问题是抓住汉字的字形特征它主要体现在笔画和关键点上

bull 另一个核心问题是版面的分析与理解包括从图文混排版面中自动排除图形部分自动区分横排和竖排自动识别标题和正文对分栏文本实现自动对接等

bull 扫描输入方法除了用于印刷体文字的识别和输入外也可以用于手写体印刷文字的输入其文字识别的方法与印刷体文字类似也与手写实时输入的方法相关不过失去了笔顺信息属于整字识别类型

22 字符编码bull 字符编码包括西文编码中文编码和国际通

用字符编码本节的重点放在常用的编码标准上

bull 221 西文编码( ASCII 等)bull 222 中文编码( GB 2312 GB 13000

GBKGB 18030 )bull 223 国际通用字符编码( Unicode IS

OIEC 10646 )

221 西文编码bull 西文编码主要介绍 ASCII 字符集然后简

单介绍 IBM公司的 EBCDIC 和两种扩展 ASCII 显示字符表

bull 1 ASCII

bull 2 EBCDIC

bull 3扩展 ASCII 显示字符

1 ASCII

bull ASCII ( American Standard Code for Information Interchange 美国信息交换标准码)是 ANSI于 1963年提出 1968年确定的一种英文字符编码标准( ANSI X34-1986 )广泛应用于计算机网络和信息产业

bull ANSI = American National Standards Institute 美国国家标准协会

bull ASCII采用 7位二进制数的(共计 128 个)代码来表示字符(包括图示符和控制符)加上奇偶校验位(或最高位置 0 )则每个字符由 8位(一个字节)组成

ASCII 字符集

0 1 2 3 4 5 6 7

0 NUL DLE SP 0 P ` p

1 SOH DC1 1 A Q a q

2 STX DC2 ldquo 2 B R b r

3 ETX DC3 3 C S c s

4 EOT DC4 $ 4 D T d t

5 ENQ NAK 5 E U e u

6 ACK SYN amp 6 F V f v

7 BEL ETB lsquo 7 G W g w

8 BS CAN ( 8 H X h x

9 HT EM ) 9 I Y i y

A LF SUB J Z j z

B VT ESC + K [ k

C FF FS lt L l |

D CR GS - = M ] m

E SO RS gt N ^ n ~

F SI US O _ o DEL

bull ASCII 字符集以 32 个字符为一组bull 第一组( 0x00~0x1F )为控制符

(非打印符)用于数据处理 通信系统及其相应设备中的信息交换

bull 后面的除了第一个字符( SP空格符 0x20 )和最后一个字符( DEL删除符 0x7F )外全都是可打印(显示)的图示符包括ndash 第二组( 0x20 ~0x6F )的数字空格

和常用标点符号ndash 第三组( 0x40~0x5F )的大写拉丁字

母(即英文字母)与少数标点符号ndash 第四组( 0x60~0x7F )的小写拉丁字

母与少数标点符号

ASCII 的国际标准bull 1972年美国的国家标准 ASCII 与其若干拉丁语系国家的变体一起成为国际标准 ISO 6461972 ( Information processing -- ISO 7-bit coded character set for information interchange 信息处理mdashmdash ISO 用于信息交换的七位编码字符集)

bull 这些变体主要是将 ASCII 字符集中不常用的符号ldquo $ [ ] ^ ` | ~rdquo替换为他们各自语言的重音符号

bull 1987年 ISO 646 中的 ASCII部分成为 646 的国际参考版( IRV = International Reference Version ) ISO 646IRV1987 但是其中的美元符 $被替换为国际通用货币符 curren

bull 1991年推出的修订版 ISOIEC 646IRV1991 还原成原始的美国 ASCII 所以又被称为 ISO 646-US 或 US-ASCII

替代标准bull 由于 ISO 646 中各国的变体存在明显的兼容和统一问题现在已经作废

bull 有关编码已经被新的国际标准 ISOIEC 8859-1~16 19871998 ( Information processingtechnology -- 8-bit single-byte coded graphic character sets 信息处理 技术mdashmdash 8位单字节编码的图形字符集)所替代

bull 后来 ISO 646 与 ISOIEC 8859 标准又都被纳入 ISOIEC 1064619932003 ( Information technology -- Universal Multiple-Octet Coded Character Set (UCS) 信息技术mdashmdash通用多八位编码字符集 (UCS) )标准之中

bull 其中的标准编号 ISO 10646 = ISO 646 + 10000

标准化组织bull ANSI = American National Standards Institute 美

国国家标准协会bull ISO = International Organization for Standardization

国际标准化组织是由 153 个国家的国家标准协会联合组成的一个非政府国际组织总部(中央秘书处)设在瑞士的日内瓦负责制定适应商业和广泛社会需要的各种国际标准网址为 httpwwwisoorg

bull IEC = International Electrotechnical Commission 国际电工技术委员会是一个成立于 1906年 6月的国际标准化权威组织属于联合国的甲级咨询机构负责制定关于电工电子各方面的标准有 42 个会员国总部也设在瑞士的日内瓦网址为httpwwwiecch我国于 1958年 8月参加

2 EBCDIC

bull 西文的字符编码方案除了通用的 ASCII外还有 IBM公司于 1960年代初提出的 EBCDIC ( Extended Binary-Coded Decimal Interchange Code扩充的二进制编码的十进制交换码)

bull EBCDIC 现在仍然(仅)在 IBM 的 OS390 与 TPF 以及富士通 - 西门子的 BS2000OSD 等大型机的操作系统中使用

bull EBCDIC 是一种八位编码其字符的编码方案与ASCII 的完全不同

EBCDIC 字符集 0 1 2 3 4 5 6 7 8 9 A B C D E F

0 NUL DLE DS SP amp - 0

1 SOH DC1 SOS a j ~ A J 1

2 STX DC2 FS SYN b k s B K S 2

3 ETX TM c l t C L T 3

4 PF RES BYP PN d m u D M U 4

5 HT NL LF RS e n v E N V 5

6 LC BS ETB UC f o w F O W 6

7 DEL IL ESC EOT g p x G P X 7

8 GE CAN h q y H Q Y 8

9 RLF EM ` i r z I R Z 9

A SMM CC SM cent | |

B VT CU1 CU2 CU3 $

C FF IFS DC4 gt

D CR IGS ENQ NAK ( ) _ lsquo

E SO IRS ACK + lt =

F SI IUS BEL SUB | ldquo EO

3扩展 ASCII 显示字符bull ( 1 ) IBM PC

ndash IBM PC 的扩展 ASCII 显示字符由 IBM公司为其 PC 机制定可以由原始的 IBM PC 显示器在 DOS状态下显示

bull ( 2 ) Microsoft Windows ndash Microsoft Windows 的扩展 ASCII 显示字符由

微软公司为其Windows操作系统制定可以在Windows环境的西文状态下被显示

IBM PC 的扩展 ASCII 显示字符表

Microsoft Windows 的扩展 ASCII 显示字符表

222 中文编码bull 1 GB 1988 与 GB 2311

bull 2 GB 2312

bull 3汉字编码的辅助集bull 4 Big5

bull 5少数民族文字编码bull 6 GB 13000

bull 7 GBK 与 GB 18030

汉字编码bull 为了计算机处理汉字必须先对汉字进行编码由于汉

字数量大(《康熙字典》收字 47 035 个《汉语大字典》收字 54 678 个据统计在形成楷体后出现的汉字约有 9万个左右)显然不能像 ASCII那样用 7位或单字节来进行编码至少需要两个字节(最多可表示 6万5千多个字符)

bull 1980年我国制定了著名的 GB 2312-80双字节汉字编码标准(其中 GB 为ldquo国标rdquo这两个汉字的拼音首字母)收汉字 6 763 个

bull 1993年底又推出了等同于国际通用字符编码标准 ISOIEC 106461-1993 的国家标准 GB 130001-93 收汉字 20 902 个

bull 由于 GB 13000 与 GB 2312 的编码不兼容作为过渡2000年又公布了 GB 18030-2000 ( GBK )收汉字2万 7千个

1 GB 1988 与 GB 2311

bull 为了能够同时表示和处理汉字和英文实现中外文混排汉字编码必须兼容通用的 ASCII 编码因此1980年我国制定了与国际标准 ISO 6461972 (即ASCII )对应的国家标准 GB 1988-80《信息处理交换用的七位编码字符集》

bull 汉字成千上万不可能像 ASCII 一样只用单字节的七位来表示必须扩展到八位和多字节但是不能随意扩充而应该符合国际规范因此我国于 1980年又制定了与七位代码扩充到八位编码的国际标准 ISO 2022兼容的国家标准 GB 2311-80《信息处理交换用七位编码字符集的扩充办法》

GB 1988-80 ( ASCII )的代码结构图

行 0 1 2 3 4 5 6 7

0 SP

1 helliphellip

15

16

32个

控制符

94个

图形字符

DEL

GB 2311-80 的八位编码结构图列

行 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0 SP 100

1

helliphellip

14

15

C0

32个

控制符

GL

94或 96个

图形字符

DEL

C1

32个

控制符

GR

94或 96个

图形字符

1515

2 GB 2312

bull GB 2312-80《信息交换用汉字编码字符集 middot基本集》是我国制定的一个使用最广泛的汉字编码的强制性国家标准由原第四机械工业部的华北计算机研究所(后改名为电子工业部第十五研究所)起草1980年批准 1981年 5月 1日起实施

bull GB 2312-80 是在已有的国家标准 GB 1988-80(对应于 ISO 646 )和 GB 2311-80 (对应于 ISO 2022 )的基础上制定的采用与 ISO 2022兼容的GB 2311 之 7位到八位的代码扩充办法用双字节编码表示汉字与 ASCII兼容

收录的字符bull GB 2312 对应的是汉字的基本集共收汉字 6 763 个

可达到 9999 的使用频率因此除了极少数生僻的人名地名和古文外 GB 2312 中的汉字已经能基本满足平时的使用了

bull 除了汉字外 GB 2312 还收录了 682 个非汉字图形符号包括 202 个一般符号(含间隔符标点运算符和制表符) 60 个序号符 22 个数字符 52 个英文字母 169 个日文假名 48 个希腊字母 66 个俄文字母 26 个汉语拼音符号和 37 个汉语注音字母

bull 所以在 GB 2312-80 标准中共收录了( 6 763 汉字 + 682 非汉字图符 = ) 7 445 图形字符

两级汉字bull GB 2312 将其收录的六千多个汉字分成两个级别bull 一级汉字有 3 755 个都为使用频率高的常用汉

字为便于检索像字典那样将这些汉字按拼音字母顺序排列(同音字再按笔顺的横竖撇捺点折序排列)

bull 二级汉字有 3 008 个大部分较生僻不易掌握读音所以按部首顺序排列(同部首的字按笔画数排列同笔画数的字再按笔顺排列)

编码方案bull GB 2312 对所有图形字符(包括汉字和非汉字图符)都采用两个字节表示每个字节的低七位用于编码最高位全为 1 这样可以兼容 ASCII 编码(字节的最高位全为 0 )

bull 虽然在一个字节中最高位为 1 的符号位置有 128 个但从前面 GB 2311 的分析可知为了与 ASCII 的代码结构兼容保留了( 32 + 2 = ) 34 个控制符位置最后只有( 128 ndash 34 = ) 94 个符号位可供图形字符编码使用

bull 图形字符在代码表中的位置用区位码表示将码表分成94 个区对应于编码的第一个字节取值 0x21~0x7E 每个区又分成 94 个位对应于编码的第二个字节取值 0x21~0x7E (参见表 2-6 )

bull 例如ldquo中山大学rdquo的编码为中 (0xD6D0) 山 (0xC9BD) 大 (0xB4F3) 学 (0xD1A7)

GB 2312-80 字符集结构 20 21 22 helliphellip 7D 7E 7F

位号

区号

1 2 helliphellip 93 94

20

21~29 1~9 非汉字图符(682个)

2A~2F 10~15 空白区

30~57 16~55 一级汉字(3 755个)

58~77 56~87 二级汉字(3 008个)

78~7E 88~94 空白区

7F

第 1 区的部分非汉字图符

1区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 middot ˉ ˇ uml 々 mdash ~ hellip lsquo rsquo ldquo

17~32 rdquo 〔 〕 〈 〉 《 》 「 」 『 』 〖 〗 【 】 plusmn

33~48 times divide ∶ and or sum prod cup cap isin ∷ radic perp ∥ ang

49~64 ⊙ int ∮ equiv ≌ asymp ∽ prop ne ltu gtu le ge infin ∵ there4

65~80 deg prime Prime $ curren ¢ £ permil sect

81~94 rarr larr uarr darr

第 16 区的部分一级汉字

16区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 啊 阿 埃 挨 哎 唉 哀 皑 癌 蔼 矮 艾 碍 爱 隘 鞍

17~32 氨 安 俺 按 暗 岸 胺 案 肮 昂 盎 凹 敖 熬 翱 袄

33~48 傲 奥 懊 澳 芭 捌 扒 叭 吧 笆 八 疤 巴 拔 跋 靶

49~64 把 耙 坝 霸 罢 爸 白 柏 百 摆 佰 败 拜 稗 斑 班

65~80 搬 扳 般 颁 板 版 扮 拌 伴 瓣 半 办 绊 邦 帮 梆

81~94 榜 膀 绑 棒 磅 蚌 镑 傍 谤 苞 胞 包 褒 剥

第 56 区的部分二级汉字

56区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 亍 丌 兀 丐 廿 卅 丕 亘 丞 鬲 孬 噩 丨 禺 丿 匕

17~32 乇 夭 爻 卮 氐 囟 胤 馗 毓 睾 鼗 丶 亟 鼐 乜 乩

33~48 亓 芈 孛 啬 嘏 仄 厍 厝 厣 厥 厮 靥 赝 匚 叵 匦

49~64 匮 匾 赜 卦 卣 刂 刈 刎 刭 刳 刿 剀 剌 剞 剡 剜

65~80 蒯 剽 劂 劁 劐 劓 冂 罔 亻 仃 仉 仂 仨 仡 仫 仞

81~94 伛 仳 伢 佤 仵 伥 伧 伉 伫 佞 佧 攸 佚 佝

3汉字编码的辅助集bull 除了GB 2312基本集的 6 763 个简体汉字外国家标

准还给出了汉字编码字符集的多个辅助集bull 第二 四辅助集分别增加了 7 237 7 039 个简体汉字bull 第一和三 五辅助集则分别是与基本集和第二 四辅助集所对应的繁体汉字字符集的国家标准

bull 基本集加上辅助集共有 21 039 个简体汉字和 21 142个繁体汉字

bull 繁体汉字之所以多一些是因为在第一辅助集中有时几个繁体字对应一个简体字因此比基本集多出 103 个汉字

bull 基本集和辅助集的代码页之间靠其编码字节的最高位来区分

编码字符的分页标志

双字节汉字编码的页面结构第二字节 列号

行号 0 middot middot middot 32 33 34 helliphellip 125 126 127 128middot middot 160 161 162 helliphellip 254 255 0 middot middot 32

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

33 34 middot middot middot 126

1 2 middot middot middot 94

第四五辅助集 (7 039个汉字)

127

(兼容ASCII)

128 middot middot 160

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

161 162 middot middot middot 254

1 2 middot middot middot 94

第二三辅助集 (7 237个汉字)

1 2 middot middot middot 94

基本集第一辅助集 (6 763 6 866个汉字) (682个非汉字图符)

第一字节

255

4 Big5

bull 除了中国大陆使用的简体汉字外在台湾香港澳门和海外华侨社区使用的是传统的繁体汉字

bull 简体汉字使用 GB (国标)系列编码标准bull 繁体汉字一般使用的是 Big5内码(大五码)即台湾的ldquo资讯工业策进会rdquo发布的《标准交换码 (Ⅲ码 )》收录汉字 13 053 个

bull Big5内码是 1984年由台湾财团法人资讯工业策进会与宏碁 (Acer) 神通 (MiTAC) 佳佳零壹 (Zero One) 大众 (FIC) 等五大软件公司联合推出故称为大五码

BIG5 的代码空间低位字节

00 hellip 3F 40 hellip 7E 7F hellip A0 A1 hellip FE FF

高位字节

00middot

80

81middot

A0用户定义区 用户定义区

A1A2A3

非汉字图符 非汉字图符

A4middot

C6常用汉字 常用汉字

C7C8

用户定义区 用户定义区

C9middot

F9次常用汉字 次常用汉字

FAmiddot

FE用户定义区 用户定义区

FF

5少数民族文字编码bull 中国共有 56 个民族除了汉回满族一般使用汉语外其他少数民族大多有自己的民族语言

bull 我国各民族使用的 50 多种文字可以分为字母式结构文字和非字母式结构文字两大类ndash 字母式结构的有拉丁文斯拉夫文蒙古文维吾尔文哈萨克文藏文和朝鲜文等字母式

ndash 非字母式结构的有汉字象形文字图画文字和音节文字等bull 各民族文字的书写方向也有不同

ndash 壮文藏文朝鲜文彝文等的字从左到右行从上到下ndash 维吾尔文哈萨克文和柯尔克孜文等的字从右到左行从上

到下ndash 蒙古文和满文的字从上到下行从左到右ndash 汉字的书写方向有两种

bull 大陆的简体汉字的字从左到右行从上到下bull 港台与古旧书的繁体汉字的字从上到下行从右到左

国家标准bull 下面按发布时间列出若干已经公布的我国少数民族文字

编码集的国家标准(这些字符集一般分成两类对字母式结构文字采用八位编码对非字母式结构文字采用双字节编码)ndash GB 8045-87《信息处理交换用蒙古文七位和八位编码图形字

符集》收 82 个蒙古文字母和 12 个其他符号共 94 个字符ndash GB 12050-89《信息处理交换用维吾尔文编码图形字符集》收 32 个维吾尔文字母一个维吾尔文复合字符和 37 个其他符号共 70 个字符

ndash GB 12052-89《信息交换用朝鲜文编码字符集》收 5297 个朝鲜文字和 682 个其他符号(与 GB 2132同)共 5 979 个字符

ndash GB 13134-91《信息交换用彝文编码字符集》收 1165 个彝文字符和 688 个其他符号共 1853 个字符

ndash GB 16959-1997《信息技术 信息交换用藏文编码字符集 基本集》收 41 个藏文字母 36 个藏文主字 13 个元音字符12 个语音字符 10 个藏文数字 10 个半值符一个控制用连接符和 46 个其他藏文图形符号共 169 个字符

6 GB 13000bull GB 13000 是与 ISOIEC 10646 等价的国际通用编码字符集标准收汉字 2万多个但是与 GB 2312 和 GBK 不兼容

bull 1993年 5月 ISO 与 IEC 联合推出了可用于世界各种文字的通用编码字符集的国际标准的第 1部分ndash ISOIEC 10646-11993 Information technology -- Universal Multiple-Octe

t Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane (信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

ndash 该标准收字符 96万个几乎涵盖世界上的所有文字其中包含汉字 21 003 个

bull 1993年底我国推出了等同于国际标准 ISOIEC 1064611993 的强制性国家标准 ndash GB 130001-93《信息技术 通用多八位编码字符集( UCS ) 第一部分

体系结构与基本多文种平面》ndash 该标准于 1993年 12月 24日被国家技术监督局批准 1994年 8月 1日起实施

GB 13000 的主要特点

bull 世界各语言文种字符统一编码避免冲突便于国际交流

bull 编码空间宽阔连续每个图形字符的编码唯一(一字一码)不再存在兼容性问题

bull 按文种而不是按语言编码避免重复和浪费(如中日韩汉字的统一编码 CJK )

bull 与 GB 2312 和 GBK 不兼容

体系结构bull UCS 的体系结构是基于所谓ldquo多八位rdquo的而ldquo八位rdquo就是一个字节ldquo多八位rdquo就是多个字节

bull UCS采用 4 个字节来表征组面行位的四维空间bull 整个 UCS空间包含 128 个组( 0x00组 ~0x7F组)每组有 256 个平面( 0x00 平面 ~0xFF 平面)每个平面有 256 行每行又由 256 个字位构成

bull UCS共有( 128 times 256 = ) 32 768 个平面每个平面有( 256 times 256 = ) 65 536 个字位每个字位对应于一个字符的编码

bull 目前的编码只限于 00组已经定义的平面有 00组的00 平面mdashmdash称之为基本多文种平面 BMP ( Basic Multilingual Plane ) 及若干辅助平面

UCS 的全部编码空间

每个平面256times256 个

字位

00组 00 平面

00组 FF 平面

01组 00 平面

7F组 00 平面00

01组

7F组

UCS 的 00组

BMPbull BMP = Basic Multilingual Plane 基本多文种平面bull BMP 用作双八位编码字符集称之为 UCS-2 它被

分成四个区ndash A- 区(字位 0x0000~0x4DFF 有 19 903 个字位)用于

字母文字音节文字以及各种符号ndash I- 区(字位 0x4E00~0x9FFF 共 20 992 个字位)用于中日韩统一汉字( CJK )

ndash O- 区(字位 0xA000~0xDFFF 共 16 384 个字位)保留未来标准化用

ndash R- 区(字位 0xE000~0xFFFD 共 8 190 个字位)为 BMP 的限制使用区包括专用字符变形显现形式及兼容字符

BMP总貌

A-区

00~33 拼音文字(见下页)

34~3D 朝鲜文

3E~44 朝鲜文补充 -A

45~4D 朝鲜文补充 -B

I-区 4E~9F CJK统一汉字O-区 A0~DF

R-区

E0~F8 专用区

F9~FA CJK兼容汉字FB 拼音文字变形显现形式

FC~FD 阿拉伯文变形显现形式 -A

FE半形组合用标志

CJK兼容形式

小写变体

阿拉伯文变形显现形式 -B

FF 半形及全形字符 特殊字符

BMP 的0x00~0x33

行字母文字区

00 基本拉丁文 拉丁文-1补充

01 拉丁文扩充-A 拉丁文扩充-B

02 拉丁文扩充-B 国际音标扩充 进格修饰字符

03 组合用发音符 基本希腊文 希腊符号及哥普特文

04 西里尔文

05 美亚尼亚文 希伯来文(基本和扩充)

06 基本阿拉伯文 阿拉伯文扩充

07

08

09 梵文 孟加拉文

0A 锡克教文 古吉拉特文

0B 奥利雅文 泰米尔文

0C 泰卢固文 卡纳达文

0D 德拉维族文

0E 泰文 老挝文

0F

10 格鲁吉亚文

11 朝鲜文字母

12~1D

1E 拉丁文扩充增补

1F 希腊文扩充

20 广义标点 上下标 货币符号 符号组合用区分标志

21 类似字母的符号 数字形式 箭头

22 数学运算符

23 零杂技术用符号

24 控制图符 光学识别符 带括号的字母数字

25 制表符 方块元素 几何图形符

26 零杂符号

27 示意符等

28~2F

30 CJK符号和标点 平假名 片假名

31 注音 朝鲜文兼容字母 CJK零杂字符

32 带括号的CJK字母及月份

33 CJK兼容字符

留作将来标准化用

非图形字符

表示形式bull GB 13000提供了字符编码表示的两种替代使用的形式

ndash 双八位 BMP 形式( UCS-2 )mdashmdash允许使用 BMP 中的字符且每个字符用两个字节表示

ndash 肆八位正则形式( UCS-4 )mdashmdash允许使用 GB 13000 中的全部字符且每个字符用四个字节表示

bull 除了 UCS-24外还有另外两种变形的表示形式ndash UTF-8 (单字节 ~ 多字节)ndash UTF-16 (双字节和 4 字节与 UCS-2 等价)ndash 目前在工业上的实现均为 UTF-16 ( UCS-2 )和 UTF-8ndash UTF = Unicode UCS Transformation Format 统一码 UC

S转换格式bull 关于统一码我们会在下一小节详细介绍

7 GBK 与 GB 18030bull 由于 GB 13000 标准与 GB 2312 标准的字符编码不兼容作为过渡在国家信息技术标准化委员会的主持下制定了与 GB 2312兼容的《汉字内码扩展规范( GBK )》( K 为扩展的ldquo扩rdquo字的拼音首字母)并于 1995年 12月 15日由原国家技术监督局标准司联合原电子工业部科技与质量监督司作为指导性技术规范发布实施

bull 2000年 GBK又被国家标准 GB 18030-2000《信息技术 信息交换用汉字编码字符集 基本集的扩充》所代替该标准收汉字 2万 7千个

bull 与 GB 2312 一样 GB 18030 也为中国的强制性国家标准微软公司的 Windows XPVista78 中文版与苹果公司的 Mac OS X 和 iOS 谷歌公司的 Android (安卓)等操作系统已经全面支持 GBK

GB 18030 的码位范围分布

字节数 码位空间 码位数目

单字节 0x00~0x7F 128

双字节第 1字节 第 2字节

23 9400x81~0xFE

0x40~0x7E 0x80~0xFE

四字节第 1字节 第 2字节 第 3字节 第 4字节

1 587 6000x81~0xFE 0x30~0x39 0x81~0xFE 0x30~0x39

GB 18030的

总体结构图

收录字符bull 单字节部分mdashmdash收录了GBT 11383 的 0x00~0x7F 全部 128 个字符(似 ASCI

I )bull 双字节部分mdashmdash收录内容如下 (21 003 个汉字和 884 个符号共 21 887 个字符 )

ndash GB 130001-93 的全部 CJK 统一汉字字符 20 902 个( GB 2312 的编码汉字在双字节 2 区其他 CJK 统一汉字在双字节 34 区)

ndash GB 130001-93 的 CJK兼容区挑选出来的 21 个汉字ldquo郎凉秊helliphellip﨨﨩rdquo( 0xFD9C~0xFDA0 和 0xFE40~0xFE4F )

ndash GB 130001-93 中收录而 GB 2312未收录的台湾地区使用的图形字符 139 个ldquoˊˋ˙helliphelliprdquo( 0xA840~0xA895 和 0xA940~0XA988 )

ndash GB 130001-93收录的其他字符 31 ( 13)个(在双字节 5 区)ndash GB 2312-80 中的非汉字字符 682 个( 0xA1A1~0xA9EF )ndash GB 12345-90 的竖排标点符号 19 ( 29)个ldquo︵︶︹helliphellip︳︴rdquo( 0xA6D9~0xA6

F5 )ndash GB 2312-80未收录的 10 个小写罗马数字ldquoⅰⅱⅲhelliphellipⅸⅹrdquo( 0xA2A1~ 0xA2A

A )ndash GB 2312-80未收录的带音调的汉语拼音字母 5 ( 4)个ldquo ńňǹrdquo 以及 ɑ 和 ɡ ( 0

xA8BB~0xA8C0 )ndash 汉字数字零ldquo〇rdquo (0xA996) 和欧元符ldquoeurordquo (0xA2E3)ndash 表意文字描述符 13 个ldquohelliphelliprdquo( 0xA989~0xA995 )ndash 对 GB 130001-93增补的汉字和部首 构件 80 个ldquohelliphellip䶮rdquo( 0xFE50~ 0x

FEA0 )bull 四字节部分mdashmdash收录了上述双字节字符之外的包括 CJK 统一汉字扩充 A 在内

的 GB 130001-93 中的全部字符

GB 18030双字节部分的码位安排

类别 区名 码位范围 码位数 字符数 内容

符号区双字节 1区 A1A1~A9FE 846 718

GB 2312非汉字字符等

双字节 5区 A840~A9A0 192 166 台湾图符等

汉字区双字节 2区 B0A1~F7FE 6768 6763 GB 2312汉字双字节 3区 8140~A0FE 6080 6080 CJK统一汉字双字节 4区 AA40~FEA0 8160 8160 CJK统一汉字等

用户自定义区双字节用户区 1 AAA1~AFFE 564

用户自定义字符双字节用户区 2 F8A1~FEFE 658

双字节用户区 3 A140~A7A0 672

GB 18030双字节部分的编码空间结构图 尾字节

0x40larr――rarr0x7E 0x80larr――rarr0xA0 0xA1larr――――――――――――rarr0xFE

0x81 uarr darr

0xA0

0xA1 uarr darr

0xA7

0xA8 0xA9

首字节

0xAA uarr | | | | | | | | | | darr

0xFE

双字节 3区

汉字区6 080个码位

双字节用户区 3

用户自定义区672个码位

双字节 5区 图形符号区192个码位

双字节 4区

汉字区8 160个码位

双字节 1区

图形符号区564个码位

双字节 2区

汉字区6 768个码位

双字节用户区 1 用户自定义区564个码位

双字节用户区 2 用户自定义区658个码位

223 国际通用字符编码

bull Unicode (统一码)是由多语言软件制造商组成的统一码协会( httpwwwUnicodeorg)所制定一种国际字符的编码标准

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull 本节主要介绍这两种关系密切的主流国际字符编码标准的来历编码方案各自特点与相互关系

1 Unicode 统一码bull 发展历史

ndash 1987年施乐( Xerox )公司的 Joe Becker 与 Lee Collins 和苹果( Apple )公司的 Mark Davis 等人开始讨论统一编码 1987年 12月 Joe Becker造词 Unicode (统一码)含义为ldquo unique universal and uniform character encodingrdquo (单一通用统一的字符编码) 1989年 2月开始定期召开统一码会议 1989年 9月公布 Unicode草案

ndash 1991年 1月 3 日由 Xerox Apple Sun IBM Aldis Microsoft 等公司出资在美国加州成立了统一码协会( Unicode Consortium )并由协会设立非盈利性的统一码公司( Unicode Inc )后来 HP Adobe Borland Digital Lotus Novell 等公司也纷纷加入 1991年 1月成立统一码技术委员会 UTC 并制定了其规程

ndash 1991年 2月在 Ed Hart 的推动下进行了ldquo统一码对 10464 国际标准草案 1rdquo 的对话Unicode 与 ISOIEC 10646开始走向融合

ndash 1991年 8月发布 Unicode 标准 10版的第 1卷(体系结构非表意字符) 1992年6月发表 Unicode 10版的第 2卷(表意字符) 1993年 6月发布 Unicode 11版与 1993年 5月公布的 ISOIEC 10646-11993 实现了合并

ndash 1996年 7月发布 Unicode 20版ndash 1999年 9月发布 Unicode 30版ndash 2003年 4月发布 Unicode 40版(对应于 ISOIEC 106462003 ) 2004年 3月 31日发布 Unicode 401版 2005年 3月 31日发布 Unicode 410版

ndash 2006年 7月 14日发布 Unicode 50版 2008年 4月 4日发布 Unicode 51版 2009年 12月 22日发布 Unicode 52版

ndash 2010年 10月发布 Unicode 60版 2012年 1月发布 Unicode 61版(对应于 ISOIEC 106462012 ) 2012年 9月推出 Unicode 62版 2013年 9月推出 Unicode 63版

ndash 2014年 6月 16日发布 Unicode 70版 ndash 2015年 6月 17日发布 Unicode 80版

字符集bull Unicode 字符集的空间分成双字节的基本多语言平面 (Basic Multilingual Pla

ne BMP) 和 4 字节的辅助多语言平面 (Supplementary Multilingual Plane SMP) 两种

bull BMPndash Unicode 的基本平面或基本多语言平面 BMP 对应于 ISOIEC 10646-1 的第 00组的 00 平面( BMP )即 Unicode 与 ISOIEC 10646 的 BMP 中的字符编码完全一致

bull SMPndash 鉴于 Unicode 原有的 16位元空间不足以应用从 Unicode 31版本开始设立了 16 个辅助平面使 Unicode 的可使用空间由六万多字增至约一百万字

ndash 原有的 Unicode双字节空间称为基本平面或基本多语言平面 BMP 辅助多语言平面 SMP 字符要用 4 字节来储存

ndash 第一辅助平面摆放拼音文字(主要为现时已不再使用的文字)及符号范围在 U+10000 - U+1FFFD

ndash 第二辅助平面又称为表意文字补充平面 (Supplementary Ideographic Plane 简称 SIP) 现时摆放ldquo中日韩统汉字扩展 B 区rdquo共 43253 个汉字范围在 U+20000 - U+2FFFD

ndash 第三至十三辅助平面尚未使用ndash 第十四辅助平面又称为特殊用途补充平面 (Supplementary Special-purpose Pl

ane 简称 SSP) 摆放 Language tags 和 Variation Selectors 它们都是控制字符范围在 U+E0000 - U+E01FF

ndash 第十五至十六辅助平面都是私人使用区它们的范围是 U+F0000 - U+FFFFD 及 U+100000 - U+1000FD

bull Unicode 字符集的具体编码方式参加第 4小节ldquo 4 UTFrdquo

2 ISOIEC 10646

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull ISOIEC 10646 标准由 ISO 与 IEC 联合成立的 ISOIEC JTC1SC2WG2 制定ndash JTC 1 ( Joint Technical Committee 1 on Information

technology ISOIEC信息技术联合技术委员会 1 )负责信息技术方面标准的制定工作

ndash SC 2 ( SubCommittee 2 on Coded character sets 编码字符集分会 2 )下的 WG 2 ( Working Group 2 on Universal coded character set 通用编码字符集工作组 2 )负责制定国际通用字符编码标准即后来公布的 ISOIEC 10646

发展历史bull 1984年 ISO 的一些会员国发起制定新的国际字符编码标准同年 4月 ISO

与 IEC 联合成立 ISOIEC JTC1SC2WG2 1987年 3月制定出编码架构1992年 6月投票通过第二版国际标准草案

bull 1993年 5月推出 10646 标准时将内容分成两个部分标准首先发布的是其中的第 1 个部分(体系结构与基本多文种平面)的第 1版( Edition 1 ) ISOIEC 10646-11993 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane(信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

bull 2000年 3月推出 10646 标准第一个部分的第 2版( Edition 2 ) ISOIEC 10646-12000 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane

bull 2001年 10月推出 10646 标准第 2版的第二个部分(辅助平面)的第 1版( Edition 1 ) ISOIEC 10646-22001 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 2 Supplementary Planes

bull 2003年 10月推出的 10646新标准(第 1版 Edition 1 )将老标准中的两个部分标准合并成了一个单一的标准 ISOIEC 106462003 Information technology -- Universal Multiple- Octet Coded Character Set (UCS) 后来又于 2010年 2012年和 2014年分别推出了 ISOIEC 106462010 (第 2版)ISOIEC 106462012 (第 3版)和 ISOIEC 106462014 (第 4版)

UCS 通用字符集bull 通用字符集( Universal Character Set UCS )是

ISOIEC 10646 标准所定义的字符编码方式采用 4字节编码又称为 Universal Multiple-Octet Coded Character Set (通用多八位编码字符集)

bull 通用字符集是所有包括了其他字符集它保证了与其他字符集的双向兼容即如果你将任何文本字符串翻译到 UCS 格式然后再翻译回原编码你不会丢失任何信息

bull UCS 包含了已知语言的所有字符除了拉丁语希腊语斯拉夫语希伯来语阿拉伯语亚美尼亚语格鲁吉亚语还包括中文日文韩文这样的象形文字 UCS 还包括大量的图形印刷数学科学符号

名字与组合字符bull UCS 不仅给每个字符分配一个代码而且赋予了

一个正式的名字表示一个 UCS 或 Unicode值的十六进制数通常在前面加上ldquo U+rdquo 例如ldquo U+0041rdquo代表字符ldquo Ardquo

bull UCS里有些编码点分配给了组合字符组合字符机制允许在任何字符后加上重音符或其他指示标记 这在科学符号中特别有用 比如数学方程式和国际音标字母 可能会需要在一个基本字符后组合上一个或多个指示标记

实现级别bull 并不是所有的系统都需要支持像组合字符这样的的先进

机制因此 ISO 10646 指定了如下三种实现级别ndash 级别 1不支持组合字符和韩语 Hangul Jamo 字符 ( 一种特

别的 更加复杂的韩国文的编码 使用两个或三个子字符来编码一个韩文音节 )

ndash 级别 2类似于级别 1 但在某些文字中允许一列固定的组合字符 (例如 希伯来文 阿拉伯文 Devangari 孟加拉语 果鲁穆奇语 Gujarati Oriya 泰米尔语 Telugo 印 埃纳德语 Malayalam 泰国语和老挝语 ) 因为如果没有最起码的几个组合字符 UCS就不能完整地表达这些语言

ndash 级别 3支持所有的 UCS 字符如可以在任意一个字符上加上一个箭头或 和一个 tilde(颚化符号即字母上面的~ )

编码方式bull UCS 有如下两种编码方式

ndash UCS-2与 Unicode 的 2 字节编码基本一样ndash UCS-4 4 字节编码目前是在 UCS-2 前加

上 2 个全零的字节bull UCS 还有 UTF 编码方式参见下面第 4小节ldquo 4 UTFrdquo

3 Unicode 与 ISOIEC 10646bull 关系

ndash 历史上存在两个独立的尝试创立单一字符集的组织即国际标准化组织( ISO )和多语言软件制造商组成的统一码协会组织( Unicodeorg )前者开发的 ISO 10646项目后者开发的 Unicode项目因此最初制定了不同的标准

ndash 1991年前后两个项目的参与者都认识到世界不需要两个不兼容的字符集于是它们开始合并双方的工作成果并为创立一个单一编码表而协同工作

ndash 从 Unicode20开始 Unicode采用了与 ISO 10646-1相同的字库和字码 ISO 也承诺 ISO10646 将不会替超出 U+10FFFF 的 UCS-4 编码赋值以使得两者保持一致

ndash 两个项目仍都存在并独立地公布各自的标准但 Unicode协会和 ISOIEC JTC1SC2 都同意保持两者标准的码表兼容并紧密地共同调整任何未来的扩展

异同bull Unicode协会公布的 Unicode 标准包含了 ISO 10646-1 实现级别

3 的基本多文种平面在两个标准里所有的字符都在相同的位置并且有相同的名字

bull ISO 10646 标准就像 ISO 8859 标准一样只不过是一个简单的字符集表它定义了一些编码的别名指定了一些与标准有关的术语并包括了规范说明指定了怎样使用 UCS连接其他 ISO 标准的实现等

bull Unicode 标准额外定义了许多与字符有关的语义符号学并详细说明了绘制某些语言(如阿拉伯语)表达形式的算法处理双向文字(比如拉丁文和希伯来文的混合文字)的算法排序与字符串比较所需的算法等等

bull 考虑到 Unicode 标准有一个易记的名字既便宜又包括更多的辅助信息因而它使用得更广泛然而

bull 一般认为用于打印 ISO 10646-1 标准的字体在某些方面的质量要高于用于打印 Unicode 20 的专业字体设计者总是被建议说要两个标准都实现但一些提供的样例字形有显著的区别 ISO 10646-1 标准同样使用四种不同的风格变体来显示表意文字如中文日文和韩文 (CJK) 而 Unicode 20 的表里只有中文的变体

4 UTFbull Unicode 和 UCS 都是一个字符集可以看作为内码bull UTF ( UnicodeUCS Transformation Format 统一码

通用字符集转换格式)是一种编码方式它的出现是因为 Unicode 和 UCS 不适宜在某些场合直接传输和处理

bull UCS 和 Unicode 只是分配整数给字符的编码表现在存在好几种将一串字符表示为一串字节的方法(如高或低位字节在前)

bull 最显而易见的两种方法是将 UCS 和 Unicode 文本存储为 2 个 或 4 个字节序列的串这两种方法的正式名称分别为 UCS-2 和 UCS-4

bull 常用的 UTF具体编码方式有 UTF-8 UTF-16 和 UTF-32

UTF-8

bull UTF-8 是 UTF 的一种具体编码方式在 ISO 10646-1 的附录 R 和 IETF 的 RFC 2279 里定义

bull 由于要使文档中的文字与 ASCII兼容故 UTF-8 选择了使用可变长度字节来储存 Unicode 和 UCS 例如ndash ASCII 字母继续使用 1 字节储存ndash 重音文字希腊字母或西里尔字母等使用 2 字节来储存ndash 常用的汉字就要使用 3 字节ndash 辅助平面字符则使用 4 字节ndash 即 ASCII 不作变换其他字符做变长编码每个字符 1~4 字节

bull UTF-8 通常作为外码bull 在 UTF-8 文件的开首很多时都放置一个 U+FEFF 字符

(UTF-8 以 EF BB BF 代表 ) 以显示这个文字档案是以UTF-8 编码

UTF-8 的优点bull 与 CPU 字节顺序无关可以在不同平台之间交流

bull 容错能力高任何一个字节损坏后最多只会导致一个编码码位损失不会链锁错误 ( 如 GB 码错一个字节就会整行乱码 )

UTF-8 的缺点bull UTF-8 使用可变长度字节储存使计算机程序设计变得复杂 (故此在计算机程序或操作系统内部多采用 UCS-2 编码 )

bull 在旧式的中文日文及朝鲜文编码之中每字符都使用 2 字节储存而 UTF-8 须使用 3 字节 (采用 UTF-16 编码则可只使用 2字节储存 )

bull 泰语以往使用的 ISO 8859-11 每字符只使用 1 字节储存而 UTF-8 须使用 3 字节

UTF-8储存的多字节串字符bull U-00000000 - U-0000007F 0xxxxxxx bull U-00000080 - U-000007FF 110xxxxx 10xxxxxx

bull U-00000800 - U-0000FFFF 1110xxxx 10xxxxxx

10xxxxxx bull U-00010000 - U-001FFFFF 11110xxx 10xxxxx

x 10xxxxxx 10xxxxxx bull 在多字节串中第一个字节的开头ldquo 1rdquo 的数目就

是整个串中字节的数目bull 每个使用 UTF-8储存的字符除了第一个字节外其余字节的头两个位元都是以 10 开始使文字处理器能够较快地找出每个字符的开始位置

UTF-16bull UTF-16 是 UTF 的另一种具体编码方式在 ISO 1064

6-1 的附录 Q 和 IETF 的 RFC 2781 里定义bull UTF-16 是变长码( 2 或 4 字节)大致相当于 20位编码值在 0 到 0x10FFFF 之间基本上就是 Unicode 编码的实现 UTF-16 与 CPU 字序有关但因为最省空间常作为网络传输的外码 UTF-16 是 Unicode 的完美编码

bull lt0x10000 的直接用其对应的 16位整数编码位于 0x10000 ~ 0x10FFFF 之间的用 0xD800~0xDBFF 的 16位整数后跟 0xDC00~0xDFFF 的 16位整数的 4 字节编码 gt 0x10FFFF 的不能用 UTF-16 表示

bull 在 Unicode 的 BMP 中定义的字符(无论是拉丁字母汉字或其他文字或符号)一律使用 2 字节存储而在辅助平面定义的字符则以两个 2 字节的值来存储

UTF-16 的特点bull UTF-16比起 UTF-8 的好处在于大部分字符都以固定长

度的 2 字节存储但 UTF-16却无法相容于 ASCII 编码bull UTF-16 有两种编码模式即大尾序( big Endian 高位字节在前)和小尾序( little Endian 高位字节在后)储存形式(一般來說以 Macintosh 制作和存储的文字使用大尾序格式以 Microsoft 或 Linux 制作和存储的文字使用小尾序格式)

bull 为了弄区分 UTF-16 文件的大小尾序在 UTF-16 文件的开头都会放置一个 U+FEFF 字符作为字节顺序标记 (UTF-16LE 以 FF FE代表 UTF-16BE 以 FE FF代表 ) 以显示该文档是以 UTF-16 编码的

UTF-32

bull UTF-32 仅使用了 Unicode范围 (0 到 0x10FFFF) 的 32位编码相当于 UCS-4 的子集

bull 由于 Unicode 和 ISOIEC 10646 的编码和结构与前面讲过的 GB 13000 类似或等价这里就不再做详细的介绍

5支持bull 现在 UnicodeUCS 已经获得了十分广泛的支

持ndash网络与浏览器(如 HTML 4050 XML 与 IE

Safari Netscape Firefox Chrome Opera Edge 等)

ndash操作系统(如 Windows NT2000XPVista7810 Mac OS X iOS Android和 Linux )

ndash 编程语言新版本(如 CC++JavaObjective-CC Swift 等)

Unicode 代码的浏览器显示代码 字符标准名称 (英语 )

浏览器的显示

amp65 大写拉丁字母 A A

amp223 小写拉丁字母 Sharp S szlig

amp254 小写拉丁字母 Thorn thorn

amp916 大写希腊字母 Delta Δ

amp1049 大写斯拉夫字母 Short I Й

amp1511 希伯来字母 Qof ק

amp1605 阿拉伯字母 Meem م

amp3671 泰文数字 7 ๗amp4688 埃塞俄比亚音节文字 Qha ቐ

amp12354 日语平假名 A あamp12450 日语片假名 A アamp21494 简体汉字 叶 叶amp33865 繁体汉字 葉 葉amp50685 韩国音节文字 Yeob 엽

23 文字输出bull 文字输出是指将计算机内的字符编码通过计算机的输出设备(如显示器打印机喇叭)展现出所对应字符的图形或声音供人们阅读或聆听

bull 本节主要介绍文字图示输出的字形技术bull 文字声音输出属于语音合成只在本节的末尾作简单的介绍

231 字形技术bull 文字 = 图形bull 不论是象形文字中的单字还是拼音文字

中的字母都是用图形来表示的bull 在计算机里文字的表示 输出(显示和打

印)涉及ndash 字型ndash 字体ndash 字库

1字型bull 字型指构造和生成字形的方法一般可分为

ndash 点阵字 DOS 显卡 ROM 金山 科印特点似位图显示快占空间(字库大)放大后有马赛克效应

bull 显示字母 88 汉字 1616bull 打印 2424 4848 6464

ndash 矢量字单线条用于笔式绘图仪特点字库小算法简单难看

ndash 轮廓字用曲线描绘字的轮廓输出效果好所见即所得(WYSWYG) 可无级放大易实现空心 阴影 填充 变形等各种特效功能轮廓曲线一般采用样条曲线如 TrueType (Apple 1991 Mac OS Microsoft 1992 Windows 31)用的是二次 B 样条 Bezier曲线中文之星 RichWin采用的是三次 B 样条 Bezier曲线

字型种类

2字体bull 字体指字的形状风格如

ndash 汉字的

ndash 英文的

宋体楷体黑体仿宋

行楷隶书新魏幼圆

Times New Roman Arial Narrow Courier New

常用汉字字体bull 宋体mdashmdash宋体来自于北宋时雕版刻书所采用的欧体字(唐朝欧阳询体)宋体字的横顿拉捺挑钩别具特色间架平正疏密适中字体秀丽遒劲但笔画横细竖粗适合于刀刻不宜于手写现在宋体广泛用于印刷常来表现文档的正文

bull 仿宋体mdashmdash 1920年钱塘的丁辅之与丁善之等人将明代以后盛行的方廓形字体加以改造创造出长形和方形的聚珍仿宋后来演化为现在的仿宋体仿宋体比较接近于手写体为宋体和楷体的折中是采用的宋体的结构和楷体的笔法而成现常来表现打印文件以及文档的摘要和注释等

bull 黑体mdashmdash黑体是适应工艺美术的发展而出现的一种等线体是从日本引进的黑体的结构与宋体没有什么差别只是其笔画粗细一致健实粗壮主要用于文档的标题和重点及标语广告等方面

bull 楷体mdashmdash楷体源于楷书楷体的笔画圆浑笔调灵活结构端正美观但不宜于木板雕刻所以直到清末西洋的石板印刷术传入后才开始广泛用于印刷现代的楷体创造于 20世纪的二三十年代主要用于文档的正文(多用于中小学教材)也可用于工艺美术等方面

3字库bull 字库为一种文字的某一字体的所有字符的集合一般存放在一个磁盘文件中

bull 由于象形文字中单字的数量大(成千上万)而拼音文字中字母的数量小(不到一百个)所以字库的大小有很大的差别

bull 为了使文档界面丰富多彩常见的字处理软件都支持多种字体带有众多字库

4点阵字型的国家标准bull 我国已经公布了若干字体的点阵字型之国家标准

ndash GB 50071-19852001 信息技术 汉字编码字符集(基本集) 24 点阵字型

ndash GB 50072-19852001 信息技术 汉字编码字符集(辅助集) 24 点阵字型

ndash GB 5199-19862001 信息技术 汉字编码字符集(基本集) 16 点阵字型 宋体

ndash GB 6345-19862001 信息技术 汉字编码字符集(基本集) 32 点阵字型 宋体

ndash GB 12041-2001 信息技术 汉字编码字符集(基本集) 48点阵字型 宋体

ndash GB 17698-1999 信息技术 通用多八位编码字符集( I 区) 汉字 16 点阵字型

232 语音合成bull 文字的声音输出主要使用的是语音合成的技术bull 语音合成功能是ldquo文rarr语rdquo转换bull 文语转换 TTS (Text-To-Speech) 是将文本形式的信息转换成自然语音的一种技术其最终目标是使计算机输出清晰而又自然的声音

bull 英语的语音合成在上世纪 80年代就早已成熟而中文 汉语的合成现在也趋于成熟并有了广泛的应用(如汽车导航仪智能手机等)

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 10: 第一篇  媒体

213 语音输入bull 语音输入是指利用语音内容的识别技术

将人的话音实时转换为对应文字编码并录入计算机

bull 语音输入的核心技术是语音识别技术bull 语音识别技术现在正在发展过程中还

有待于进一步完善

语音识别技术bull 早期的语音识别技术一直很落后到上世纪 70年代中采

用线性预测编码 LPC 和同态信号处理 (homomorphic signal process) 方法技术有了长足的进步但效果不理想到了上世纪 80年代矢量量化 (VQ Vector Quantization) 和隐马尔科夫模型 (HMM Hidden Markov Model) 的成功使用使语音识别在上世纪 90年代达到了商用化程度不过仍然存在问题识别率一直难以进一步提高又进入了相对低潮的相持阶段2011年 10月 14日苹果公司推出的 iPhone 4S 手机支持智能语音指令输入虽然还存在不少问题但是却引发了业界对语音输入研究和应用的新热潮

bull 语音输入的字词识别涉及词库声母分类规则库声母与韵母结合规则库声调知识库这些统称为声学基元模型库句子识别还涉及语义语法句法语用知识库这些统称为语言模型库句子理解则涉及常识库(难)

语音识别的过程图语音输入

darr数据采集

darr波形自动分析

darr预处理 参数特征提取

分帧后的语音特征矢量集合rarrdarr 声学模型 时间对准larr声学基元模型库

darr 语言模型库rarr 组句分析 larr统计信息与规则

语句候选rarrdarr识别语句输出

语音识别系统分类bull 按可识别词汇量可分为

ndash 小词汇量语音识别系统 (lt100)ndash 中词汇量语音识别系统 (100~1000)ndash 大词汇量语音识别系统 (gt1000)

bull 按语音输入方式可分为ndash 孤立词语音识别系统(简单)ndash 连接词语音识别系统(较难)ndash 连续语音语音识别系统(难)

bull 按发言人类型可分为ndash 特定人( 1 人)ndash 限定人( n 人)ndash 非特定人(任意人)

语音识别的目标是开发大词汇量非特定人的连续语音识别系统

214 扫描输入bull 扫描输入是指将图书期刊打印材料和印刷

品中的印刷体文字先通过扫描仪变成计算机中的数字图像然后再利用文字识别软件 OCR 自动转换成对应得文字编码并录入计算机

bull 目前我国研制的多种 OCR 软件的识别率已经达到 95 以上不过受印刷品质量的影响比较大

bull OCR = Optical Character Recognition Reader 光学字符识别 阅读器

bull 计算机识别印刷汉字的核心问题是抓住汉字的字形特征它主要体现在笔画和关键点上

bull 另一个核心问题是版面的分析与理解包括从图文混排版面中自动排除图形部分自动区分横排和竖排自动识别标题和正文对分栏文本实现自动对接等

bull 扫描输入方法除了用于印刷体文字的识别和输入外也可以用于手写体印刷文字的输入其文字识别的方法与印刷体文字类似也与手写实时输入的方法相关不过失去了笔顺信息属于整字识别类型

22 字符编码bull 字符编码包括西文编码中文编码和国际通

用字符编码本节的重点放在常用的编码标准上

bull 221 西文编码( ASCII 等)bull 222 中文编码( GB 2312 GB 13000

GBKGB 18030 )bull 223 国际通用字符编码( Unicode IS

OIEC 10646 )

221 西文编码bull 西文编码主要介绍 ASCII 字符集然后简

单介绍 IBM公司的 EBCDIC 和两种扩展 ASCII 显示字符表

bull 1 ASCII

bull 2 EBCDIC

bull 3扩展 ASCII 显示字符

1 ASCII

bull ASCII ( American Standard Code for Information Interchange 美国信息交换标准码)是 ANSI于 1963年提出 1968年确定的一种英文字符编码标准( ANSI X34-1986 )广泛应用于计算机网络和信息产业

bull ANSI = American National Standards Institute 美国国家标准协会

bull ASCII采用 7位二进制数的(共计 128 个)代码来表示字符(包括图示符和控制符)加上奇偶校验位(或最高位置 0 )则每个字符由 8位(一个字节)组成

ASCII 字符集

0 1 2 3 4 5 6 7

0 NUL DLE SP 0 P ` p

1 SOH DC1 1 A Q a q

2 STX DC2 ldquo 2 B R b r

3 ETX DC3 3 C S c s

4 EOT DC4 $ 4 D T d t

5 ENQ NAK 5 E U e u

6 ACK SYN amp 6 F V f v

7 BEL ETB lsquo 7 G W g w

8 BS CAN ( 8 H X h x

9 HT EM ) 9 I Y i y

A LF SUB J Z j z

B VT ESC + K [ k

C FF FS lt L l |

D CR GS - = M ] m

E SO RS gt N ^ n ~

F SI US O _ o DEL

bull ASCII 字符集以 32 个字符为一组bull 第一组( 0x00~0x1F )为控制符

(非打印符)用于数据处理 通信系统及其相应设备中的信息交换

bull 后面的除了第一个字符( SP空格符 0x20 )和最后一个字符( DEL删除符 0x7F )外全都是可打印(显示)的图示符包括ndash 第二组( 0x20 ~0x6F )的数字空格

和常用标点符号ndash 第三组( 0x40~0x5F )的大写拉丁字

母(即英文字母)与少数标点符号ndash 第四组( 0x60~0x7F )的小写拉丁字

母与少数标点符号

ASCII 的国际标准bull 1972年美国的国家标准 ASCII 与其若干拉丁语系国家的变体一起成为国际标准 ISO 6461972 ( Information processing -- ISO 7-bit coded character set for information interchange 信息处理mdashmdash ISO 用于信息交换的七位编码字符集)

bull 这些变体主要是将 ASCII 字符集中不常用的符号ldquo $ [ ] ^ ` | ~rdquo替换为他们各自语言的重音符号

bull 1987年 ISO 646 中的 ASCII部分成为 646 的国际参考版( IRV = International Reference Version ) ISO 646IRV1987 但是其中的美元符 $被替换为国际通用货币符 curren

bull 1991年推出的修订版 ISOIEC 646IRV1991 还原成原始的美国 ASCII 所以又被称为 ISO 646-US 或 US-ASCII

替代标准bull 由于 ISO 646 中各国的变体存在明显的兼容和统一问题现在已经作废

bull 有关编码已经被新的国际标准 ISOIEC 8859-1~16 19871998 ( Information processingtechnology -- 8-bit single-byte coded graphic character sets 信息处理 技术mdashmdash 8位单字节编码的图形字符集)所替代

bull 后来 ISO 646 与 ISOIEC 8859 标准又都被纳入 ISOIEC 1064619932003 ( Information technology -- Universal Multiple-Octet Coded Character Set (UCS) 信息技术mdashmdash通用多八位编码字符集 (UCS) )标准之中

bull 其中的标准编号 ISO 10646 = ISO 646 + 10000

标准化组织bull ANSI = American National Standards Institute 美

国国家标准协会bull ISO = International Organization for Standardization

国际标准化组织是由 153 个国家的国家标准协会联合组成的一个非政府国际组织总部(中央秘书处)设在瑞士的日内瓦负责制定适应商业和广泛社会需要的各种国际标准网址为 httpwwwisoorg

bull IEC = International Electrotechnical Commission 国际电工技术委员会是一个成立于 1906年 6月的国际标准化权威组织属于联合国的甲级咨询机构负责制定关于电工电子各方面的标准有 42 个会员国总部也设在瑞士的日内瓦网址为httpwwwiecch我国于 1958年 8月参加

2 EBCDIC

bull 西文的字符编码方案除了通用的 ASCII外还有 IBM公司于 1960年代初提出的 EBCDIC ( Extended Binary-Coded Decimal Interchange Code扩充的二进制编码的十进制交换码)

bull EBCDIC 现在仍然(仅)在 IBM 的 OS390 与 TPF 以及富士通 - 西门子的 BS2000OSD 等大型机的操作系统中使用

bull EBCDIC 是一种八位编码其字符的编码方案与ASCII 的完全不同

EBCDIC 字符集 0 1 2 3 4 5 6 7 8 9 A B C D E F

0 NUL DLE DS SP amp - 0

1 SOH DC1 SOS a j ~ A J 1

2 STX DC2 FS SYN b k s B K S 2

3 ETX TM c l t C L T 3

4 PF RES BYP PN d m u D M U 4

5 HT NL LF RS e n v E N V 5

6 LC BS ETB UC f o w F O W 6

7 DEL IL ESC EOT g p x G P X 7

8 GE CAN h q y H Q Y 8

9 RLF EM ` i r z I R Z 9

A SMM CC SM cent | |

B VT CU1 CU2 CU3 $

C FF IFS DC4 gt

D CR IGS ENQ NAK ( ) _ lsquo

E SO IRS ACK + lt =

F SI IUS BEL SUB | ldquo EO

3扩展 ASCII 显示字符bull ( 1 ) IBM PC

ndash IBM PC 的扩展 ASCII 显示字符由 IBM公司为其 PC 机制定可以由原始的 IBM PC 显示器在 DOS状态下显示

bull ( 2 ) Microsoft Windows ndash Microsoft Windows 的扩展 ASCII 显示字符由

微软公司为其Windows操作系统制定可以在Windows环境的西文状态下被显示

IBM PC 的扩展 ASCII 显示字符表

Microsoft Windows 的扩展 ASCII 显示字符表

222 中文编码bull 1 GB 1988 与 GB 2311

bull 2 GB 2312

bull 3汉字编码的辅助集bull 4 Big5

bull 5少数民族文字编码bull 6 GB 13000

bull 7 GBK 与 GB 18030

汉字编码bull 为了计算机处理汉字必须先对汉字进行编码由于汉

字数量大(《康熙字典》收字 47 035 个《汉语大字典》收字 54 678 个据统计在形成楷体后出现的汉字约有 9万个左右)显然不能像 ASCII那样用 7位或单字节来进行编码至少需要两个字节(最多可表示 6万5千多个字符)

bull 1980年我国制定了著名的 GB 2312-80双字节汉字编码标准(其中 GB 为ldquo国标rdquo这两个汉字的拼音首字母)收汉字 6 763 个

bull 1993年底又推出了等同于国际通用字符编码标准 ISOIEC 106461-1993 的国家标准 GB 130001-93 收汉字 20 902 个

bull 由于 GB 13000 与 GB 2312 的编码不兼容作为过渡2000年又公布了 GB 18030-2000 ( GBK )收汉字2万 7千个

1 GB 1988 与 GB 2311

bull 为了能够同时表示和处理汉字和英文实现中外文混排汉字编码必须兼容通用的 ASCII 编码因此1980年我国制定了与国际标准 ISO 6461972 (即ASCII )对应的国家标准 GB 1988-80《信息处理交换用的七位编码字符集》

bull 汉字成千上万不可能像 ASCII 一样只用单字节的七位来表示必须扩展到八位和多字节但是不能随意扩充而应该符合国际规范因此我国于 1980年又制定了与七位代码扩充到八位编码的国际标准 ISO 2022兼容的国家标准 GB 2311-80《信息处理交换用七位编码字符集的扩充办法》

GB 1988-80 ( ASCII )的代码结构图

行 0 1 2 3 4 5 6 7

0 SP

1 helliphellip

15

16

32个

控制符

94个

图形字符

DEL

GB 2311-80 的八位编码结构图列

行 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0 SP 100

1

helliphellip

14

15

C0

32个

控制符

GL

94或 96个

图形字符

DEL

C1

32个

控制符

GR

94或 96个

图形字符

1515

2 GB 2312

bull GB 2312-80《信息交换用汉字编码字符集 middot基本集》是我国制定的一个使用最广泛的汉字编码的强制性国家标准由原第四机械工业部的华北计算机研究所(后改名为电子工业部第十五研究所)起草1980年批准 1981年 5月 1日起实施

bull GB 2312-80 是在已有的国家标准 GB 1988-80(对应于 ISO 646 )和 GB 2311-80 (对应于 ISO 2022 )的基础上制定的采用与 ISO 2022兼容的GB 2311 之 7位到八位的代码扩充办法用双字节编码表示汉字与 ASCII兼容

收录的字符bull GB 2312 对应的是汉字的基本集共收汉字 6 763 个

可达到 9999 的使用频率因此除了极少数生僻的人名地名和古文外 GB 2312 中的汉字已经能基本满足平时的使用了

bull 除了汉字外 GB 2312 还收录了 682 个非汉字图形符号包括 202 个一般符号(含间隔符标点运算符和制表符) 60 个序号符 22 个数字符 52 个英文字母 169 个日文假名 48 个希腊字母 66 个俄文字母 26 个汉语拼音符号和 37 个汉语注音字母

bull 所以在 GB 2312-80 标准中共收录了( 6 763 汉字 + 682 非汉字图符 = ) 7 445 图形字符

两级汉字bull GB 2312 将其收录的六千多个汉字分成两个级别bull 一级汉字有 3 755 个都为使用频率高的常用汉

字为便于检索像字典那样将这些汉字按拼音字母顺序排列(同音字再按笔顺的横竖撇捺点折序排列)

bull 二级汉字有 3 008 个大部分较生僻不易掌握读音所以按部首顺序排列(同部首的字按笔画数排列同笔画数的字再按笔顺排列)

编码方案bull GB 2312 对所有图形字符(包括汉字和非汉字图符)都采用两个字节表示每个字节的低七位用于编码最高位全为 1 这样可以兼容 ASCII 编码(字节的最高位全为 0 )

bull 虽然在一个字节中最高位为 1 的符号位置有 128 个但从前面 GB 2311 的分析可知为了与 ASCII 的代码结构兼容保留了( 32 + 2 = ) 34 个控制符位置最后只有( 128 ndash 34 = ) 94 个符号位可供图形字符编码使用

bull 图形字符在代码表中的位置用区位码表示将码表分成94 个区对应于编码的第一个字节取值 0x21~0x7E 每个区又分成 94 个位对应于编码的第二个字节取值 0x21~0x7E (参见表 2-6 )

bull 例如ldquo中山大学rdquo的编码为中 (0xD6D0) 山 (0xC9BD) 大 (0xB4F3) 学 (0xD1A7)

GB 2312-80 字符集结构 20 21 22 helliphellip 7D 7E 7F

位号

区号

1 2 helliphellip 93 94

20

21~29 1~9 非汉字图符(682个)

2A~2F 10~15 空白区

30~57 16~55 一级汉字(3 755个)

58~77 56~87 二级汉字(3 008个)

78~7E 88~94 空白区

7F

第 1 区的部分非汉字图符

1区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 middot ˉ ˇ uml 々 mdash ~ hellip lsquo rsquo ldquo

17~32 rdquo 〔 〕 〈 〉 《 》 「 」 『 』 〖 〗 【 】 plusmn

33~48 times divide ∶ and or sum prod cup cap isin ∷ radic perp ∥ ang

49~64 ⊙ int ∮ equiv ≌ asymp ∽ prop ne ltu gtu le ge infin ∵ there4

65~80 deg prime Prime $ curren ¢ £ permil sect

81~94 rarr larr uarr darr

第 16 区的部分一级汉字

16区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 啊 阿 埃 挨 哎 唉 哀 皑 癌 蔼 矮 艾 碍 爱 隘 鞍

17~32 氨 安 俺 按 暗 岸 胺 案 肮 昂 盎 凹 敖 熬 翱 袄

33~48 傲 奥 懊 澳 芭 捌 扒 叭 吧 笆 八 疤 巴 拔 跋 靶

49~64 把 耙 坝 霸 罢 爸 白 柏 百 摆 佰 败 拜 稗 斑 班

65~80 搬 扳 般 颁 板 版 扮 拌 伴 瓣 半 办 绊 邦 帮 梆

81~94 榜 膀 绑 棒 磅 蚌 镑 傍 谤 苞 胞 包 褒 剥

第 56 区的部分二级汉字

56区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 亍 丌 兀 丐 廿 卅 丕 亘 丞 鬲 孬 噩 丨 禺 丿 匕

17~32 乇 夭 爻 卮 氐 囟 胤 馗 毓 睾 鼗 丶 亟 鼐 乜 乩

33~48 亓 芈 孛 啬 嘏 仄 厍 厝 厣 厥 厮 靥 赝 匚 叵 匦

49~64 匮 匾 赜 卦 卣 刂 刈 刎 刭 刳 刿 剀 剌 剞 剡 剜

65~80 蒯 剽 劂 劁 劐 劓 冂 罔 亻 仃 仉 仂 仨 仡 仫 仞

81~94 伛 仳 伢 佤 仵 伥 伧 伉 伫 佞 佧 攸 佚 佝

3汉字编码的辅助集bull 除了GB 2312基本集的 6 763 个简体汉字外国家标

准还给出了汉字编码字符集的多个辅助集bull 第二 四辅助集分别增加了 7 237 7 039 个简体汉字bull 第一和三 五辅助集则分别是与基本集和第二 四辅助集所对应的繁体汉字字符集的国家标准

bull 基本集加上辅助集共有 21 039 个简体汉字和 21 142个繁体汉字

bull 繁体汉字之所以多一些是因为在第一辅助集中有时几个繁体字对应一个简体字因此比基本集多出 103 个汉字

bull 基本集和辅助集的代码页之间靠其编码字节的最高位来区分

编码字符的分页标志

双字节汉字编码的页面结构第二字节 列号

行号 0 middot middot middot 32 33 34 helliphellip 125 126 127 128middot middot 160 161 162 helliphellip 254 255 0 middot middot 32

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

33 34 middot middot middot 126

1 2 middot middot middot 94

第四五辅助集 (7 039个汉字)

127

(兼容ASCII)

128 middot middot 160

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

161 162 middot middot middot 254

1 2 middot middot middot 94

第二三辅助集 (7 237个汉字)

1 2 middot middot middot 94

基本集第一辅助集 (6 763 6 866个汉字) (682个非汉字图符)

第一字节

255

4 Big5

bull 除了中国大陆使用的简体汉字外在台湾香港澳门和海外华侨社区使用的是传统的繁体汉字

bull 简体汉字使用 GB (国标)系列编码标准bull 繁体汉字一般使用的是 Big5内码(大五码)即台湾的ldquo资讯工业策进会rdquo发布的《标准交换码 (Ⅲ码 )》收录汉字 13 053 个

bull Big5内码是 1984年由台湾财团法人资讯工业策进会与宏碁 (Acer) 神通 (MiTAC) 佳佳零壹 (Zero One) 大众 (FIC) 等五大软件公司联合推出故称为大五码

BIG5 的代码空间低位字节

00 hellip 3F 40 hellip 7E 7F hellip A0 A1 hellip FE FF

高位字节

00middot

80

81middot

A0用户定义区 用户定义区

A1A2A3

非汉字图符 非汉字图符

A4middot

C6常用汉字 常用汉字

C7C8

用户定义区 用户定义区

C9middot

F9次常用汉字 次常用汉字

FAmiddot

FE用户定义区 用户定义区

FF

5少数民族文字编码bull 中国共有 56 个民族除了汉回满族一般使用汉语外其他少数民族大多有自己的民族语言

bull 我国各民族使用的 50 多种文字可以分为字母式结构文字和非字母式结构文字两大类ndash 字母式结构的有拉丁文斯拉夫文蒙古文维吾尔文哈萨克文藏文和朝鲜文等字母式

ndash 非字母式结构的有汉字象形文字图画文字和音节文字等bull 各民族文字的书写方向也有不同

ndash 壮文藏文朝鲜文彝文等的字从左到右行从上到下ndash 维吾尔文哈萨克文和柯尔克孜文等的字从右到左行从上

到下ndash 蒙古文和满文的字从上到下行从左到右ndash 汉字的书写方向有两种

bull 大陆的简体汉字的字从左到右行从上到下bull 港台与古旧书的繁体汉字的字从上到下行从右到左

国家标准bull 下面按发布时间列出若干已经公布的我国少数民族文字

编码集的国家标准(这些字符集一般分成两类对字母式结构文字采用八位编码对非字母式结构文字采用双字节编码)ndash GB 8045-87《信息处理交换用蒙古文七位和八位编码图形字

符集》收 82 个蒙古文字母和 12 个其他符号共 94 个字符ndash GB 12050-89《信息处理交换用维吾尔文编码图形字符集》收 32 个维吾尔文字母一个维吾尔文复合字符和 37 个其他符号共 70 个字符

ndash GB 12052-89《信息交换用朝鲜文编码字符集》收 5297 个朝鲜文字和 682 个其他符号(与 GB 2132同)共 5 979 个字符

ndash GB 13134-91《信息交换用彝文编码字符集》收 1165 个彝文字符和 688 个其他符号共 1853 个字符

ndash GB 16959-1997《信息技术 信息交换用藏文编码字符集 基本集》收 41 个藏文字母 36 个藏文主字 13 个元音字符12 个语音字符 10 个藏文数字 10 个半值符一个控制用连接符和 46 个其他藏文图形符号共 169 个字符

6 GB 13000bull GB 13000 是与 ISOIEC 10646 等价的国际通用编码字符集标准收汉字 2万多个但是与 GB 2312 和 GBK 不兼容

bull 1993年 5月 ISO 与 IEC 联合推出了可用于世界各种文字的通用编码字符集的国际标准的第 1部分ndash ISOIEC 10646-11993 Information technology -- Universal Multiple-Octe

t Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane (信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

ndash 该标准收字符 96万个几乎涵盖世界上的所有文字其中包含汉字 21 003 个

bull 1993年底我国推出了等同于国际标准 ISOIEC 1064611993 的强制性国家标准 ndash GB 130001-93《信息技术 通用多八位编码字符集( UCS ) 第一部分

体系结构与基本多文种平面》ndash 该标准于 1993年 12月 24日被国家技术监督局批准 1994年 8月 1日起实施

GB 13000 的主要特点

bull 世界各语言文种字符统一编码避免冲突便于国际交流

bull 编码空间宽阔连续每个图形字符的编码唯一(一字一码)不再存在兼容性问题

bull 按文种而不是按语言编码避免重复和浪费(如中日韩汉字的统一编码 CJK )

bull 与 GB 2312 和 GBK 不兼容

体系结构bull UCS 的体系结构是基于所谓ldquo多八位rdquo的而ldquo八位rdquo就是一个字节ldquo多八位rdquo就是多个字节

bull UCS采用 4 个字节来表征组面行位的四维空间bull 整个 UCS空间包含 128 个组( 0x00组 ~0x7F组)每组有 256 个平面( 0x00 平面 ~0xFF 平面)每个平面有 256 行每行又由 256 个字位构成

bull UCS共有( 128 times 256 = ) 32 768 个平面每个平面有( 256 times 256 = ) 65 536 个字位每个字位对应于一个字符的编码

bull 目前的编码只限于 00组已经定义的平面有 00组的00 平面mdashmdash称之为基本多文种平面 BMP ( Basic Multilingual Plane ) 及若干辅助平面

UCS 的全部编码空间

每个平面256times256 个

字位

00组 00 平面

00组 FF 平面

01组 00 平面

7F组 00 平面00

01组

7F组

UCS 的 00组

BMPbull BMP = Basic Multilingual Plane 基本多文种平面bull BMP 用作双八位编码字符集称之为 UCS-2 它被

分成四个区ndash A- 区(字位 0x0000~0x4DFF 有 19 903 个字位)用于

字母文字音节文字以及各种符号ndash I- 区(字位 0x4E00~0x9FFF 共 20 992 个字位)用于中日韩统一汉字( CJK )

ndash O- 区(字位 0xA000~0xDFFF 共 16 384 个字位)保留未来标准化用

ndash R- 区(字位 0xE000~0xFFFD 共 8 190 个字位)为 BMP 的限制使用区包括专用字符变形显现形式及兼容字符

BMP总貌

A-区

00~33 拼音文字(见下页)

34~3D 朝鲜文

3E~44 朝鲜文补充 -A

45~4D 朝鲜文补充 -B

I-区 4E~9F CJK统一汉字O-区 A0~DF

R-区

E0~F8 专用区

F9~FA CJK兼容汉字FB 拼音文字变形显现形式

FC~FD 阿拉伯文变形显现形式 -A

FE半形组合用标志

CJK兼容形式

小写变体

阿拉伯文变形显现形式 -B

FF 半形及全形字符 特殊字符

BMP 的0x00~0x33

行字母文字区

00 基本拉丁文 拉丁文-1补充

01 拉丁文扩充-A 拉丁文扩充-B

02 拉丁文扩充-B 国际音标扩充 进格修饰字符

03 组合用发音符 基本希腊文 希腊符号及哥普特文

04 西里尔文

05 美亚尼亚文 希伯来文(基本和扩充)

06 基本阿拉伯文 阿拉伯文扩充

07

08

09 梵文 孟加拉文

0A 锡克教文 古吉拉特文

0B 奥利雅文 泰米尔文

0C 泰卢固文 卡纳达文

0D 德拉维族文

0E 泰文 老挝文

0F

10 格鲁吉亚文

11 朝鲜文字母

12~1D

1E 拉丁文扩充增补

1F 希腊文扩充

20 广义标点 上下标 货币符号 符号组合用区分标志

21 类似字母的符号 数字形式 箭头

22 数学运算符

23 零杂技术用符号

24 控制图符 光学识别符 带括号的字母数字

25 制表符 方块元素 几何图形符

26 零杂符号

27 示意符等

28~2F

30 CJK符号和标点 平假名 片假名

31 注音 朝鲜文兼容字母 CJK零杂字符

32 带括号的CJK字母及月份

33 CJK兼容字符

留作将来标准化用

非图形字符

表示形式bull GB 13000提供了字符编码表示的两种替代使用的形式

ndash 双八位 BMP 形式( UCS-2 )mdashmdash允许使用 BMP 中的字符且每个字符用两个字节表示

ndash 肆八位正则形式( UCS-4 )mdashmdash允许使用 GB 13000 中的全部字符且每个字符用四个字节表示

bull 除了 UCS-24外还有另外两种变形的表示形式ndash UTF-8 (单字节 ~ 多字节)ndash UTF-16 (双字节和 4 字节与 UCS-2 等价)ndash 目前在工业上的实现均为 UTF-16 ( UCS-2 )和 UTF-8ndash UTF = Unicode UCS Transformation Format 统一码 UC

S转换格式bull 关于统一码我们会在下一小节详细介绍

7 GBK 与 GB 18030bull 由于 GB 13000 标准与 GB 2312 标准的字符编码不兼容作为过渡在国家信息技术标准化委员会的主持下制定了与 GB 2312兼容的《汉字内码扩展规范( GBK )》( K 为扩展的ldquo扩rdquo字的拼音首字母)并于 1995年 12月 15日由原国家技术监督局标准司联合原电子工业部科技与质量监督司作为指导性技术规范发布实施

bull 2000年 GBK又被国家标准 GB 18030-2000《信息技术 信息交换用汉字编码字符集 基本集的扩充》所代替该标准收汉字 2万 7千个

bull 与 GB 2312 一样 GB 18030 也为中国的强制性国家标准微软公司的 Windows XPVista78 中文版与苹果公司的 Mac OS X 和 iOS 谷歌公司的 Android (安卓)等操作系统已经全面支持 GBK

GB 18030 的码位范围分布

字节数 码位空间 码位数目

单字节 0x00~0x7F 128

双字节第 1字节 第 2字节

23 9400x81~0xFE

0x40~0x7E 0x80~0xFE

四字节第 1字节 第 2字节 第 3字节 第 4字节

1 587 6000x81~0xFE 0x30~0x39 0x81~0xFE 0x30~0x39

GB 18030的

总体结构图

收录字符bull 单字节部分mdashmdash收录了GBT 11383 的 0x00~0x7F 全部 128 个字符(似 ASCI

I )bull 双字节部分mdashmdash收录内容如下 (21 003 个汉字和 884 个符号共 21 887 个字符 )

ndash GB 130001-93 的全部 CJK 统一汉字字符 20 902 个( GB 2312 的编码汉字在双字节 2 区其他 CJK 统一汉字在双字节 34 区)

ndash GB 130001-93 的 CJK兼容区挑选出来的 21 个汉字ldquo郎凉秊helliphellip﨨﨩rdquo( 0xFD9C~0xFDA0 和 0xFE40~0xFE4F )

ndash GB 130001-93 中收录而 GB 2312未收录的台湾地区使用的图形字符 139 个ldquoˊˋ˙helliphelliprdquo( 0xA840~0xA895 和 0xA940~0XA988 )

ndash GB 130001-93收录的其他字符 31 ( 13)个(在双字节 5 区)ndash GB 2312-80 中的非汉字字符 682 个( 0xA1A1~0xA9EF )ndash GB 12345-90 的竖排标点符号 19 ( 29)个ldquo︵︶︹helliphellip︳︴rdquo( 0xA6D9~0xA6

F5 )ndash GB 2312-80未收录的 10 个小写罗马数字ldquoⅰⅱⅲhelliphellipⅸⅹrdquo( 0xA2A1~ 0xA2A

A )ndash GB 2312-80未收录的带音调的汉语拼音字母 5 ( 4)个ldquo ńňǹrdquo 以及 ɑ 和 ɡ ( 0

xA8BB~0xA8C0 )ndash 汉字数字零ldquo〇rdquo (0xA996) 和欧元符ldquoeurordquo (0xA2E3)ndash 表意文字描述符 13 个ldquohelliphelliprdquo( 0xA989~0xA995 )ndash 对 GB 130001-93增补的汉字和部首 构件 80 个ldquohelliphellip䶮rdquo( 0xFE50~ 0x

FEA0 )bull 四字节部分mdashmdash收录了上述双字节字符之外的包括 CJK 统一汉字扩充 A 在内

的 GB 130001-93 中的全部字符

GB 18030双字节部分的码位安排

类别 区名 码位范围 码位数 字符数 内容

符号区双字节 1区 A1A1~A9FE 846 718

GB 2312非汉字字符等

双字节 5区 A840~A9A0 192 166 台湾图符等

汉字区双字节 2区 B0A1~F7FE 6768 6763 GB 2312汉字双字节 3区 8140~A0FE 6080 6080 CJK统一汉字双字节 4区 AA40~FEA0 8160 8160 CJK统一汉字等

用户自定义区双字节用户区 1 AAA1~AFFE 564

用户自定义字符双字节用户区 2 F8A1~FEFE 658

双字节用户区 3 A140~A7A0 672

GB 18030双字节部分的编码空间结构图 尾字节

0x40larr――rarr0x7E 0x80larr――rarr0xA0 0xA1larr――――――――――――rarr0xFE

0x81 uarr darr

0xA0

0xA1 uarr darr

0xA7

0xA8 0xA9

首字节

0xAA uarr | | | | | | | | | | darr

0xFE

双字节 3区

汉字区6 080个码位

双字节用户区 3

用户自定义区672个码位

双字节 5区 图形符号区192个码位

双字节 4区

汉字区8 160个码位

双字节 1区

图形符号区564个码位

双字节 2区

汉字区6 768个码位

双字节用户区 1 用户自定义区564个码位

双字节用户区 2 用户自定义区658个码位

223 国际通用字符编码

bull Unicode (统一码)是由多语言软件制造商组成的统一码协会( httpwwwUnicodeorg)所制定一种国际字符的编码标准

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull 本节主要介绍这两种关系密切的主流国际字符编码标准的来历编码方案各自特点与相互关系

1 Unicode 统一码bull 发展历史

ndash 1987年施乐( Xerox )公司的 Joe Becker 与 Lee Collins 和苹果( Apple )公司的 Mark Davis 等人开始讨论统一编码 1987年 12月 Joe Becker造词 Unicode (统一码)含义为ldquo unique universal and uniform character encodingrdquo (单一通用统一的字符编码) 1989年 2月开始定期召开统一码会议 1989年 9月公布 Unicode草案

ndash 1991年 1月 3 日由 Xerox Apple Sun IBM Aldis Microsoft 等公司出资在美国加州成立了统一码协会( Unicode Consortium )并由协会设立非盈利性的统一码公司( Unicode Inc )后来 HP Adobe Borland Digital Lotus Novell 等公司也纷纷加入 1991年 1月成立统一码技术委员会 UTC 并制定了其规程

ndash 1991年 2月在 Ed Hart 的推动下进行了ldquo统一码对 10464 国际标准草案 1rdquo 的对话Unicode 与 ISOIEC 10646开始走向融合

ndash 1991年 8月发布 Unicode 标准 10版的第 1卷(体系结构非表意字符) 1992年6月发表 Unicode 10版的第 2卷(表意字符) 1993年 6月发布 Unicode 11版与 1993年 5月公布的 ISOIEC 10646-11993 实现了合并

ndash 1996年 7月发布 Unicode 20版ndash 1999年 9月发布 Unicode 30版ndash 2003年 4月发布 Unicode 40版(对应于 ISOIEC 106462003 ) 2004年 3月 31日发布 Unicode 401版 2005年 3月 31日发布 Unicode 410版

ndash 2006年 7月 14日发布 Unicode 50版 2008年 4月 4日发布 Unicode 51版 2009年 12月 22日发布 Unicode 52版

ndash 2010年 10月发布 Unicode 60版 2012年 1月发布 Unicode 61版(对应于 ISOIEC 106462012 ) 2012年 9月推出 Unicode 62版 2013年 9月推出 Unicode 63版

ndash 2014年 6月 16日发布 Unicode 70版 ndash 2015年 6月 17日发布 Unicode 80版

字符集bull Unicode 字符集的空间分成双字节的基本多语言平面 (Basic Multilingual Pla

ne BMP) 和 4 字节的辅助多语言平面 (Supplementary Multilingual Plane SMP) 两种

bull BMPndash Unicode 的基本平面或基本多语言平面 BMP 对应于 ISOIEC 10646-1 的第 00组的 00 平面( BMP )即 Unicode 与 ISOIEC 10646 的 BMP 中的字符编码完全一致

bull SMPndash 鉴于 Unicode 原有的 16位元空间不足以应用从 Unicode 31版本开始设立了 16 个辅助平面使 Unicode 的可使用空间由六万多字增至约一百万字

ndash 原有的 Unicode双字节空间称为基本平面或基本多语言平面 BMP 辅助多语言平面 SMP 字符要用 4 字节来储存

ndash 第一辅助平面摆放拼音文字(主要为现时已不再使用的文字)及符号范围在 U+10000 - U+1FFFD

ndash 第二辅助平面又称为表意文字补充平面 (Supplementary Ideographic Plane 简称 SIP) 现时摆放ldquo中日韩统汉字扩展 B 区rdquo共 43253 个汉字范围在 U+20000 - U+2FFFD

ndash 第三至十三辅助平面尚未使用ndash 第十四辅助平面又称为特殊用途补充平面 (Supplementary Special-purpose Pl

ane 简称 SSP) 摆放 Language tags 和 Variation Selectors 它们都是控制字符范围在 U+E0000 - U+E01FF

ndash 第十五至十六辅助平面都是私人使用区它们的范围是 U+F0000 - U+FFFFD 及 U+100000 - U+1000FD

bull Unicode 字符集的具体编码方式参加第 4小节ldquo 4 UTFrdquo

2 ISOIEC 10646

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull ISOIEC 10646 标准由 ISO 与 IEC 联合成立的 ISOIEC JTC1SC2WG2 制定ndash JTC 1 ( Joint Technical Committee 1 on Information

technology ISOIEC信息技术联合技术委员会 1 )负责信息技术方面标准的制定工作

ndash SC 2 ( SubCommittee 2 on Coded character sets 编码字符集分会 2 )下的 WG 2 ( Working Group 2 on Universal coded character set 通用编码字符集工作组 2 )负责制定国际通用字符编码标准即后来公布的 ISOIEC 10646

发展历史bull 1984年 ISO 的一些会员国发起制定新的国际字符编码标准同年 4月 ISO

与 IEC 联合成立 ISOIEC JTC1SC2WG2 1987年 3月制定出编码架构1992年 6月投票通过第二版国际标准草案

bull 1993年 5月推出 10646 标准时将内容分成两个部分标准首先发布的是其中的第 1 个部分(体系结构与基本多文种平面)的第 1版( Edition 1 ) ISOIEC 10646-11993 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane(信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

bull 2000年 3月推出 10646 标准第一个部分的第 2版( Edition 2 ) ISOIEC 10646-12000 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane

bull 2001年 10月推出 10646 标准第 2版的第二个部分(辅助平面)的第 1版( Edition 1 ) ISOIEC 10646-22001 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 2 Supplementary Planes

bull 2003年 10月推出的 10646新标准(第 1版 Edition 1 )将老标准中的两个部分标准合并成了一个单一的标准 ISOIEC 106462003 Information technology -- Universal Multiple- Octet Coded Character Set (UCS) 后来又于 2010年 2012年和 2014年分别推出了 ISOIEC 106462010 (第 2版)ISOIEC 106462012 (第 3版)和 ISOIEC 106462014 (第 4版)

UCS 通用字符集bull 通用字符集( Universal Character Set UCS )是

ISOIEC 10646 标准所定义的字符编码方式采用 4字节编码又称为 Universal Multiple-Octet Coded Character Set (通用多八位编码字符集)

bull 通用字符集是所有包括了其他字符集它保证了与其他字符集的双向兼容即如果你将任何文本字符串翻译到 UCS 格式然后再翻译回原编码你不会丢失任何信息

bull UCS 包含了已知语言的所有字符除了拉丁语希腊语斯拉夫语希伯来语阿拉伯语亚美尼亚语格鲁吉亚语还包括中文日文韩文这样的象形文字 UCS 还包括大量的图形印刷数学科学符号

名字与组合字符bull UCS 不仅给每个字符分配一个代码而且赋予了

一个正式的名字表示一个 UCS 或 Unicode值的十六进制数通常在前面加上ldquo U+rdquo 例如ldquo U+0041rdquo代表字符ldquo Ardquo

bull UCS里有些编码点分配给了组合字符组合字符机制允许在任何字符后加上重音符或其他指示标记 这在科学符号中特别有用 比如数学方程式和国际音标字母 可能会需要在一个基本字符后组合上一个或多个指示标记

实现级别bull 并不是所有的系统都需要支持像组合字符这样的的先进

机制因此 ISO 10646 指定了如下三种实现级别ndash 级别 1不支持组合字符和韩语 Hangul Jamo 字符 ( 一种特

别的 更加复杂的韩国文的编码 使用两个或三个子字符来编码一个韩文音节 )

ndash 级别 2类似于级别 1 但在某些文字中允许一列固定的组合字符 (例如 希伯来文 阿拉伯文 Devangari 孟加拉语 果鲁穆奇语 Gujarati Oriya 泰米尔语 Telugo 印 埃纳德语 Malayalam 泰国语和老挝语 ) 因为如果没有最起码的几个组合字符 UCS就不能完整地表达这些语言

ndash 级别 3支持所有的 UCS 字符如可以在任意一个字符上加上一个箭头或 和一个 tilde(颚化符号即字母上面的~ )

编码方式bull UCS 有如下两种编码方式

ndash UCS-2与 Unicode 的 2 字节编码基本一样ndash UCS-4 4 字节编码目前是在 UCS-2 前加

上 2 个全零的字节bull UCS 还有 UTF 编码方式参见下面第 4小节ldquo 4 UTFrdquo

3 Unicode 与 ISOIEC 10646bull 关系

ndash 历史上存在两个独立的尝试创立单一字符集的组织即国际标准化组织( ISO )和多语言软件制造商组成的统一码协会组织( Unicodeorg )前者开发的 ISO 10646项目后者开发的 Unicode项目因此最初制定了不同的标准

ndash 1991年前后两个项目的参与者都认识到世界不需要两个不兼容的字符集于是它们开始合并双方的工作成果并为创立一个单一编码表而协同工作

ndash 从 Unicode20开始 Unicode采用了与 ISO 10646-1相同的字库和字码 ISO 也承诺 ISO10646 将不会替超出 U+10FFFF 的 UCS-4 编码赋值以使得两者保持一致

ndash 两个项目仍都存在并独立地公布各自的标准但 Unicode协会和 ISOIEC JTC1SC2 都同意保持两者标准的码表兼容并紧密地共同调整任何未来的扩展

异同bull Unicode协会公布的 Unicode 标准包含了 ISO 10646-1 实现级别

3 的基本多文种平面在两个标准里所有的字符都在相同的位置并且有相同的名字

bull ISO 10646 标准就像 ISO 8859 标准一样只不过是一个简单的字符集表它定义了一些编码的别名指定了一些与标准有关的术语并包括了规范说明指定了怎样使用 UCS连接其他 ISO 标准的实现等

bull Unicode 标准额外定义了许多与字符有关的语义符号学并详细说明了绘制某些语言(如阿拉伯语)表达形式的算法处理双向文字(比如拉丁文和希伯来文的混合文字)的算法排序与字符串比较所需的算法等等

bull 考虑到 Unicode 标准有一个易记的名字既便宜又包括更多的辅助信息因而它使用得更广泛然而

bull 一般认为用于打印 ISO 10646-1 标准的字体在某些方面的质量要高于用于打印 Unicode 20 的专业字体设计者总是被建议说要两个标准都实现但一些提供的样例字形有显著的区别 ISO 10646-1 标准同样使用四种不同的风格变体来显示表意文字如中文日文和韩文 (CJK) 而 Unicode 20 的表里只有中文的变体

4 UTFbull Unicode 和 UCS 都是一个字符集可以看作为内码bull UTF ( UnicodeUCS Transformation Format 统一码

通用字符集转换格式)是一种编码方式它的出现是因为 Unicode 和 UCS 不适宜在某些场合直接传输和处理

bull UCS 和 Unicode 只是分配整数给字符的编码表现在存在好几种将一串字符表示为一串字节的方法(如高或低位字节在前)

bull 最显而易见的两种方法是将 UCS 和 Unicode 文本存储为 2 个 或 4 个字节序列的串这两种方法的正式名称分别为 UCS-2 和 UCS-4

bull 常用的 UTF具体编码方式有 UTF-8 UTF-16 和 UTF-32

UTF-8

bull UTF-8 是 UTF 的一种具体编码方式在 ISO 10646-1 的附录 R 和 IETF 的 RFC 2279 里定义

bull 由于要使文档中的文字与 ASCII兼容故 UTF-8 选择了使用可变长度字节来储存 Unicode 和 UCS 例如ndash ASCII 字母继续使用 1 字节储存ndash 重音文字希腊字母或西里尔字母等使用 2 字节来储存ndash 常用的汉字就要使用 3 字节ndash 辅助平面字符则使用 4 字节ndash 即 ASCII 不作变换其他字符做变长编码每个字符 1~4 字节

bull UTF-8 通常作为外码bull 在 UTF-8 文件的开首很多时都放置一个 U+FEFF 字符

(UTF-8 以 EF BB BF 代表 ) 以显示这个文字档案是以UTF-8 编码

UTF-8 的优点bull 与 CPU 字节顺序无关可以在不同平台之间交流

bull 容错能力高任何一个字节损坏后最多只会导致一个编码码位损失不会链锁错误 ( 如 GB 码错一个字节就会整行乱码 )

UTF-8 的缺点bull UTF-8 使用可变长度字节储存使计算机程序设计变得复杂 (故此在计算机程序或操作系统内部多采用 UCS-2 编码 )

bull 在旧式的中文日文及朝鲜文编码之中每字符都使用 2 字节储存而 UTF-8 须使用 3 字节 (采用 UTF-16 编码则可只使用 2字节储存 )

bull 泰语以往使用的 ISO 8859-11 每字符只使用 1 字节储存而 UTF-8 须使用 3 字节

UTF-8储存的多字节串字符bull U-00000000 - U-0000007F 0xxxxxxx bull U-00000080 - U-000007FF 110xxxxx 10xxxxxx

bull U-00000800 - U-0000FFFF 1110xxxx 10xxxxxx

10xxxxxx bull U-00010000 - U-001FFFFF 11110xxx 10xxxxx

x 10xxxxxx 10xxxxxx bull 在多字节串中第一个字节的开头ldquo 1rdquo 的数目就

是整个串中字节的数目bull 每个使用 UTF-8储存的字符除了第一个字节外其余字节的头两个位元都是以 10 开始使文字处理器能够较快地找出每个字符的开始位置

UTF-16bull UTF-16 是 UTF 的另一种具体编码方式在 ISO 1064

6-1 的附录 Q 和 IETF 的 RFC 2781 里定义bull UTF-16 是变长码( 2 或 4 字节)大致相当于 20位编码值在 0 到 0x10FFFF 之间基本上就是 Unicode 编码的实现 UTF-16 与 CPU 字序有关但因为最省空间常作为网络传输的外码 UTF-16 是 Unicode 的完美编码

bull lt0x10000 的直接用其对应的 16位整数编码位于 0x10000 ~ 0x10FFFF 之间的用 0xD800~0xDBFF 的 16位整数后跟 0xDC00~0xDFFF 的 16位整数的 4 字节编码 gt 0x10FFFF 的不能用 UTF-16 表示

bull 在 Unicode 的 BMP 中定义的字符(无论是拉丁字母汉字或其他文字或符号)一律使用 2 字节存储而在辅助平面定义的字符则以两个 2 字节的值来存储

UTF-16 的特点bull UTF-16比起 UTF-8 的好处在于大部分字符都以固定长

度的 2 字节存储但 UTF-16却无法相容于 ASCII 编码bull UTF-16 有两种编码模式即大尾序( big Endian 高位字节在前)和小尾序( little Endian 高位字节在后)储存形式(一般來說以 Macintosh 制作和存储的文字使用大尾序格式以 Microsoft 或 Linux 制作和存储的文字使用小尾序格式)

bull 为了弄区分 UTF-16 文件的大小尾序在 UTF-16 文件的开头都会放置一个 U+FEFF 字符作为字节顺序标记 (UTF-16LE 以 FF FE代表 UTF-16BE 以 FE FF代表 ) 以显示该文档是以 UTF-16 编码的

UTF-32

bull UTF-32 仅使用了 Unicode范围 (0 到 0x10FFFF) 的 32位编码相当于 UCS-4 的子集

bull 由于 Unicode 和 ISOIEC 10646 的编码和结构与前面讲过的 GB 13000 类似或等价这里就不再做详细的介绍

5支持bull 现在 UnicodeUCS 已经获得了十分广泛的支

持ndash网络与浏览器(如 HTML 4050 XML 与 IE

Safari Netscape Firefox Chrome Opera Edge 等)

ndash操作系统(如 Windows NT2000XPVista7810 Mac OS X iOS Android和 Linux )

ndash 编程语言新版本(如 CC++JavaObjective-CC Swift 等)

Unicode 代码的浏览器显示代码 字符标准名称 (英语 )

浏览器的显示

amp65 大写拉丁字母 A A

amp223 小写拉丁字母 Sharp S szlig

amp254 小写拉丁字母 Thorn thorn

amp916 大写希腊字母 Delta Δ

amp1049 大写斯拉夫字母 Short I Й

amp1511 希伯来字母 Qof ק

amp1605 阿拉伯字母 Meem م

amp3671 泰文数字 7 ๗amp4688 埃塞俄比亚音节文字 Qha ቐ

amp12354 日语平假名 A あamp12450 日语片假名 A アamp21494 简体汉字 叶 叶amp33865 繁体汉字 葉 葉amp50685 韩国音节文字 Yeob 엽

23 文字输出bull 文字输出是指将计算机内的字符编码通过计算机的输出设备(如显示器打印机喇叭)展现出所对应字符的图形或声音供人们阅读或聆听

bull 本节主要介绍文字图示输出的字形技术bull 文字声音输出属于语音合成只在本节的末尾作简单的介绍

231 字形技术bull 文字 = 图形bull 不论是象形文字中的单字还是拼音文字

中的字母都是用图形来表示的bull 在计算机里文字的表示 输出(显示和打

印)涉及ndash 字型ndash 字体ndash 字库

1字型bull 字型指构造和生成字形的方法一般可分为

ndash 点阵字 DOS 显卡 ROM 金山 科印特点似位图显示快占空间(字库大)放大后有马赛克效应

bull 显示字母 88 汉字 1616bull 打印 2424 4848 6464

ndash 矢量字单线条用于笔式绘图仪特点字库小算法简单难看

ndash 轮廓字用曲线描绘字的轮廓输出效果好所见即所得(WYSWYG) 可无级放大易实现空心 阴影 填充 变形等各种特效功能轮廓曲线一般采用样条曲线如 TrueType (Apple 1991 Mac OS Microsoft 1992 Windows 31)用的是二次 B 样条 Bezier曲线中文之星 RichWin采用的是三次 B 样条 Bezier曲线

字型种类

2字体bull 字体指字的形状风格如

ndash 汉字的

ndash 英文的

宋体楷体黑体仿宋

行楷隶书新魏幼圆

Times New Roman Arial Narrow Courier New

常用汉字字体bull 宋体mdashmdash宋体来自于北宋时雕版刻书所采用的欧体字(唐朝欧阳询体)宋体字的横顿拉捺挑钩别具特色间架平正疏密适中字体秀丽遒劲但笔画横细竖粗适合于刀刻不宜于手写现在宋体广泛用于印刷常来表现文档的正文

bull 仿宋体mdashmdash 1920年钱塘的丁辅之与丁善之等人将明代以后盛行的方廓形字体加以改造创造出长形和方形的聚珍仿宋后来演化为现在的仿宋体仿宋体比较接近于手写体为宋体和楷体的折中是采用的宋体的结构和楷体的笔法而成现常来表现打印文件以及文档的摘要和注释等

bull 黑体mdashmdash黑体是适应工艺美术的发展而出现的一种等线体是从日本引进的黑体的结构与宋体没有什么差别只是其笔画粗细一致健实粗壮主要用于文档的标题和重点及标语广告等方面

bull 楷体mdashmdash楷体源于楷书楷体的笔画圆浑笔调灵活结构端正美观但不宜于木板雕刻所以直到清末西洋的石板印刷术传入后才开始广泛用于印刷现代的楷体创造于 20世纪的二三十年代主要用于文档的正文(多用于中小学教材)也可用于工艺美术等方面

3字库bull 字库为一种文字的某一字体的所有字符的集合一般存放在一个磁盘文件中

bull 由于象形文字中单字的数量大(成千上万)而拼音文字中字母的数量小(不到一百个)所以字库的大小有很大的差别

bull 为了使文档界面丰富多彩常见的字处理软件都支持多种字体带有众多字库

4点阵字型的国家标准bull 我国已经公布了若干字体的点阵字型之国家标准

ndash GB 50071-19852001 信息技术 汉字编码字符集(基本集) 24 点阵字型

ndash GB 50072-19852001 信息技术 汉字编码字符集(辅助集) 24 点阵字型

ndash GB 5199-19862001 信息技术 汉字编码字符集(基本集) 16 点阵字型 宋体

ndash GB 6345-19862001 信息技术 汉字编码字符集(基本集) 32 点阵字型 宋体

ndash GB 12041-2001 信息技术 汉字编码字符集(基本集) 48点阵字型 宋体

ndash GB 17698-1999 信息技术 通用多八位编码字符集( I 区) 汉字 16 点阵字型

232 语音合成bull 文字的声音输出主要使用的是语音合成的技术bull 语音合成功能是ldquo文rarr语rdquo转换bull 文语转换 TTS (Text-To-Speech) 是将文本形式的信息转换成自然语音的一种技术其最终目标是使计算机输出清晰而又自然的声音

bull 英语的语音合成在上世纪 80年代就早已成熟而中文 汉语的合成现在也趋于成熟并有了广泛的应用(如汽车导航仪智能手机等)

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 11: 第一篇  媒体

语音识别技术bull 早期的语音识别技术一直很落后到上世纪 70年代中采

用线性预测编码 LPC 和同态信号处理 (homomorphic signal process) 方法技术有了长足的进步但效果不理想到了上世纪 80年代矢量量化 (VQ Vector Quantization) 和隐马尔科夫模型 (HMM Hidden Markov Model) 的成功使用使语音识别在上世纪 90年代达到了商用化程度不过仍然存在问题识别率一直难以进一步提高又进入了相对低潮的相持阶段2011年 10月 14日苹果公司推出的 iPhone 4S 手机支持智能语音指令输入虽然还存在不少问题但是却引发了业界对语音输入研究和应用的新热潮

bull 语音输入的字词识别涉及词库声母分类规则库声母与韵母结合规则库声调知识库这些统称为声学基元模型库句子识别还涉及语义语法句法语用知识库这些统称为语言模型库句子理解则涉及常识库(难)

语音识别的过程图语音输入

darr数据采集

darr波形自动分析

darr预处理 参数特征提取

分帧后的语音特征矢量集合rarrdarr 声学模型 时间对准larr声学基元模型库

darr 语言模型库rarr 组句分析 larr统计信息与规则

语句候选rarrdarr识别语句输出

语音识别系统分类bull 按可识别词汇量可分为

ndash 小词汇量语音识别系统 (lt100)ndash 中词汇量语音识别系统 (100~1000)ndash 大词汇量语音识别系统 (gt1000)

bull 按语音输入方式可分为ndash 孤立词语音识别系统(简单)ndash 连接词语音识别系统(较难)ndash 连续语音语音识别系统(难)

bull 按发言人类型可分为ndash 特定人( 1 人)ndash 限定人( n 人)ndash 非特定人(任意人)

语音识别的目标是开发大词汇量非特定人的连续语音识别系统

214 扫描输入bull 扫描输入是指将图书期刊打印材料和印刷

品中的印刷体文字先通过扫描仪变成计算机中的数字图像然后再利用文字识别软件 OCR 自动转换成对应得文字编码并录入计算机

bull 目前我国研制的多种 OCR 软件的识别率已经达到 95 以上不过受印刷品质量的影响比较大

bull OCR = Optical Character Recognition Reader 光学字符识别 阅读器

bull 计算机识别印刷汉字的核心问题是抓住汉字的字形特征它主要体现在笔画和关键点上

bull 另一个核心问题是版面的分析与理解包括从图文混排版面中自动排除图形部分自动区分横排和竖排自动识别标题和正文对分栏文本实现自动对接等

bull 扫描输入方法除了用于印刷体文字的识别和输入外也可以用于手写体印刷文字的输入其文字识别的方法与印刷体文字类似也与手写实时输入的方法相关不过失去了笔顺信息属于整字识别类型

22 字符编码bull 字符编码包括西文编码中文编码和国际通

用字符编码本节的重点放在常用的编码标准上

bull 221 西文编码( ASCII 等)bull 222 中文编码( GB 2312 GB 13000

GBKGB 18030 )bull 223 国际通用字符编码( Unicode IS

OIEC 10646 )

221 西文编码bull 西文编码主要介绍 ASCII 字符集然后简

单介绍 IBM公司的 EBCDIC 和两种扩展 ASCII 显示字符表

bull 1 ASCII

bull 2 EBCDIC

bull 3扩展 ASCII 显示字符

1 ASCII

bull ASCII ( American Standard Code for Information Interchange 美国信息交换标准码)是 ANSI于 1963年提出 1968年确定的一种英文字符编码标准( ANSI X34-1986 )广泛应用于计算机网络和信息产业

bull ANSI = American National Standards Institute 美国国家标准协会

bull ASCII采用 7位二进制数的(共计 128 个)代码来表示字符(包括图示符和控制符)加上奇偶校验位(或最高位置 0 )则每个字符由 8位(一个字节)组成

ASCII 字符集

0 1 2 3 4 5 6 7

0 NUL DLE SP 0 P ` p

1 SOH DC1 1 A Q a q

2 STX DC2 ldquo 2 B R b r

3 ETX DC3 3 C S c s

4 EOT DC4 $ 4 D T d t

5 ENQ NAK 5 E U e u

6 ACK SYN amp 6 F V f v

7 BEL ETB lsquo 7 G W g w

8 BS CAN ( 8 H X h x

9 HT EM ) 9 I Y i y

A LF SUB J Z j z

B VT ESC + K [ k

C FF FS lt L l |

D CR GS - = M ] m

E SO RS gt N ^ n ~

F SI US O _ o DEL

bull ASCII 字符集以 32 个字符为一组bull 第一组( 0x00~0x1F )为控制符

(非打印符)用于数据处理 通信系统及其相应设备中的信息交换

bull 后面的除了第一个字符( SP空格符 0x20 )和最后一个字符( DEL删除符 0x7F )外全都是可打印(显示)的图示符包括ndash 第二组( 0x20 ~0x6F )的数字空格

和常用标点符号ndash 第三组( 0x40~0x5F )的大写拉丁字

母(即英文字母)与少数标点符号ndash 第四组( 0x60~0x7F )的小写拉丁字

母与少数标点符号

ASCII 的国际标准bull 1972年美国的国家标准 ASCII 与其若干拉丁语系国家的变体一起成为国际标准 ISO 6461972 ( Information processing -- ISO 7-bit coded character set for information interchange 信息处理mdashmdash ISO 用于信息交换的七位编码字符集)

bull 这些变体主要是将 ASCII 字符集中不常用的符号ldquo $ [ ] ^ ` | ~rdquo替换为他们各自语言的重音符号

bull 1987年 ISO 646 中的 ASCII部分成为 646 的国际参考版( IRV = International Reference Version ) ISO 646IRV1987 但是其中的美元符 $被替换为国际通用货币符 curren

bull 1991年推出的修订版 ISOIEC 646IRV1991 还原成原始的美国 ASCII 所以又被称为 ISO 646-US 或 US-ASCII

替代标准bull 由于 ISO 646 中各国的变体存在明显的兼容和统一问题现在已经作废

bull 有关编码已经被新的国际标准 ISOIEC 8859-1~16 19871998 ( Information processingtechnology -- 8-bit single-byte coded graphic character sets 信息处理 技术mdashmdash 8位单字节编码的图形字符集)所替代

bull 后来 ISO 646 与 ISOIEC 8859 标准又都被纳入 ISOIEC 1064619932003 ( Information technology -- Universal Multiple-Octet Coded Character Set (UCS) 信息技术mdashmdash通用多八位编码字符集 (UCS) )标准之中

bull 其中的标准编号 ISO 10646 = ISO 646 + 10000

标准化组织bull ANSI = American National Standards Institute 美

国国家标准协会bull ISO = International Organization for Standardization

国际标准化组织是由 153 个国家的国家标准协会联合组成的一个非政府国际组织总部(中央秘书处)设在瑞士的日内瓦负责制定适应商业和广泛社会需要的各种国际标准网址为 httpwwwisoorg

bull IEC = International Electrotechnical Commission 国际电工技术委员会是一个成立于 1906年 6月的国际标准化权威组织属于联合国的甲级咨询机构负责制定关于电工电子各方面的标准有 42 个会员国总部也设在瑞士的日内瓦网址为httpwwwiecch我国于 1958年 8月参加

2 EBCDIC

bull 西文的字符编码方案除了通用的 ASCII外还有 IBM公司于 1960年代初提出的 EBCDIC ( Extended Binary-Coded Decimal Interchange Code扩充的二进制编码的十进制交换码)

bull EBCDIC 现在仍然(仅)在 IBM 的 OS390 与 TPF 以及富士通 - 西门子的 BS2000OSD 等大型机的操作系统中使用

bull EBCDIC 是一种八位编码其字符的编码方案与ASCII 的完全不同

EBCDIC 字符集 0 1 2 3 4 5 6 7 8 9 A B C D E F

0 NUL DLE DS SP amp - 0

1 SOH DC1 SOS a j ~ A J 1

2 STX DC2 FS SYN b k s B K S 2

3 ETX TM c l t C L T 3

4 PF RES BYP PN d m u D M U 4

5 HT NL LF RS e n v E N V 5

6 LC BS ETB UC f o w F O W 6

7 DEL IL ESC EOT g p x G P X 7

8 GE CAN h q y H Q Y 8

9 RLF EM ` i r z I R Z 9

A SMM CC SM cent | |

B VT CU1 CU2 CU3 $

C FF IFS DC4 gt

D CR IGS ENQ NAK ( ) _ lsquo

E SO IRS ACK + lt =

F SI IUS BEL SUB | ldquo EO

3扩展 ASCII 显示字符bull ( 1 ) IBM PC

ndash IBM PC 的扩展 ASCII 显示字符由 IBM公司为其 PC 机制定可以由原始的 IBM PC 显示器在 DOS状态下显示

bull ( 2 ) Microsoft Windows ndash Microsoft Windows 的扩展 ASCII 显示字符由

微软公司为其Windows操作系统制定可以在Windows环境的西文状态下被显示

IBM PC 的扩展 ASCII 显示字符表

Microsoft Windows 的扩展 ASCII 显示字符表

222 中文编码bull 1 GB 1988 与 GB 2311

bull 2 GB 2312

bull 3汉字编码的辅助集bull 4 Big5

bull 5少数民族文字编码bull 6 GB 13000

bull 7 GBK 与 GB 18030

汉字编码bull 为了计算机处理汉字必须先对汉字进行编码由于汉

字数量大(《康熙字典》收字 47 035 个《汉语大字典》收字 54 678 个据统计在形成楷体后出现的汉字约有 9万个左右)显然不能像 ASCII那样用 7位或单字节来进行编码至少需要两个字节(最多可表示 6万5千多个字符)

bull 1980年我国制定了著名的 GB 2312-80双字节汉字编码标准(其中 GB 为ldquo国标rdquo这两个汉字的拼音首字母)收汉字 6 763 个

bull 1993年底又推出了等同于国际通用字符编码标准 ISOIEC 106461-1993 的国家标准 GB 130001-93 收汉字 20 902 个

bull 由于 GB 13000 与 GB 2312 的编码不兼容作为过渡2000年又公布了 GB 18030-2000 ( GBK )收汉字2万 7千个

1 GB 1988 与 GB 2311

bull 为了能够同时表示和处理汉字和英文实现中外文混排汉字编码必须兼容通用的 ASCII 编码因此1980年我国制定了与国际标准 ISO 6461972 (即ASCII )对应的国家标准 GB 1988-80《信息处理交换用的七位编码字符集》

bull 汉字成千上万不可能像 ASCII 一样只用单字节的七位来表示必须扩展到八位和多字节但是不能随意扩充而应该符合国际规范因此我国于 1980年又制定了与七位代码扩充到八位编码的国际标准 ISO 2022兼容的国家标准 GB 2311-80《信息处理交换用七位编码字符集的扩充办法》

GB 1988-80 ( ASCII )的代码结构图

行 0 1 2 3 4 5 6 7

0 SP

1 helliphellip

15

16

32个

控制符

94个

图形字符

DEL

GB 2311-80 的八位编码结构图列

行 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0 SP 100

1

helliphellip

14

15

C0

32个

控制符

GL

94或 96个

图形字符

DEL

C1

32个

控制符

GR

94或 96个

图形字符

1515

2 GB 2312

bull GB 2312-80《信息交换用汉字编码字符集 middot基本集》是我国制定的一个使用最广泛的汉字编码的强制性国家标准由原第四机械工业部的华北计算机研究所(后改名为电子工业部第十五研究所)起草1980年批准 1981年 5月 1日起实施

bull GB 2312-80 是在已有的国家标准 GB 1988-80(对应于 ISO 646 )和 GB 2311-80 (对应于 ISO 2022 )的基础上制定的采用与 ISO 2022兼容的GB 2311 之 7位到八位的代码扩充办法用双字节编码表示汉字与 ASCII兼容

收录的字符bull GB 2312 对应的是汉字的基本集共收汉字 6 763 个

可达到 9999 的使用频率因此除了极少数生僻的人名地名和古文外 GB 2312 中的汉字已经能基本满足平时的使用了

bull 除了汉字外 GB 2312 还收录了 682 个非汉字图形符号包括 202 个一般符号(含间隔符标点运算符和制表符) 60 个序号符 22 个数字符 52 个英文字母 169 个日文假名 48 个希腊字母 66 个俄文字母 26 个汉语拼音符号和 37 个汉语注音字母

bull 所以在 GB 2312-80 标准中共收录了( 6 763 汉字 + 682 非汉字图符 = ) 7 445 图形字符

两级汉字bull GB 2312 将其收录的六千多个汉字分成两个级别bull 一级汉字有 3 755 个都为使用频率高的常用汉

字为便于检索像字典那样将这些汉字按拼音字母顺序排列(同音字再按笔顺的横竖撇捺点折序排列)

bull 二级汉字有 3 008 个大部分较生僻不易掌握读音所以按部首顺序排列(同部首的字按笔画数排列同笔画数的字再按笔顺排列)

编码方案bull GB 2312 对所有图形字符(包括汉字和非汉字图符)都采用两个字节表示每个字节的低七位用于编码最高位全为 1 这样可以兼容 ASCII 编码(字节的最高位全为 0 )

bull 虽然在一个字节中最高位为 1 的符号位置有 128 个但从前面 GB 2311 的分析可知为了与 ASCII 的代码结构兼容保留了( 32 + 2 = ) 34 个控制符位置最后只有( 128 ndash 34 = ) 94 个符号位可供图形字符编码使用

bull 图形字符在代码表中的位置用区位码表示将码表分成94 个区对应于编码的第一个字节取值 0x21~0x7E 每个区又分成 94 个位对应于编码的第二个字节取值 0x21~0x7E (参见表 2-6 )

bull 例如ldquo中山大学rdquo的编码为中 (0xD6D0) 山 (0xC9BD) 大 (0xB4F3) 学 (0xD1A7)

GB 2312-80 字符集结构 20 21 22 helliphellip 7D 7E 7F

位号

区号

1 2 helliphellip 93 94

20

21~29 1~9 非汉字图符(682个)

2A~2F 10~15 空白区

30~57 16~55 一级汉字(3 755个)

58~77 56~87 二级汉字(3 008个)

78~7E 88~94 空白区

7F

第 1 区的部分非汉字图符

1区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 middot ˉ ˇ uml 々 mdash ~ hellip lsquo rsquo ldquo

17~32 rdquo 〔 〕 〈 〉 《 》 「 」 『 』 〖 〗 【 】 plusmn

33~48 times divide ∶ and or sum prod cup cap isin ∷ radic perp ∥ ang

49~64 ⊙ int ∮ equiv ≌ asymp ∽ prop ne ltu gtu le ge infin ∵ there4

65~80 deg prime Prime $ curren ¢ £ permil sect

81~94 rarr larr uarr darr

第 16 区的部分一级汉字

16区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 啊 阿 埃 挨 哎 唉 哀 皑 癌 蔼 矮 艾 碍 爱 隘 鞍

17~32 氨 安 俺 按 暗 岸 胺 案 肮 昂 盎 凹 敖 熬 翱 袄

33~48 傲 奥 懊 澳 芭 捌 扒 叭 吧 笆 八 疤 巴 拔 跋 靶

49~64 把 耙 坝 霸 罢 爸 白 柏 百 摆 佰 败 拜 稗 斑 班

65~80 搬 扳 般 颁 板 版 扮 拌 伴 瓣 半 办 绊 邦 帮 梆

81~94 榜 膀 绑 棒 磅 蚌 镑 傍 谤 苞 胞 包 褒 剥

第 56 区的部分二级汉字

56区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 亍 丌 兀 丐 廿 卅 丕 亘 丞 鬲 孬 噩 丨 禺 丿 匕

17~32 乇 夭 爻 卮 氐 囟 胤 馗 毓 睾 鼗 丶 亟 鼐 乜 乩

33~48 亓 芈 孛 啬 嘏 仄 厍 厝 厣 厥 厮 靥 赝 匚 叵 匦

49~64 匮 匾 赜 卦 卣 刂 刈 刎 刭 刳 刿 剀 剌 剞 剡 剜

65~80 蒯 剽 劂 劁 劐 劓 冂 罔 亻 仃 仉 仂 仨 仡 仫 仞

81~94 伛 仳 伢 佤 仵 伥 伧 伉 伫 佞 佧 攸 佚 佝

3汉字编码的辅助集bull 除了GB 2312基本集的 6 763 个简体汉字外国家标

准还给出了汉字编码字符集的多个辅助集bull 第二 四辅助集分别增加了 7 237 7 039 个简体汉字bull 第一和三 五辅助集则分别是与基本集和第二 四辅助集所对应的繁体汉字字符集的国家标准

bull 基本集加上辅助集共有 21 039 个简体汉字和 21 142个繁体汉字

bull 繁体汉字之所以多一些是因为在第一辅助集中有时几个繁体字对应一个简体字因此比基本集多出 103 个汉字

bull 基本集和辅助集的代码页之间靠其编码字节的最高位来区分

编码字符的分页标志

双字节汉字编码的页面结构第二字节 列号

行号 0 middot middot middot 32 33 34 helliphellip 125 126 127 128middot middot 160 161 162 helliphellip 254 255 0 middot middot 32

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

33 34 middot middot middot 126

1 2 middot middot middot 94

第四五辅助集 (7 039个汉字)

127

(兼容ASCII)

128 middot middot 160

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

161 162 middot middot middot 254

1 2 middot middot middot 94

第二三辅助集 (7 237个汉字)

1 2 middot middot middot 94

基本集第一辅助集 (6 763 6 866个汉字) (682个非汉字图符)

第一字节

255

4 Big5

bull 除了中国大陆使用的简体汉字外在台湾香港澳门和海外华侨社区使用的是传统的繁体汉字

bull 简体汉字使用 GB (国标)系列编码标准bull 繁体汉字一般使用的是 Big5内码(大五码)即台湾的ldquo资讯工业策进会rdquo发布的《标准交换码 (Ⅲ码 )》收录汉字 13 053 个

bull Big5内码是 1984年由台湾财团法人资讯工业策进会与宏碁 (Acer) 神通 (MiTAC) 佳佳零壹 (Zero One) 大众 (FIC) 等五大软件公司联合推出故称为大五码

BIG5 的代码空间低位字节

00 hellip 3F 40 hellip 7E 7F hellip A0 A1 hellip FE FF

高位字节

00middot

80

81middot

A0用户定义区 用户定义区

A1A2A3

非汉字图符 非汉字图符

A4middot

C6常用汉字 常用汉字

C7C8

用户定义区 用户定义区

C9middot

F9次常用汉字 次常用汉字

FAmiddot

FE用户定义区 用户定义区

FF

5少数民族文字编码bull 中国共有 56 个民族除了汉回满族一般使用汉语外其他少数民族大多有自己的民族语言

bull 我国各民族使用的 50 多种文字可以分为字母式结构文字和非字母式结构文字两大类ndash 字母式结构的有拉丁文斯拉夫文蒙古文维吾尔文哈萨克文藏文和朝鲜文等字母式

ndash 非字母式结构的有汉字象形文字图画文字和音节文字等bull 各民族文字的书写方向也有不同

ndash 壮文藏文朝鲜文彝文等的字从左到右行从上到下ndash 维吾尔文哈萨克文和柯尔克孜文等的字从右到左行从上

到下ndash 蒙古文和满文的字从上到下行从左到右ndash 汉字的书写方向有两种

bull 大陆的简体汉字的字从左到右行从上到下bull 港台与古旧书的繁体汉字的字从上到下行从右到左

国家标准bull 下面按发布时间列出若干已经公布的我国少数民族文字

编码集的国家标准(这些字符集一般分成两类对字母式结构文字采用八位编码对非字母式结构文字采用双字节编码)ndash GB 8045-87《信息处理交换用蒙古文七位和八位编码图形字

符集》收 82 个蒙古文字母和 12 个其他符号共 94 个字符ndash GB 12050-89《信息处理交换用维吾尔文编码图形字符集》收 32 个维吾尔文字母一个维吾尔文复合字符和 37 个其他符号共 70 个字符

ndash GB 12052-89《信息交换用朝鲜文编码字符集》收 5297 个朝鲜文字和 682 个其他符号(与 GB 2132同)共 5 979 个字符

ndash GB 13134-91《信息交换用彝文编码字符集》收 1165 个彝文字符和 688 个其他符号共 1853 个字符

ndash GB 16959-1997《信息技术 信息交换用藏文编码字符集 基本集》收 41 个藏文字母 36 个藏文主字 13 个元音字符12 个语音字符 10 个藏文数字 10 个半值符一个控制用连接符和 46 个其他藏文图形符号共 169 个字符

6 GB 13000bull GB 13000 是与 ISOIEC 10646 等价的国际通用编码字符集标准收汉字 2万多个但是与 GB 2312 和 GBK 不兼容

bull 1993年 5月 ISO 与 IEC 联合推出了可用于世界各种文字的通用编码字符集的国际标准的第 1部分ndash ISOIEC 10646-11993 Information technology -- Universal Multiple-Octe

t Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane (信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

ndash 该标准收字符 96万个几乎涵盖世界上的所有文字其中包含汉字 21 003 个

bull 1993年底我国推出了等同于国际标准 ISOIEC 1064611993 的强制性国家标准 ndash GB 130001-93《信息技术 通用多八位编码字符集( UCS ) 第一部分

体系结构与基本多文种平面》ndash 该标准于 1993年 12月 24日被国家技术监督局批准 1994年 8月 1日起实施

GB 13000 的主要特点

bull 世界各语言文种字符统一编码避免冲突便于国际交流

bull 编码空间宽阔连续每个图形字符的编码唯一(一字一码)不再存在兼容性问题

bull 按文种而不是按语言编码避免重复和浪费(如中日韩汉字的统一编码 CJK )

bull 与 GB 2312 和 GBK 不兼容

体系结构bull UCS 的体系结构是基于所谓ldquo多八位rdquo的而ldquo八位rdquo就是一个字节ldquo多八位rdquo就是多个字节

bull UCS采用 4 个字节来表征组面行位的四维空间bull 整个 UCS空间包含 128 个组( 0x00组 ~0x7F组)每组有 256 个平面( 0x00 平面 ~0xFF 平面)每个平面有 256 行每行又由 256 个字位构成

bull UCS共有( 128 times 256 = ) 32 768 个平面每个平面有( 256 times 256 = ) 65 536 个字位每个字位对应于一个字符的编码

bull 目前的编码只限于 00组已经定义的平面有 00组的00 平面mdashmdash称之为基本多文种平面 BMP ( Basic Multilingual Plane ) 及若干辅助平面

UCS 的全部编码空间

每个平面256times256 个

字位

00组 00 平面

00组 FF 平面

01组 00 平面

7F组 00 平面00

01组

7F组

UCS 的 00组

BMPbull BMP = Basic Multilingual Plane 基本多文种平面bull BMP 用作双八位编码字符集称之为 UCS-2 它被

分成四个区ndash A- 区(字位 0x0000~0x4DFF 有 19 903 个字位)用于

字母文字音节文字以及各种符号ndash I- 区(字位 0x4E00~0x9FFF 共 20 992 个字位)用于中日韩统一汉字( CJK )

ndash O- 区(字位 0xA000~0xDFFF 共 16 384 个字位)保留未来标准化用

ndash R- 区(字位 0xE000~0xFFFD 共 8 190 个字位)为 BMP 的限制使用区包括专用字符变形显现形式及兼容字符

BMP总貌

A-区

00~33 拼音文字(见下页)

34~3D 朝鲜文

3E~44 朝鲜文补充 -A

45~4D 朝鲜文补充 -B

I-区 4E~9F CJK统一汉字O-区 A0~DF

R-区

E0~F8 专用区

F9~FA CJK兼容汉字FB 拼音文字变形显现形式

FC~FD 阿拉伯文变形显现形式 -A

FE半形组合用标志

CJK兼容形式

小写变体

阿拉伯文变形显现形式 -B

FF 半形及全形字符 特殊字符

BMP 的0x00~0x33

行字母文字区

00 基本拉丁文 拉丁文-1补充

01 拉丁文扩充-A 拉丁文扩充-B

02 拉丁文扩充-B 国际音标扩充 进格修饰字符

03 组合用发音符 基本希腊文 希腊符号及哥普特文

04 西里尔文

05 美亚尼亚文 希伯来文(基本和扩充)

06 基本阿拉伯文 阿拉伯文扩充

07

08

09 梵文 孟加拉文

0A 锡克教文 古吉拉特文

0B 奥利雅文 泰米尔文

0C 泰卢固文 卡纳达文

0D 德拉维族文

0E 泰文 老挝文

0F

10 格鲁吉亚文

11 朝鲜文字母

12~1D

1E 拉丁文扩充增补

1F 希腊文扩充

20 广义标点 上下标 货币符号 符号组合用区分标志

21 类似字母的符号 数字形式 箭头

22 数学运算符

23 零杂技术用符号

24 控制图符 光学识别符 带括号的字母数字

25 制表符 方块元素 几何图形符

26 零杂符号

27 示意符等

28~2F

30 CJK符号和标点 平假名 片假名

31 注音 朝鲜文兼容字母 CJK零杂字符

32 带括号的CJK字母及月份

33 CJK兼容字符

留作将来标准化用

非图形字符

表示形式bull GB 13000提供了字符编码表示的两种替代使用的形式

ndash 双八位 BMP 形式( UCS-2 )mdashmdash允许使用 BMP 中的字符且每个字符用两个字节表示

ndash 肆八位正则形式( UCS-4 )mdashmdash允许使用 GB 13000 中的全部字符且每个字符用四个字节表示

bull 除了 UCS-24外还有另外两种变形的表示形式ndash UTF-8 (单字节 ~ 多字节)ndash UTF-16 (双字节和 4 字节与 UCS-2 等价)ndash 目前在工业上的实现均为 UTF-16 ( UCS-2 )和 UTF-8ndash UTF = Unicode UCS Transformation Format 统一码 UC

S转换格式bull 关于统一码我们会在下一小节详细介绍

7 GBK 与 GB 18030bull 由于 GB 13000 标准与 GB 2312 标准的字符编码不兼容作为过渡在国家信息技术标准化委员会的主持下制定了与 GB 2312兼容的《汉字内码扩展规范( GBK )》( K 为扩展的ldquo扩rdquo字的拼音首字母)并于 1995年 12月 15日由原国家技术监督局标准司联合原电子工业部科技与质量监督司作为指导性技术规范发布实施

bull 2000年 GBK又被国家标准 GB 18030-2000《信息技术 信息交换用汉字编码字符集 基本集的扩充》所代替该标准收汉字 2万 7千个

bull 与 GB 2312 一样 GB 18030 也为中国的强制性国家标准微软公司的 Windows XPVista78 中文版与苹果公司的 Mac OS X 和 iOS 谷歌公司的 Android (安卓)等操作系统已经全面支持 GBK

GB 18030 的码位范围分布

字节数 码位空间 码位数目

单字节 0x00~0x7F 128

双字节第 1字节 第 2字节

23 9400x81~0xFE

0x40~0x7E 0x80~0xFE

四字节第 1字节 第 2字节 第 3字节 第 4字节

1 587 6000x81~0xFE 0x30~0x39 0x81~0xFE 0x30~0x39

GB 18030的

总体结构图

收录字符bull 单字节部分mdashmdash收录了GBT 11383 的 0x00~0x7F 全部 128 个字符(似 ASCI

I )bull 双字节部分mdashmdash收录内容如下 (21 003 个汉字和 884 个符号共 21 887 个字符 )

ndash GB 130001-93 的全部 CJK 统一汉字字符 20 902 个( GB 2312 的编码汉字在双字节 2 区其他 CJK 统一汉字在双字节 34 区)

ndash GB 130001-93 的 CJK兼容区挑选出来的 21 个汉字ldquo郎凉秊helliphellip﨨﨩rdquo( 0xFD9C~0xFDA0 和 0xFE40~0xFE4F )

ndash GB 130001-93 中收录而 GB 2312未收录的台湾地区使用的图形字符 139 个ldquoˊˋ˙helliphelliprdquo( 0xA840~0xA895 和 0xA940~0XA988 )

ndash GB 130001-93收录的其他字符 31 ( 13)个(在双字节 5 区)ndash GB 2312-80 中的非汉字字符 682 个( 0xA1A1~0xA9EF )ndash GB 12345-90 的竖排标点符号 19 ( 29)个ldquo︵︶︹helliphellip︳︴rdquo( 0xA6D9~0xA6

F5 )ndash GB 2312-80未收录的 10 个小写罗马数字ldquoⅰⅱⅲhelliphellipⅸⅹrdquo( 0xA2A1~ 0xA2A

A )ndash GB 2312-80未收录的带音调的汉语拼音字母 5 ( 4)个ldquo ńňǹrdquo 以及 ɑ 和 ɡ ( 0

xA8BB~0xA8C0 )ndash 汉字数字零ldquo〇rdquo (0xA996) 和欧元符ldquoeurordquo (0xA2E3)ndash 表意文字描述符 13 个ldquohelliphelliprdquo( 0xA989~0xA995 )ndash 对 GB 130001-93增补的汉字和部首 构件 80 个ldquohelliphellip䶮rdquo( 0xFE50~ 0x

FEA0 )bull 四字节部分mdashmdash收录了上述双字节字符之外的包括 CJK 统一汉字扩充 A 在内

的 GB 130001-93 中的全部字符

GB 18030双字节部分的码位安排

类别 区名 码位范围 码位数 字符数 内容

符号区双字节 1区 A1A1~A9FE 846 718

GB 2312非汉字字符等

双字节 5区 A840~A9A0 192 166 台湾图符等

汉字区双字节 2区 B0A1~F7FE 6768 6763 GB 2312汉字双字节 3区 8140~A0FE 6080 6080 CJK统一汉字双字节 4区 AA40~FEA0 8160 8160 CJK统一汉字等

用户自定义区双字节用户区 1 AAA1~AFFE 564

用户自定义字符双字节用户区 2 F8A1~FEFE 658

双字节用户区 3 A140~A7A0 672

GB 18030双字节部分的编码空间结构图 尾字节

0x40larr――rarr0x7E 0x80larr――rarr0xA0 0xA1larr――――――――――――rarr0xFE

0x81 uarr darr

0xA0

0xA1 uarr darr

0xA7

0xA8 0xA9

首字节

0xAA uarr | | | | | | | | | | darr

0xFE

双字节 3区

汉字区6 080个码位

双字节用户区 3

用户自定义区672个码位

双字节 5区 图形符号区192个码位

双字节 4区

汉字区8 160个码位

双字节 1区

图形符号区564个码位

双字节 2区

汉字区6 768个码位

双字节用户区 1 用户自定义区564个码位

双字节用户区 2 用户自定义区658个码位

223 国际通用字符编码

bull Unicode (统一码)是由多语言软件制造商组成的统一码协会( httpwwwUnicodeorg)所制定一种国际字符的编码标准

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull 本节主要介绍这两种关系密切的主流国际字符编码标准的来历编码方案各自特点与相互关系

1 Unicode 统一码bull 发展历史

ndash 1987年施乐( Xerox )公司的 Joe Becker 与 Lee Collins 和苹果( Apple )公司的 Mark Davis 等人开始讨论统一编码 1987年 12月 Joe Becker造词 Unicode (统一码)含义为ldquo unique universal and uniform character encodingrdquo (单一通用统一的字符编码) 1989年 2月开始定期召开统一码会议 1989年 9月公布 Unicode草案

ndash 1991年 1月 3 日由 Xerox Apple Sun IBM Aldis Microsoft 等公司出资在美国加州成立了统一码协会( Unicode Consortium )并由协会设立非盈利性的统一码公司( Unicode Inc )后来 HP Adobe Borland Digital Lotus Novell 等公司也纷纷加入 1991年 1月成立统一码技术委员会 UTC 并制定了其规程

ndash 1991年 2月在 Ed Hart 的推动下进行了ldquo统一码对 10464 国际标准草案 1rdquo 的对话Unicode 与 ISOIEC 10646开始走向融合

ndash 1991年 8月发布 Unicode 标准 10版的第 1卷(体系结构非表意字符) 1992年6月发表 Unicode 10版的第 2卷(表意字符) 1993年 6月发布 Unicode 11版与 1993年 5月公布的 ISOIEC 10646-11993 实现了合并

ndash 1996年 7月发布 Unicode 20版ndash 1999年 9月发布 Unicode 30版ndash 2003年 4月发布 Unicode 40版(对应于 ISOIEC 106462003 ) 2004年 3月 31日发布 Unicode 401版 2005年 3月 31日发布 Unicode 410版

ndash 2006年 7月 14日发布 Unicode 50版 2008年 4月 4日发布 Unicode 51版 2009年 12月 22日发布 Unicode 52版

ndash 2010年 10月发布 Unicode 60版 2012年 1月发布 Unicode 61版(对应于 ISOIEC 106462012 ) 2012年 9月推出 Unicode 62版 2013年 9月推出 Unicode 63版

ndash 2014年 6月 16日发布 Unicode 70版 ndash 2015年 6月 17日发布 Unicode 80版

字符集bull Unicode 字符集的空间分成双字节的基本多语言平面 (Basic Multilingual Pla

ne BMP) 和 4 字节的辅助多语言平面 (Supplementary Multilingual Plane SMP) 两种

bull BMPndash Unicode 的基本平面或基本多语言平面 BMP 对应于 ISOIEC 10646-1 的第 00组的 00 平面( BMP )即 Unicode 与 ISOIEC 10646 的 BMP 中的字符编码完全一致

bull SMPndash 鉴于 Unicode 原有的 16位元空间不足以应用从 Unicode 31版本开始设立了 16 个辅助平面使 Unicode 的可使用空间由六万多字增至约一百万字

ndash 原有的 Unicode双字节空间称为基本平面或基本多语言平面 BMP 辅助多语言平面 SMP 字符要用 4 字节来储存

ndash 第一辅助平面摆放拼音文字(主要为现时已不再使用的文字)及符号范围在 U+10000 - U+1FFFD

ndash 第二辅助平面又称为表意文字补充平面 (Supplementary Ideographic Plane 简称 SIP) 现时摆放ldquo中日韩统汉字扩展 B 区rdquo共 43253 个汉字范围在 U+20000 - U+2FFFD

ndash 第三至十三辅助平面尚未使用ndash 第十四辅助平面又称为特殊用途补充平面 (Supplementary Special-purpose Pl

ane 简称 SSP) 摆放 Language tags 和 Variation Selectors 它们都是控制字符范围在 U+E0000 - U+E01FF

ndash 第十五至十六辅助平面都是私人使用区它们的范围是 U+F0000 - U+FFFFD 及 U+100000 - U+1000FD

bull Unicode 字符集的具体编码方式参加第 4小节ldquo 4 UTFrdquo

2 ISOIEC 10646

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull ISOIEC 10646 标准由 ISO 与 IEC 联合成立的 ISOIEC JTC1SC2WG2 制定ndash JTC 1 ( Joint Technical Committee 1 on Information

technology ISOIEC信息技术联合技术委员会 1 )负责信息技术方面标准的制定工作

ndash SC 2 ( SubCommittee 2 on Coded character sets 编码字符集分会 2 )下的 WG 2 ( Working Group 2 on Universal coded character set 通用编码字符集工作组 2 )负责制定国际通用字符编码标准即后来公布的 ISOIEC 10646

发展历史bull 1984年 ISO 的一些会员国发起制定新的国际字符编码标准同年 4月 ISO

与 IEC 联合成立 ISOIEC JTC1SC2WG2 1987年 3月制定出编码架构1992年 6月投票通过第二版国际标准草案

bull 1993年 5月推出 10646 标准时将内容分成两个部分标准首先发布的是其中的第 1 个部分(体系结构与基本多文种平面)的第 1版( Edition 1 ) ISOIEC 10646-11993 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane(信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

bull 2000年 3月推出 10646 标准第一个部分的第 2版( Edition 2 ) ISOIEC 10646-12000 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane

bull 2001年 10月推出 10646 标准第 2版的第二个部分(辅助平面)的第 1版( Edition 1 ) ISOIEC 10646-22001 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 2 Supplementary Planes

bull 2003年 10月推出的 10646新标准(第 1版 Edition 1 )将老标准中的两个部分标准合并成了一个单一的标准 ISOIEC 106462003 Information technology -- Universal Multiple- Octet Coded Character Set (UCS) 后来又于 2010年 2012年和 2014年分别推出了 ISOIEC 106462010 (第 2版)ISOIEC 106462012 (第 3版)和 ISOIEC 106462014 (第 4版)

UCS 通用字符集bull 通用字符集( Universal Character Set UCS )是

ISOIEC 10646 标准所定义的字符编码方式采用 4字节编码又称为 Universal Multiple-Octet Coded Character Set (通用多八位编码字符集)

bull 通用字符集是所有包括了其他字符集它保证了与其他字符集的双向兼容即如果你将任何文本字符串翻译到 UCS 格式然后再翻译回原编码你不会丢失任何信息

bull UCS 包含了已知语言的所有字符除了拉丁语希腊语斯拉夫语希伯来语阿拉伯语亚美尼亚语格鲁吉亚语还包括中文日文韩文这样的象形文字 UCS 还包括大量的图形印刷数学科学符号

名字与组合字符bull UCS 不仅给每个字符分配一个代码而且赋予了

一个正式的名字表示一个 UCS 或 Unicode值的十六进制数通常在前面加上ldquo U+rdquo 例如ldquo U+0041rdquo代表字符ldquo Ardquo

bull UCS里有些编码点分配给了组合字符组合字符机制允许在任何字符后加上重音符或其他指示标记 这在科学符号中特别有用 比如数学方程式和国际音标字母 可能会需要在一个基本字符后组合上一个或多个指示标记

实现级别bull 并不是所有的系统都需要支持像组合字符这样的的先进

机制因此 ISO 10646 指定了如下三种实现级别ndash 级别 1不支持组合字符和韩语 Hangul Jamo 字符 ( 一种特

别的 更加复杂的韩国文的编码 使用两个或三个子字符来编码一个韩文音节 )

ndash 级别 2类似于级别 1 但在某些文字中允许一列固定的组合字符 (例如 希伯来文 阿拉伯文 Devangari 孟加拉语 果鲁穆奇语 Gujarati Oriya 泰米尔语 Telugo 印 埃纳德语 Malayalam 泰国语和老挝语 ) 因为如果没有最起码的几个组合字符 UCS就不能完整地表达这些语言

ndash 级别 3支持所有的 UCS 字符如可以在任意一个字符上加上一个箭头或 和一个 tilde(颚化符号即字母上面的~ )

编码方式bull UCS 有如下两种编码方式

ndash UCS-2与 Unicode 的 2 字节编码基本一样ndash UCS-4 4 字节编码目前是在 UCS-2 前加

上 2 个全零的字节bull UCS 还有 UTF 编码方式参见下面第 4小节ldquo 4 UTFrdquo

3 Unicode 与 ISOIEC 10646bull 关系

ndash 历史上存在两个独立的尝试创立单一字符集的组织即国际标准化组织( ISO )和多语言软件制造商组成的统一码协会组织( Unicodeorg )前者开发的 ISO 10646项目后者开发的 Unicode项目因此最初制定了不同的标准

ndash 1991年前后两个项目的参与者都认识到世界不需要两个不兼容的字符集于是它们开始合并双方的工作成果并为创立一个单一编码表而协同工作

ndash 从 Unicode20开始 Unicode采用了与 ISO 10646-1相同的字库和字码 ISO 也承诺 ISO10646 将不会替超出 U+10FFFF 的 UCS-4 编码赋值以使得两者保持一致

ndash 两个项目仍都存在并独立地公布各自的标准但 Unicode协会和 ISOIEC JTC1SC2 都同意保持两者标准的码表兼容并紧密地共同调整任何未来的扩展

异同bull Unicode协会公布的 Unicode 标准包含了 ISO 10646-1 实现级别

3 的基本多文种平面在两个标准里所有的字符都在相同的位置并且有相同的名字

bull ISO 10646 标准就像 ISO 8859 标准一样只不过是一个简单的字符集表它定义了一些编码的别名指定了一些与标准有关的术语并包括了规范说明指定了怎样使用 UCS连接其他 ISO 标准的实现等

bull Unicode 标准额外定义了许多与字符有关的语义符号学并详细说明了绘制某些语言(如阿拉伯语)表达形式的算法处理双向文字(比如拉丁文和希伯来文的混合文字)的算法排序与字符串比较所需的算法等等

bull 考虑到 Unicode 标准有一个易记的名字既便宜又包括更多的辅助信息因而它使用得更广泛然而

bull 一般认为用于打印 ISO 10646-1 标准的字体在某些方面的质量要高于用于打印 Unicode 20 的专业字体设计者总是被建议说要两个标准都实现但一些提供的样例字形有显著的区别 ISO 10646-1 标准同样使用四种不同的风格变体来显示表意文字如中文日文和韩文 (CJK) 而 Unicode 20 的表里只有中文的变体

4 UTFbull Unicode 和 UCS 都是一个字符集可以看作为内码bull UTF ( UnicodeUCS Transformation Format 统一码

通用字符集转换格式)是一种编码方式它的出现是因为 Unicode 和 UCS 不适宜在某些场合直接传输和处理

bull UCS 和 Unicode 只是分配整数给字符的编码表现在存在好几种将一串字符表示为一串字节的方法(如高或低位字节在前)

bull 最显而易见的两种方法是将 UCS 和 Unicode 文本存储为 2 个 或 4 个字节序列的串这两种方法的正式名称分别为 UCS-2 和 UCS-4

bull 常用的 UTF具体编码方式有 UTF-8 UTF-16 和 UTF-32

UTF-8

bull UTF-8 是 UTF 的一种具体编码方式在 ISO 10646-1 的附录 R 和 IETF 的 RFC 2279 里定义

bull 由于要使文档中的文字与 ASCII兼容故 UTF-8 选择了使用可变长度字节来储存 Unicode 和 UCS 例如ndash ASCII 字母继续使用 1 字节储存ndash 重音文字希腊字母或西里尔字母等使用 2 字节来储存ndash 常用的汉字就要使用 3 字节ndash 辅助平面字符则使用 4 字节ndash 即 ASCII 不作变换其他字符做变长编码每个字符 1~4 字节

bull UTF-8 通常作为外码bull 在 UTF-8 文件的开首很多时都放置一个 U+FEFF 字符

(UTF-8 以 EF BB BF 代表 ) 以显示这个文字档案是以UTF-8 编码

UTF-8 的优点bull 与 CPU 字节顺序无关可以在不同平台之间交流

bull 容错能力高任何一个字节损坏后最多只会导致一个编码码位损失不会链锁错误 ( 如 GB 码错一个字节就会整行乱码 )

UTF-8 的缺点bull UTF-8 使用可变长度字节储存使计算机程序设计变得复杂 (故此在计算机程序或操作系统内部多采用 UCS-2 编码 )

bull 在旧式的中文日文及朝鲜文编码之中每字符都使用 2 字节储存而 UTF-8 须使用 3 字节 (采用 UTF-16 编码则可只使用 2字节储存 )

bull 泰语以往使用的 ISO 8859-11 每字符只使用 1 字节储存而 UTF-8 须使用 3 字节

UTF-8储存的多字节串字符bull U-00000000 - U-0000007F 0xxxxxxx bull U-00000080 - U-000007FF 110xxxxx 10xxxxxx

bull U-00000800 - U-0000FFFF 1110xxxx 10xxxxxx

10xxxxxx bull U-00010000 - U-001FFFFF 11110xxx 10xxxxx

x 10xxxxxx 10xxxxxx bull 在多字节串中第一个字节的开头ldquo 1rdquo 的数目就

是整个串中字节的数目bull 每个使用 UTF-8储存的字符除了第一个字节外其余字节的头两个位元都是以 10 开始使文字处理器能够较快地找出每个字符的开始位置

UTF-16bull UTF-16 是 UTF 的另一种具体编码方式在 ISO 1064

6-1 的附录 Q 和 IETF 的 RFC 2781 里定义bull UTF-16 是变长码( 2 或 4 字节)大致相当于 20位编码值在 0 到 0x10FFFF 之间基本上就是 Unicode 编码的实现 UTF-16 与 CPU 字序有关但因为最省空间常作为网络传输的外码 UTF-16 是 Unicode 的完美编码

bull lt0x10000 的直接用其对应的 16位整数编码位于 0x10000 ~ 0x10FFFF 之间的用 0xD800~0xDBFF 的 16位整数后跟 0xDC00~0xDFFF 的 16位整数的 4 字节编码 gt 0x10FFFF 的不能用 UTF-16 表示

bull 在 Unicode 的 BMP 中定义的字符(无论是拉丁字母汉字或其他文字或符号)一律使用 2 字节存储而在辅助平面定义的字符则以两个 2 字节的值来存储

UTF-16 的特点bull UTF-16比起 UTF-8 的好处在于大部分字符都以固定长

度的 2 字节存储但 UTF-16却无法相容于 ASCII 编码bull UTF-16 有两种编码模式即大尾序( big Endian 高位字节在前)和小尾序( little Endian 高位字节在后)储存形式(一般來說以 Macintosh 制作和存储的文字使用大尾序格式以 Microsoft 或 Linux 制作和存储的文字使用小尾序格式)

bull 为了弄区分 UTF-16 文件的大小尾序在 UTF-16 文件的开头都会放置一个 U+FEFF 字符作为字节顺序标记 (UTF-16LE 以 FF FE代表 UTF-16BE 以 FE FF代表 ) 以显示该文档是以 UTF-16 编码的

UTF-32

bull UTF-32 仅使用了 Unicode范围 (0 到 0x10FFFF) 的 32位编码相当于 UCS-4 的子集

bull 由于 Unicode 和 ISOIEC 10646 的编码和结构与前面讲过的 GB 13000 类似或等价这里就不再做详细的介绍

5支持bull 现在 UnicodeUCS 已经获得了十分广泛的支

持ndash网络与浏览器(如 HTML 4050 XML 与 IE

Safari Netscape Firefox Chrome Opera Edge 等)

ndash操作系统(如 Windows NT2000XPVista7810 Mac OS X iOS Android和 Linux )

ndash 编程语言新版本(如 CC++JavaObjective-CC Swift 等)

Unicode 代码的浏览器显示代码 字符标准名称 (英语 )

浏览器的显示

amp65 大写拉丁字母 A A

amp223 小写拉丁字母 Sharp S szlig

amp254 小写拉丁字母 Thorn thorn

amp916 大写希腊字母 Delta Δ

amp1049 大写斯拉夫字母 Short I Й

amp1511 希伯来字母 Qof ק

amp1605 阿拉伯字母 Meem م

amp3671 泰文数字 7 ๗amp4688 埃塞俄比亚音节文字 Qha ቐ

amp12354 日语平假名 A あamp12450 日语片假名 A アamp21494 简体汉字 叶 叶amp33865 繁体汉字 葉 葉amp50685 韩国音节文字 Yeob 엽

23 文字输出bull 文字输出是指将计算机内的字符编码通过计算机的输出设备(如显示器打印机喇叭)展现出所对应字符的图形或声音供人们阅读或聆听

bull 本节主要介绍文字图示输出的字形技术bull 文字声音输出属于语音合成只在本节的末尾作简单的介绍

231 字形技术bull 文字 = 图形bull 不论是象形文字中的单字还是拼音文字

中的字母都是用图形来表示的bull 在计算机里文字的表示 输出(显示和打

印)涉及ndash 字型ndash 字体ndash 字库

1字型bull 字型指构造和生成字形的方法一般可分为

ndash 点阵字 DOS 显卡 ROM 金山 科印特点似位图显示快占空间(字库大)放大后有马赛克效应

bull 显示字母 88 汉字 1616bull 打印 2424 4848 6464

ndash 矢量字单线条用于笔式绘图仪特点字库小算法简单难看

ndash 轮廓字用曲线描绘字的轮廓输出效果好所见即所得(WYSWYG) 可无级放大易实现空心 阴影 填充 变形等各种特效功能轮廓曲线一般采用样条曲线如 TrueType (Apple 1991 Mac OS Microsoft 1992 Windows 31)用的是二次 B 样条 Bezier曲线中文之星 RichWin采用的是三次 B 样条 Bezier曲线

字型种类

2字体bull 字体指字的形状风格如

ndash 汉字的

ndash 英文的

宋体楷体黑体仿宋

行楷隶书新魏幼圆

Times New Roman Arial Narrow Courier New

常用汉字字体bull 宋体mdashmdash宋体来自于北宋时雕版刻书所采用的欧体字(唐朝欧阳询体)宋体字的横顿拉捺挑钩别具特色间架平正疏密适中字体秀丽遒劲但笔画横细竖粗适合于刀刻不宜于手写现在宋体广泛用于印刷常来表现文档的正文

bull 仿宋体mdashmdash 1920年钱塘的丁辅之与丁善之等人将明代以后盛行的方廓形字体加以改造创造出长形和方形的聚珍仿宋后来演化为现在的仿宋体仿宋体比较接近于手写体为宋体和楷体的折中是采用的宋体的结构和楷体的笔法而成现常来表现打印文件以及文档的摘要和注释等

bull 黑体mdashmdash黑体是适应工艺美术的发展而出现的一种等线体是从日本引进的黑体的结构与宋体没有什么差别只是其笔画粗细一致健实粗壮主要用于文档的标题和重点及标语广告等方面

bull 楷体mdashmdash楷体源于楷书楷体的笔画圆浑笔调灵活结构端正美观但不宜于木板雕刻所以直到清末西洋的石板印刷术传入后才开始广泛用于印刷现代的楷体创造于 20世纪的二三十年代主要用于文档的正文(多用于中小学教材)也可用于工艺美术等方面

3字库bull 字库为一种文字的某一字体的所有字符的集合一般存放在一个磁盘文件中

bull 由于象形文字中单字的数量大(成千上万)而拼音文字中字母的数量小(不到一百个)所以字库的大小有很大的差别

bull 为了使文档界面丰富多彩常见的字处理软件都支持多种字体带有众多字库

4点阵字型的国家标准bull 我国已经公布了若干字体的点阵字型之国家标准

ndash GB 50071-19852001 信息技术 汉字编码字符集(基本集) 24 点阵字型

ndash GB 50072-19852001 信息技术 汉字编码字符集(辅助集) 24 点阵字型

ndash GB 5199-19862001 信息技术 汉字编码字符集(基本集) 16 点阵字型 宋体

ndash GB 6345-19862001 信息技术 汉字编码字符集(基本集) 32 点阵字型 宋体

ndash GB 12041-2001 信息技术 汉字编码字符集(基本集) 48点阵字型 宋体

ndash GB 17698-1999 信息技术 通用多八位编码字符集( I 区) 汉字 16 点阵字型

232 语音合成bull 文字的声音输出主要使用的是语音合成的技术bull 语音合成功能是ldquo文rarr语rdquo转换bull 文语转换 TTS (Text-To-Speech) 是将文本形式的信息转换成自然语音的一种技术其最终目标是使计算机输出清晰而又自然的声音

bull 英语的语音合成在上世纪 80年代就早已成熟而中文 汉语的合成现在也趋于成熟并有了广泛的应用(如汽车导航仪智能手机等)

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 12: 第一篇  媒体

语音识别的过程图语音输入

darr数据采集

darr波形自动分析

darr预处理 参数特征提取

分帧后的语音特征矢量集合rarrdarr 声学模型 时间对准larr声学基元模型库

darr 语言模型库rarr 组句分析 larr统计信息与规则

语句候选rarrdarr识别语句输出

语音识别系统分类bull 按可识别词汇量可分为

ndash 小词汇量语音识别系统 (lt100)ndash 中词汇量语音识别系统 (100~1000)ndash 大词汇量语音识别系统 (gt1000)

bull 按语音输入方式可分为ndash 孤立词语音识别系统(简单)ndash 连接词语音识别系统(较难)ndash 连续语音语音识别系统(难)

bull 按发言人类型可分为ndash 特定人( 1 人)ndash 限定人( n 人)ndash 非特定人(任意人)

语音识别的目标是开发大词汇量非特定人的连续语音识别系统

214 扫描输入bull 扫描输入是指将图书期刊打印材料和印刷

品中的印刷体文字先通过扫描仪变成计算机中的数字图像然后再利用文字识别软件 OCR 自动转换成对应得文字编码并录入计算机

bull 目前我国研制的多种 OCR 软件的识别率已经达到 95 以上不过受印刷品质量的影响比较大

bull OCR = Optical Character Recognition Reader 光学字符识别 阅读器

bull 计算机识别印刷汉字的核心问题是抓住汉字的字形特征它主要体现在笔画和关键点上

bull 另一个核心问题是版面的分析与理解包括从图文混排版面中自动排除图形部分自动区分横排和竖排自动识别标题和正文对分栏文本实现自动对接等

bull 扫描输入方法除了用于印刷体文字的识别和输入外也可以用于手写体印刷文字的输入其文字识别的方法与印刷体文字类似也与手写实时输入的方法相关不过失去了笔顺信息属于整字识别类型

22 字符编码bull 字符编码包括西文编码中文编码和国际通

用字符编码本节的重点放在常用的编码标准上

bull 221 西文编码( ASCII 等)bull 222 中文编码( GB 2312 GB 13000

GBKGB 18030 )bull 223 国际通用字符编码( Unicode IS

OIEC 10646 )

221 西文编码bull 西文编码主要介绍 ASCII 字符集然后简

单介绍 IBM公司的 EBCDIC 和两种扩展 ASCII 显示字符表

bull 1 ASCII

bull 2 EBCDIC

bull 3扩展 ASCII 显示字符

1 ASCII

bull ASCII ( American Standard Code for Information Interchange 美国信息交换标准码)是 ANSI于 1963年提出 1968年确定的一种英文字符编码标准( ANSI X34-1986 )广泛应用于计算机网络和信息产业

bull ANSI = American National Standards Institute 美国国家标准协会

bull ASCII采用 7位二进制数的(共计 128 个)代码来表示字符(包括图示符和控制符)加上奇偶校验位(或最高位置 0 )则每个字符由 8位(一个字节)组成

ASCII 字符集

0 1 2 3 4 5 6 7

0 NUL DLE SP 0 P ` p

1 SOH DC1 1 A Q a q

2 STX DC2 ldquo 2 B R b r

3 ETX DC3 3 C S c s

4 EOT DC4 $ 4 D T d t

5 ENQ NAK 5 E U e u

6 ACK SYN amp 6 F V f v

7 BEL ETB lsquo 7 G W g w

8 BS CAN ( 8 H X h x

9 HT EM ) 9 I Y i y

A LF SUB J Z j z

B VT ESC + K [ k

C FF FS lt L l |

D CR GS - = M ] m

E SO RS gt N ^ n ~

F SI US O _ o DEL

bull ASCII 字符集以 32 个字符为一组bull 第一组( 0x00~0x1F )为控制符

(非打印符)用于数据处理 通信系统及其相应设备中的信息交换

bull 后面的除了第一个字符( SP空格符 0x20 )和最后一个字符( DEL删除符 0x7F )外全都是可打印(显示)的图示符包括ndash 第二组( 0x20 ~0x6F )的数字空格

和常用标点符号ndash 第三组( 0x40~0x5F )的大写拉丁字

母(即英文字母)与少数标点符号ndash 第四组( 0x60~0x7F )的小写拉丁字

母与少数标点符号

ASCII 的国际标准bull 1972年美国的国家标准 ASCII 与其若干拉丁语系国家的变体一起成为国际标准 ISO 6461972 ( Information processing -- ISO 7-bit coded character set for information interchange 信息处理mdashmdash ISO 用于信息交换的七位编码字符集)

bull 这些变体主要是将 ASCII 字符集中不常用的符号ldquo $ [ ] ^ ` | ~rdquo替换为他们各自语言的重音符号

bull 1987年 ISO 646 中的 ASCII部分成为 646 的国际参考版( IRV = International Reference Version ) ISO 646IRV1987 但是其中的美元符 $被替换为国际通用货币符 curren

bull 1991年推出的修订版 ISOIEC 646IRV1991 还原成原始的美国 ASCII 所以又被称为 ISO 646-US 或 US-ASCII

替代标准bull 由于 ISO 646 中各国的变体存在明显的兼容和统一问题现在已经作废

bull 有关编码已经被新的国际标准 ISOIEC 8859-1~16 19871998 ( Information processingtechnology -- 8-bit single-byte coded graphic character sets 信息处理 技术mdashmdash 8位单字节编码的图形字符集)所替代

bull 后来 ISO 646 与 ISOIEC 8859 标准又都被纳入 ISOIEC 1064619932003 ( Information technology -- Universal Multiple-Octet Coded Character Set (UCS) 信息技术mdashmdash通用多八位编码字符集 (UCS) )标准之中

bull 其中的标准编号 ISO 10646 = ISO 646 + 10000

标准化组织bull ANSI = American National Standards Institute 美

国国家标准协会bull ISO = International Organization for Standardization

国际标准化组织是由 153 个国家的国家标准协会联合组成的一个非政府国际组织总部(中央秘书处)设在瑞士的日内瓦负责制定适应商业和广泛社会需要的各种国际标准网址为 httpwwwisoorg

bull IEC = International Electrotechnical Commission 国际电工技术委员会是一个成立于 1906年 6月的国际标准化权威组织属于联合国的甲级咨询机构负责制定关于电工电子各方面的标准有 42 个会员国总部也设在瑞士的日内瓦网址为httpwwwiecch我国于 1958年 8月参加

2 EBCDIC

bull 西文的字符编码方案除了通用的 ASCII外还有 IBM公司于 1960年代初提出的 EBCDIC ( Extended Binary-Coded Decimal Interchange Code扩充的二进制编码的十进制交换码)

bull EBCDIC 现在仍然(仅)在 IBM 的 OS390 与 TPF 以及富士通 - 西门子的 BS2000OSD 等大型机的操作系统中使用

bull EBCDIC 是一种八位编码其字符的编码方案与ASCII 的完全不同

EBCDIC 字符集 0 1 2 3 4 5 6 7 8 9 A B C D E F

0 NUL DLE DS SP amp - 0

1 SOH DC1 SOS a j ~ A J 1

2 STX DC2 FS SYN b k s B K S 2

3 ETX TM c l t C L T 3

4 PF RES BYP PN d m u D M U 4

5 HT NL LF RS e n v E N V 5

6 LC BS ETB UC f o w F O W 6

7 DEL IL ESC EOT g p x G P X 7

8 GE CAN h q y H Q Y 8

9 RLF EM ` i r z I R Z 9

A SMM CC SM cent | |

B VT CU1 CU2 CU3 $

C FF IFS DC4 gt

D CR IGS ENQ NAK ( ) _ lsquo

E SO IRS ACK + lt =

F SI IUS BEL SUB | ldquo EO

3扩展 ASCII 显示字符bull ( 1 ) IBM PC

ndash IBM PC 的扩展 ASCII 显示字符由 IBM公司为其 PC 机制定可以由原始的 IBM PC 显示器在 DOS状态下显示

bull ( 2 ) Microsoft Windows ndash Microsoft Windows 的扩展 ASCII 显示字符由

微软公司为其Windows操作系统制定可以在Windows环境的西文状态下被显示

IBM PC 的扩展 ASCII 显示字符表

Microsoft Windows 的扩展 ASCII 显示字符表

222 中文编码bull 1 GB 1988 与 GB 2311

bull 2 GB 2312

bull 3汉字编码的辅助集bull 4 Big5

bull 5少数民族文字编码bull 6 GB 13000

bull 7 GBK 与 GB 18030

汉字编码bull 为了计算机处理汉字必须先对汉字进行编码由于汉

字数量大(《康熙字典》收字 47 035 个《汉语大字典》收字 54 678 个据统计在形成楷体后出现的汉字约有 9万个左右)显然不能像 ASCII那样用 7位或单字节来进行编码至少需要两个字节(最多可表示 6万5千多个字符)

bull 1980年我国制定了著名的 GB 2312-80双字节汉字编码标准(其中 GB 为ldquo国标rdquo这两个汉字的拼音首字母)收汉字 6 763 个

bull 1993年底又推出了等同于国际通用字符编码标准 ISOIEC 106461-1993 的国家标准 GB 130001-93 收汉字 20 902 个

bull 由于 GB 13000 与 GB 2312 的编码不兼容作为过渡2000年又公布了 GB 18030-2000 ( GBK )收汉字2万 7千个

1 GB 1988 与 GB 2311

bull 为了能够同时表示和处理汉字和英文实现中外文混排汉字编码必须兼容通用的 ASCII 编码因此1980年我国制定了与国际标准 ISO 6461972 (即ASCII )对应的国家标准 GB 1988-80《信息处理交换用的七位编码字符集》

bull 汉字成千上万不可能像 ASCII 一样只用单字节的七位来表示必须扩展到八位和多字节但是不能随意扩充而应该符合国际规范因此我国于 1980年又制定了与七位代码扩充到八位编码的国际标准 ISO 2022兼容的国家标准 GB 2311-80《信息处理交换用七位编码字符集的扩充办法》

GB 1988-80 ( ASCII )的代码结构图

行 0 1 2 3 4 5 6 7

0 SP

1 helliphellip

15

16

32个

控制符

94个

图形字符

DEL

GB 2311-80 的八位编码结构图列

行 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0 SP 100

1

helliphellip

14

15

C0

32个

控制符

GL

94或 96个

图形字符

DEL

C1

32个

控制符

GR

94或 96个

图形字符

1515

2 GB 2312

bull GB 2312-80《信息交换用汉字编码字符集 middot基本集》是我国制定的一个使用最广泛的汉字编码的强制性国家标准由原第四机械工业部的华北计算机研究所(后改名为电子工业部第十五研究所)起草1980年批准 1981年 5月 1日起实施

bull GB 2312-80 是在已有的国家标准 GB 1988-80(对应于 ISO 646 )和 GB 2311-80 (对应于 ISO 2022 )的基础上制定的采用与 ISO 2022兼容的GB 2311 之 7位到八位的代码扩充办法用双字节编码表示汉字与 ASCII兼容

收录的字符bull GB 2312 对应的是汉字的基本集共收汉字 6 763 个

可达到 9999 的使用频率因此除了极少数生僻的人名地名和古文外 GB 2312 中的汉字已经能基本满足平时的使用了

bull 除了汉字外 GB 2312 还收录了 682 个非汉字图形符号包括 202 个一般符号(含间隔符标点运算符和制表符) 60 个序号符 22 个数字符 52 个英文字母 169 个日文假名 48 个希腊字母 66 个俄文字母 26 个汉语拼音符号和 37 个汉语注音字母

bull 所以在 GB 2312-80 标准中共收录了( 6 763 汉字 + 682 非汉字图符 = ) 7 445 图形字符

两级汉字bull GB 2312 将其收录的六千多个汉字分成两个级别bull 一级汉字有 3 755 个都为使用频率高的常用汉

字为便于检索像字典那样将这些汉字按拼音字母顺序排列(同音字再按笔顺的横竖撇捺点折序排列)

bull 二级汉字有 3 008 个大部分较生僻不易掌握读音所以按部首顺序排列(同部首的字按笔画数排列同笔画数的字再按笔顺排列)

编码方案bull GB 2312 对所有图形字符(包括汉字和非汉字图符)都采用两个字节表示每个字节的低七位用于编码最高位全为 1 这样可以兼容 ASCII 编码(字节的最高位全为 0 )

bull 虽然在一个字节中最高位为 1 的符号位置有 128 个但从前面 GB 2311 的分析可知为了与 ASCII 的代码结构兼容保留了( 32 + 2 = ) 34 个控制符位置最后只有( 128 ndash 34 = ) 94 个符号位可供图形字符编码使用

bull 图形字符在代码表中的位置用区位码表示将码表分成94 个区对应于编码的第一个字节取值 0x21~0x7E 每个区又分成 94 个位对应于编码的第二个字节取值 0x21~0x7E (参见表 2-6 )

bull 例如ldquo中山大学rdquo的编码为中 (0xD6D0) 山 (0xC9BD) 大 (0xB4F3) 学 (0xD1A7)

GB 2312-80 字符集结构 20 21 22 helliphellip 7D 7E 7F

位号

区号

1 2 helliphellip 93 94

20

21~29 1~9 非汉字图符(682个)

2A~2F 10~15 空白区

30~57 16~55 一级汉字(3 755个)

58~77 56~87 二级汉字(3 008个)

78~7E 88~94 空白区

7F

第 1 区的部分非汉字图符

1区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 middot ˉ ˇ uml 々 mdash ~ hellip lsquo rsquo ldquo

17~32 rdquo 〔 〕 〈 〉 《 》 「 」 『 』 〖 〗 【 】 plusmn

33~48 times divide ∶ and or sum prod cup cap isin ∷ radic perp ∥ ang

49~64 ⊙ int ∮ equiv ≌ asymp ∽ prop ne ltu gtu le ge infin ∵ there4

65~80 deg prime Prime $ curren ¢ £ permil sect

81~94 rarr larr uarr darr

第 16 区的部分一级汉字

16区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 啊 阿 埃 挨 哎 唉 哀 皑 癌 蔼 矮 艾 碍 爱 隘 鞍

17~32 氨 安 俺 按 暗 岸 胺 案 肮 昂 盎 凹 敖 熬 翱 袄

33~48 傲 奥 懊 澳 芭 捌 扒 叭 吧 笆 八 疤 巴 拔 跋 靶

49~64 把 耙 坝 霸 罢 爸 白 柏 百 摆 佰 败 拜 稗 斑 班

65~80 搬 扳 般 颁 板 版 扮 拌 伴 瓣 半 办 绊 邦 帮 梆

81~94 榜 膀 绑 棒 磅 蚌 镑 傍 谤 苞 胞 包 褒 剥

第 56 区的部分二级汉字

56区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 亍 丌 兀 丐 廿 卅 丕 亘 丞 鬲 孬 噩 丨 禺 丿 匕

17~32 乇 夭 爻 卮 氐 囟 胤 馗 毓 睾 鼗 丶 亟 鼐 乜 乩

33~48 亓 芈 孛 啬 嘏 仄 厍 厝 厣 厥 厮 靥 赝 匚 叵 匦

49~64 匮 匾 赜 卦 卣 刂 刈 刎 刭 刳 刿 剀 剌 剞 剡 剜

65~80 蒯 剽 劂 劁 劐 劓 冂 罔 亻 仃 仉 仂 仨 仡 仫 仞

81~94 伛 仳 伢 佤 仵 伥 伧 伉 伫 佞 佧 攸 佚 佝

3汉字编码的辅助集bull 除了GB 2312基本集的 6 763 个简体汉字外国家标

准还给出了汉字编码字符集的多个辅助集bull 第二 四辅助集分别增加了 7 237 7 039 个简体汉字bull 第一和三 五辅助集则分别是与基本集和第二 四辅助集所对应的繁体汉字字符集的国家标准

bull 基本集加上辅助集共有 21 039 个简体汉字和 21 142个繁体汉字

bull 繁体汉字之所以多一些是因为在第一辅助集中有时几个繁体字对应一个简体字因此比基本集多出 103 个汉字

bull 基本集和辅助集的代码页之间靠其编码字节的最高位来区分

编码字符的分页标志

双字节汉字编码的页面结构第二字节 列号

行号 0 middot middot middot 32 33 34 helliphellip 125 126 127 128middot middot 160 161 162 helliphellip 254 255 0 middot middot 32

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

33 34 middot middot middot 126

1 2 middot middot middot 94

第四五辅助集 (7 039个汉字)

127

(兼容ASCII)

128 middot middot 160

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

161 162 middot middot middot 254

1 2 middot middot middot 94

第二三辅助集 (7 237个汉字)

1 2 middot middot middot 94

基本集第一辅助集 (6 763 6 866个汉字) (682个非汉字图符)

第一字节

255

4 Big5

bull 除了中国大陆使用的简体汉字外在台湾香港澳门和海外华侨社区使用的是传统的繁体汉字

bull 简体汉字使用 GB (国标)系列编码标准bull 繁体汉字一般使用的是 Big5内码(大五码)即台湾的ldquo资讯工业策进会rdquo发布的《标准交换码 (Ⅲ码 )》收录汉字 13 053 个

bull Big5内码是 1984年由台湾财团法人资讯工业策进会与宏碁 (Acer) 神通 (MiTAC) 佳佳零壹 (Zero One) 大众 (FIC) 等五大软件公司联合推出故称为大五码

BIG5 的代码空间低位字节

00 hellip 3F 40 hellip 7E 7F hellip A0 A1 hellip FE FF

高位字节

00middot

80

81middot

A0用户定义区 用户定义区

A1A2A3

非汉字图符 非汉字图符

A4middot

C6常用汉字 常用汉字

C7C8

用户定义区 用户定义区

C9middot

F9次常用汉字 次常用汉字

FAmiddot

FE用户定义区 用户定义区

FF

5少数民族文字编码bull 中国共有 56 个民族除了汉回满族一般使用汉语外其他少数民族大多有自己的民族语言

bull 我国各民族使用的 50 多种文字可以分为字母式结构文字和非字母式结构文字两大类ndash 字母式结构的有拉丁文斯拉夫文蒙古文维吾尔文哈萨克文藏文和朝鲜文等字母式

ndash 非字母式结构的有汉字象形文字图画文字和音节文字等bull 各民族文字的书写方向也有不同

ndash 壮文藏文朝鲜文彝文等的字从左到右行从上到下ndash 维吾尔文哈萨克文和柯尔克孜文等的字从右到左行从上

到下ndash 蒙古文和满文的字从上到下行从左到右ndash 汉字的书写方向有两种

bull 大陆的简体汉字的字从左到右行从上到下bull 港台与古旧书的繁体汉字的字从上到下行从右到左

国家标准bull 下面按发布时间列出若干已经公布的我国少数民族文字

编码集的国家标准(这些字符集一般分成两类对字母式结构文字采用八位编码对非字母式结构文字采用双字节编码)ndash GB 8045-87《信息处理交换用蒙古文七位和八位编码图形字

符集》收 82 个蒙古文字母和 12 个其他符号共 94 个字符ndash GB 12050-89《信息处理交换用维吾尔文编码图形字符集》收 32 个维吾尔文字母一个维吾尔文复合字符和 37 个其他符号共 70 个字符

ndash GB 12052-89《信息交换用朝鲜文编码字符集》收 5297 个朝鲜文字和 682 个其他符号(与 GB 2132同)共 5 979 个字符

ndash GB 13134-91《信息交换用彝文编码字符集》收 1165 个彝文字符和 688 个其他符号共 1853 个字符

ndash GB 16959-1997《信息技术 信息交换用藏文编码字符集 基本集》收 41 个藏文字母 36 个藏文主字 13 个元音字符12 个语音字符 10 个藏文数字 10 个半值符一个控制用连接符和 46 个其他藏文图形符号共 169 个字符

6 GB 13000bull GB 13000 是与 ISOIEC 10646 等价的国际通用编码字符集标准收汉字 2万多个但是与 GB 2312 和 GBK 不兼容

bull 1993年 5月 ISO 与 IEC 联合推出了可用于世界各种文字的通用编码字符集的国际标准的第 1部分ndash ISOIEC 10646-11993 Information technology -- Universal Multiple-Octe

t Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane (信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

ndash 该标准收字符 96万个几乎涵盖世界上的所有文字其中包含汉字 21 003 个

bull 1993年底我国推出了等同于国际标准 ISOIEC 1064611993 的强制性国家标准 ndash GB 130001-93《信息技术 通用多八位编码字符集( UCS ) 第一部分

体系结构与基本多文种平面》ndash 该标准于 1993年 12月 24日被国家技术监督局批准 1994年 8月 1日起实施

GB 13000 的主要特点

bull 世界各语言文种字符统一编码避免冲突便于国际交流

bull 编码空间宽阔连续每个图形字符的编码唯一(一字一码)不再存在兼容性问题

bull 按文种而不是按语言编码避免重复和浪费(如中日韩汉字的统一编码 CJK )

bull 与 GB 2312 和 GBK 不兼容

体系结构bull UCS 的体系结构是基于所谓ldquo多八位rdquo的而ldquo八位rdquo就是一个字节ldquo多八位rdquo就是多个字节

bull UCS采用 4 个字节来表征组面行位的四维空间bull 整个 UCS空间包含 128 个组( 0x00组 ~0x7F组)每组有 256 个平面( 0x00 平面 ~0xFF 平面)每个平面有 256 行每行又由 256 个字位构成

bull UCS共有( 128 times 256 = ) 32 768 个平面每个平面有( 256 times 256 = ) 65 536 个字位每个字位对应于一个字符的编码

bull 目前的编码只限于 00组已经定义的平面有 00组的00 平面mdashmdash称之为基本多文种平面 BMP ( Basic Multilingual Plane ) 及若干辅助平面

UCS 的全部编码空间

每个平面256times256 个

字位

00组 00 平面

00组 FF 平面

01组 00 平面

7F组 00 平面00

01组

7F组

UCS 的 00组

BMPbull BMP = Basic Multilingual Plane 基本多文种平面bull BMP 用作双八位编码字符集称之为 UCS-2 它被

分成四个区ndash A- 区(字位 0x0000~0x4DFF 有 19 903 个字位)用于

字母文字音节文字以及各种符号ndash I- 区(字位 0x4E00~0x9FFF 共 20 992 个字位)用于中日韩统一汉字( CJK )

ndash O- 区(字位 0xA000~0xDFFF 共 16 384 个字位)保留未来标准化用

ndash R- 区(字位 0xE000~0xFFFD 共 8 190 个字位)为 BMP 的限制使用区包括专用字符变形显现形式及兼容字符

BMP总貌

A-区

00~33 拼音文字(见下页)

34~3D 朝鲜文

3E~44 朝鲜文补充 -A

45~4D 朝鲜文补充 -B

I-区 4E~9F CJK统一汉字O-区 A0~DF

R-区

E0~F8 专用区

F9~FA CJK兼容汉字FB 拼音文字变形显现形式

FC~FD 阿拉伯文变形显现形式 -A

FE半形组合用标志

CJK兼容形式

小写变体

阿拉伯文变形显现形式 -B

FF 半形及全形字符 特殊字符

BMP 的0x00~0x33

行字母文字区

00 基本拉丁文 拉丁文-1补充

01 拉丁文扩充-A 拉丁文扩充-B

02 拉丁文扩充-B 国际音标扩充 进格修饰字符

03 组合用发音符 基本希腊文 希腊符号及哥普特文

04 西里尔文

05 美亚尼亚文 希伯来文(基本和扩充)

06 基本阿拉伯文 阿拉伯文扩充

07

08

09 梵文 孟加拉文

0A 锡克教文 古吉拉特文

0B 奥利雅文 泰米尔文

0C 泰卢固文 卡纳达文

0D 德拉维族文

0E 泰文 老挝文

0F

10 格鲁吉亚文

11 朝鲜文字母

12~1D

1E 拉丁文扩充增补

1F 希腊文扩充

20 广义标点 上下标 货币符号 符号组合用区分标志

21 类似字母的符号 数字形式 箭头

22 数学运算符

23 零杂技术用符号

24 控制图符 光学识别符 带括号的字母数字

25 制表符 方块元素 几何图形符

26 零杂符号

27 示意符等

28~2F

30 CJK符号和标点 平假名 片假名

31 注音 朝鲜文兼容字母 CJK零杂字符

32 带括号的CJK字母及月份

33 CJK兼容字符

留作将来标准化用

非图形字符

表示形式bull GB 13000提供了字符编码表示的两种替代使用的形式

ndash 双八位 BMP 形式( UCS-2 )mdashmdash允许使用 BMP 中的字符且每个字符用两个字节表示

ndash 肆八位正则形式( UCS-4 )mdashmdash允许使用 GB 13000 中的全部字符且每个字符用四个字节表示

bull 除了 UCS-24外还有另外两种变形的表示形式ndash UTF-8 (单字节 ~ 多字节)ndash UTF-16 (双字节和 4 字节与 UCS-2 等价)ndash 目前在工业上的实现均为 UTF-16 ( UCS-2 )和 UTF-8ndash UTF = Unicode UCS Transformation Format 统一码 UC

S转换格式bull 关于统一码我们会在下一小节详细介绍

7 GBK 与 GB 18030bull 由于 GB 13000 标准与 GB 2312 标准的字符编码不兼容作为过渡在国家信息技术标准化委员会的主持下制定了与 GB 2312兼容的《汉字内码扩展规范( GBK )》( K 为扩展的ldquo扩rdquo字的拼音首字母)并于 1995年 12月 15日由原国家技术监督局标准司联合原电子工业部科技与质量监督司作为指导性技术规范发布实施

bull 2000年 GBK又被国家标准 GB 18030-2000《信息技术 信息交换用汉字编码字符集 基本集的扩充》所代替该标准收汉字 2万 7千个

bull 与 GB 2312 一样 GB 18030 也为中国的强制性国家标准微软公司的 Windows XPVista78 中文版与苹果公司的 Mac OS X 和 iOS 谷歌公司的 Android (安卓)等操作系统已经全面支持 GBK

GB 18030 的码位范围分布

字节数 码位空间 码位数目

单字节 0x00~0x7F 128

双字节第 1字节 第 2字节

23 9400x81~0xFE

0x40~0x7E 0x80~0xFE

四字节第 1字节 第 2字节 第 3字节 第 4字节

1 587 6000x81~0xFE 0x30~0x39 0x81~0xFE 0x30~0x39

GB 18030的

总体结构图

收录字符bull 单字节部分mdashmdash收录了GBT 11383 的 0x00~0x7F 全部 128 个字符(似 ASCI

I )bull 双字节部分mdashmdash收录内容如下 (21 003 个汉字和 884 个符号共 21 887 个字符 )

ndash GB 130001-93 的全部 CJK 统一汉字字符 20 902 个( GB 2312 的编码汉字在双字节 2 区其他 CJK 统一汉字在双字节 34 区)

ndash GB 130001-93 的 CJK兼容区挑选出来的 21 个汉字ldquo郎凉秊helliphellip﨨﨩rdquo( 0xFD9C~0xFDA0 和 0xFE40~0xFE4F )

ndash GB 130001-93 中收录而 GB 2312未收录的台湾地区使用的图形字符 139 个ldquoˊˋ˙helliphelliprdquo( 0xA840~0xA895 和 0xA940~0XA988 )

ndash GB 130001-93收录的其他字符 31 ( 13)个(在双字节 5 区)ndash GB 2312-80 中的非汉字字符 682 个( 0xA1A1~0xA9EF )ndash GB 12345-90 的竖排标点符号 19 ( 29)个ldquo︵︶︹helliphellip︳︴rdquo( 0xA6D9~0xA6

F5 )ndash GB 2312-80未收录的 10 个小写罗马数字ldquoⅰⅱⅲhelliphellipⅸⅹrdquo( 0xA2A1~ 0xA2A

A )ndash GB 2312-80未收录的带音调的汉语拼音字母 5 ( 4)个ldquo ńňǹrdquo 以及 ɑ 和 ɡ ( 0

xA8BB~0xA8C0 )ndash 汉字数字零ldquo〇rdquo (0xA996) 和欧元符ldquoeurordquo (0xA2E3)ndash 表意文字描述符 13 个ldquohelliphelliprdquo( 0xA989~0xA995 )ndash 对 GB 130001-93增补的汉字和部首 构件 80 个ldquohelliphellip䶮rdquo( 0xFE50~ 0x

FEA0 )bull 四字节部分mdashmdash收录了上述双字节字符之外的包括 CJK 统一汉字扩充 A 在内

的 GB 130001-93 中的全部字符

GB 18030双字节部分的码位安排

类别 区名 码位范围 码位数 字符数 内容

符号区双字节 1区 A1A1~A9FE 846 718

GB 2312非汉字字符等

双字节 5区 A840~A9A0 192 166 台湾图符等

汉字区双字节 2区 B0A1~F7FE 6768 6763 GB 2312汉字双字节 3区 8140~A0FE 6080 6080 CJK统一汉字双字节 4区 AA40~FEA0 8160 8160 CJK统一汉字等

用户自定义区双字节用户区 1 AAA1~AFFE 564

用户自定义字符双字节用户区 2 F8A1~FEFE 658

双字节用户区 3 A140~A7A0 672

GB 18030双字节部分的编码空间结构图 尾字节

0x40larr――rarr0x7E 0x80larr――rarr0xA0 0xA1larr――――――――――――rarr0xFE

0x81 uarr darr

0xA0

0xA1 uarr darr

0xA7

0xA8 0xA9

首字节

0xAA uarr | | | | | | | | | | darr

0xFE

双字节 3区

汉字区6 080个码位

双字节用户区 3

用户自定义区672个码位

双字节 5区 图形符号区192个码位

双字节 4区

汉字区8 160个码位

双字节 1区

图形符号区564个码位

双字节 2区

汉字区6 768个码位

双字节用户区 1 用户自定义区564个码位

双字节用户区 2 用户自定义区658个码位

223 国际通用字符编码

bull Unicode (统一码)是由多语言软件制造商组成的统一码协会( httpwwwUnicodeorg)所制定一种国际字符的编码标准

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull 本节主要介绍这两种关系密切的主流国际字符编码标准的来历编码方案各自特点与相互关系

1 Unicode 统一码bull 发展历史

ndash 1987年施乐( Xerox )公司的 Joe Becker 与 Lee Collins 和苹果( Apple )公司的 Mark Davis 等人开始讨论统一编码 1987年 12月 Joe Becker造词 Unicode (统一码)含义为ldquo unique universal and uniform character encodingrdquo (单一通用统一的字符编码) 1989年 2月开始定期召开统一码会议 1989年 9月公布 Unicode草案

ndash 1991年 1月 3 日由 Xerox Apple Sun IBM Aldis Microsoft 等公司出资在美国加州成立了统一码协会( Unicode Consortium )并由协会设立非盈利性的统一码公司( Unicode Inc )后来 HP Adobe Borland Digital Lotus Novell 等公司也纷纷加入 1991年 1月成立统一码技术委员会 UTC 并制定了其规程

ndash 1991年 2月在 Ed Hart 的推动下进行了ldquo统一码对 10464 国际标准草案 1rdquo 的对话Unicode 与 ISOIEC 10646开始走向融合

ndash 1991年 8月发布 Unicode 标准 10版的第 1卷(体系结构非表意字符) 1992年6月发表 Unicode 10版的第 2卷(表意字符) 1993年 6月发布 Unicode 11版与 1993年 5月公布的 ISOIEC 10646-11993 实现了合并

ndash 1996年 7月发布 Unicode 20版ndash 1999年 9月发布 Unicode 30版ndash 2003年 4月发布 Unicode 40版(对应于 ISOIEC 106462003 ) 2004年 3月 31日发布 Unicode 401版 2005年 3月 31日发布 Unicode 410版

ndash 2006年 7月 14日发布 Unicode 50版 2008年 4月 4日发布 Unicode 51版 2009年 12月 22日发布 Unicode 52版

ndash 2010年 10月发布 Unicode 60版 2012年 1月发布 Unicode 61版(对应于 ISOIEC 106462012 ) 2012年 9月推出 Unicode 62版 2013年 9月推出 Unicode 63版

ndash 2014年 6月 16日发布 Unicode 70版 ndash 2015年 6月 17日发布 Unicode 80版

字符集bull Unicode 字符集的空间分成双字节的基本多语言平面 (Basic Multilingual Pla

ne BMP) 和 4 字节的辅助多语言平面 (Supplementary Multilingual Plane SMP) 两种

bull BMPndash Unicode 的基本平面或基本多语言平面 BMP 对应于 ISOIEC 10646-1 的第 00组的 00 平面( BMP )即 Unicode 与 ISOIEC 10646 的 BMP 中的字符编码完全一致

bull SMPndash 鉴于 Unicode 原有的 16位元空间不足以应用从 Unicode 31版本开始设立了 16 个辅助平面使 Unicode 的可使用空间由六万多字增至约一百万字

ndash 原有的 Unicode双字节空间称为基本平面或基本多语言平面 BMP 辅助多语言平面 SMP 字符要用 4 字节来储存

ndash 第一辅助平面摆放拼音文字(主要为现时已不再使用的文字)及符号范围在 U+10000 - U+1FFFD

ndash 第二辅助平面又称为表意文字补充平面 (Supplementary Ideographic Plane 简称 SIP) 现时摆放ldquo中日韩统汉字扩展 B 区rdquo共 43253 个汉字范围在 U+20000 - U+2FFFD

ndash 第三至十三辅助平面尚未使用ndash 第十四辅助平面又称为特殊用途补充平面 (Supplementary Special-purpose Pl

ane 简称 SSP) 摆放 Language tags 和 Variation Selectors 它们都是控制字符范围在 U+E0000 - U+E01FF

ndash 第十五至十六辅助平面都是私人使用区它们的范围是 U+F0000 - U+FFFFD 及 U+100000 - U+1000FD

bull Unicode 字符集的具体编码方式参加第 4小节ldquo 4 UTFrdquo

2 ISOIEC 10646

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull ISOIEC 10646 标准由 ISO 与 IEC 联合成立的 ISOIEC JTC1SC2WG2 制定ndash JTC 1 ( Joint Technical Committee 1 on Information

technology ISOIEC信息技术联合技术委员会 1 )负责信息技术方面标准的制定工作

ndash SC 2 ( SubCommittee 2 on Coded character sets 编码字符集分会 2 )下的 WG 2 ( Working Group 2 on Universal coded character set 通用编码字符集工作组 2 )负责制定国际通用字符编码标准即后来公布的 ISOIEC 10646

发展历史bull 1984年 ISO 的一些会员国发起制定新的国际字符编码标准同年 4月 ISO

与 IEC 联合成立 ISOIEC JTC1SC2WG2 1987年 3月制定出编码架构1992年 6月投票通过第二版国际标准草案

bull 1993年 5月推出 10646 标准时将内容分成两个部分标准首先发布的是其中的第 1 个部分(体系结构与基本多文种平面)的第 1版( Edition 1 ) ISOIEC 10646-11993 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane(信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

bull 2000年 3月推出 10646 标准第一个部分的第 2版( Edition 2 ) ISOIEC 10646-12000 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane

bull 2001年 10月推出 10646 标准第 2版的第二个部分(辅助平面)的第 1版( Edition 1 ) ISOIEC 10646-22001 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 2 Supplementary Planes

bull 2003年 10月推出的 10646新标准(第 1版 Edition 1 )将老标准中的两个部分标准合并成了一个单一的标准 ISOIEC 106462003 Information technology -- Universal Multiple- Octet Coded Character Set (UCS) 后来又于 2010年 2012年和 2014年分别推出了 ISOIEC 106462010 (第 2版)ISOIEC 106462012 (第 3版)和 ISOIEC 106462014 (第 4版)

UCS 通用字符集bull 通用字符集( Universal Character Set UCS )是

ISOIEC 10646 标准所定义的字符编码方式采用 4字节编码又称为 Universal Multiple-Octet Coded Character Set (通用多八位编码字符集)

bull 通用字符集是所有包括了其他字符集它保证了与其他字符集的双向兼容即如果你将任何文本字符串翻译到 UCS 格式然后再翻译回原编码你不会丢失任何信息

bull UCS 包含了已知语言的所有字符除了拉丁语希腊语斯拉夫语希伯来语阿拉伯语亚美尼亚语格鲁吉亚语还包括中文日文韩文这样的象形文字 UCS 还包括大量的图形印刷数学科学符号

名字与组合字符bull UCS 不仅给每个字符分配一个代码而且赋予了

一个正式的名字表示一个 UCS 或 Unicode值的十六进制数通常在前面加上ldquo U+rdquo 例如ldquo U+0041rdquo代表字符ldquo Ardquo

bull UCS里有些编码点分配给了组合字符组合字符机制允许在任何字符后加上重音符或其他指示标记 这在科学符号中特别有用 比如数学方程式和国际音标字母 可能会需要在一个基本字符后组合上一个或多个指示标记

实现级别bull 并不是所有的系统都需要支持像组合字符这样的的先进

机制因此 ISO 10646 指定了如下三种实现级别ndash 级别 1不支持组合字符和韩语 Hangul Jamo 字符 ( 一种特

别的 更加复杂的韩国文的编码 使用两个或三个子字符来编码一个韩文音节 )

ndash 级别 2类似于级别 1 但在某些文字中允许一列固定的组合字符 (例如 希伯来文 阿拉伯文 Devangari 孟加拉语 果鲁穆奇语 Gujarati Oriya 泰米尔语 Telugo 印 埃纳德语 Malayalam 泰国语和老挝语 ) 因为如果没有最起码的几个组合字符 UCS就不能完整地表达这些语言

ndash 级别 3支持所有的 UCS 字符如可以在任意一个字符上加上一个箭头或 和一个 tilde(颚化符号即字母上面的~ )

编码方式bull UCS 有如下两种编码方式

ndash UCS-2与 Unicode 的 2 字节编码基本一样ndash UCS-4 4 字节编码目前是在 UCS-2 前加

上 2 个全零的字节bull UCS 还有 UTF 编码方式参见下面第 4小节ldquo 4 UTFrdquo

3 Unicode 与 ISOIEC 10646bull 关系

ndash 历史上存在两个独立的尝试创立单一字符集的组织即国际标准化组织( ISO )和多语言软件制造商组成的统一码协会组织( Unicodeorg )前者开发的 ISO 10646项目后者开发的 Unicode项目因此最初制定了不同的标准

ndash 1991年前后两个项目的参与者都认识到世界不需要两个不兼容的字符集于是它们开始合并双方的工作成果并为创立一个单一编码表而协同工作

ndash 从 Unicode20开始 Unicode采用了与 ISO 10646-1相同的字库和字码 ISO 也承诺 ISO10646 将不会替超出 U+10FFFF 的 UCS-4 编码赋值以使得两者保持一致

ndash 两个项目仍都存在并独立地公布各自的标准但 Unicode协会和 ISOIEC JTC1SC2 都同意保持两者标准的码表兼容并紧密地共同调整任何未来的扩展

异同bull Unicode协会公布的 Unicode 标准包含了 ISO 10646-1 实现级别

3 的基本多文种平面在两个标准里所有的字符都在相同的位置并且有相同的名字

bull ISO 10646 标准就像 ISO 8859 标准一样只不过是一个简单的字符集表它定义了一些编码的别名指定了一些与标准有关的术语并包括了规范说明指定了怎样使用 UCS连接其他 ISO 标准的实现等

bull Unicode 标准额外定义了许多与字符有关的语义符号学并详细说明了绘制某些语言(如阿拉伯语)表达形式的算法处理双向文字(比如拉丁文和希伯来文的混合文字)的算法排序与字符串比较所需的算法等等

bull 考虑到 Unicode 标准有一个易记的名字既便宜又包括更多的辅助信息因而它使用得更广泛然而

bull 一般认为用于打印 ISO 10646-1 标准的字体在某些方面的质量要高于用于打印 Unicode 20 的专业字体设计者总是被建议说要两个标准都实现但一些提供的样例字形有显著的区别 ISO 10646-1 标准同样使用四种不同的风格变体来显示表意文字如中文日文和韩文 (CJK) 而 Unicode 20 的表里只有中文的变体

4 UTFbull Unicode 和 UCS 都是一个字符集可以看作为内码bull UTF ( UnicodeUCS Transformation Format 统一码

通用字符集转换格式)是一种编码方式它的出现是因为 Unicode 和 UCS 不适宜在某些场合直接传输和处理

bull UCS 和 Unicode 只是分配整数给字符的编码表现在存在好几种将一串字符表示为一串字节的方法(如高或低位字节在前)

bull 最显而易见的两种方法是将 UCS 和 Unicode 文本存储为 2 个 或 4 个字节序列的串这两种方法的正式名称分别为 UCS-2 和 UCS-4

bull 常用的 UTF具体编码方式有 UTF-8 UTF-16 和 UTF-32

UTF-8

bull UTF-8 是 UTF 的一种具体编码方式在 ISO 10646-1 的附录 R 和 IETF 的 RFC 2279 里定义

bull 由于要使文档中的文字与 ASCII兼容故 UTF-8 选择了使用可变长度字节来储存 Unicode 和 UCS 例如ndash ASCII 字母继续使用 1 字节储存ndash 重音文字希腊字母或西里尔字母等使用 2 字节来储存ndash 常用的汉字就要使用 3 字节ndash 辅助平面字符则使用 4 字节ndash 即 ASCII 不作变换其他字符做变长编码每个字符 1~4 字节

bull UTF-8 通常作为外码bull 在 UTF-8 文件的开首很多时都放置一个 U+FEFF 字符

(UTF-8 以 EF BB BF 代表 ) 以显示这个文字档案是以UTF-8 编码

UTF-8 的优点bull 与 CPU 字节顺序无关可以在不同平台之间交流

bull 容错能力高任何一个字节损坏后最多只会导致一个编码码位损失不会链锁错误 ( 如 GB 码错一个字节就会整行乱码 )

UTF-8 的缺点bull UTF-8 使用可变长度字节储存使计算机程序设计变得复杂 (故此在计算机程序或操作系统内部多采用 UCS-2 编码 )

bull 在旧式的中文日文及朝鲜文编码之中每字符都使用 2 字节储存而 UTF-8 须使用 3 字节 (采用 UTF-16 编码则可只使用 2字节储存 )

bull 泰语以往使用的 ISO 8859-11 每字符只使用 1 字节储存而 UTF-8 须使用 3 字节

UTF-8储存的多字节串字符bull U-00000000 - U-0000007F 0xxxxxxx bull U-00000080 - U-000007FF 110xxxxx 10xxxxxx

bull U-00000800 - U-0000FFFF 1110xxxx 10xxxxxx

10xxxxxx bull U-00010000 - U-001FFFFF 11110xxx 10xxxxx

x 10xxxxxx 10xxxxxx bull 在多字节串中第一个字节的开头ldquo 1rdquo 的数目就

是整个串中字节的数目bull 每个使用 UTF-8储存的字符除了第一个字节外其余字节的头两个位元都是以 10 开始使文字处理器能够较快地找出每个字符的开始位置

UTF-16bull UTF-16 是 UTF 的另一种具体编码方式在 ISO 1064

6-1 的附录 Q 和 IETF 的 RFC 2781 里定义bull UTF-16 是变长码( 2 或 4 字节)大致相当于 20位编码值在 0 到 0x10FFFF 之间基本上就是 Unicode 编码的实现 UTF-16 与 CPU 字序有关但因为最省空间常作为网络传输的外码 UTF-16 是 Unicode 的完美编码

bull lt0x10000 的直接用其对应的 16位整数编码位于 0x10000 ~ 0x10FFFF 之间的用 0xD800~0xDBFF 的 16位整数后跟 0xDC00~0xDFFF 的 16位整数的 4 字节编码 gt 0x10FFFF 的不能用 UTF-16 表示

bull 在 Unicode 的 BMP 中定义的字符(无论是拉丁字母汉字或其他文字或符号)一律使用 2 字节存储而在辅助平面定义的字符则以两个 2 字节的值来存储

UTF-16 的特点bull UTF-16比起 UTF-8 的好处在于大部分字符都以固定长

度的 2 字节存储但 UTF-16却无法相容于 ASCII 编码bull UTF-16 有两种编码模式即大尾序( big Endian 高位字节在前)和小尾序( little Endian 高位字节在后)储存形式(一般來說以 Macintosh 制作和存储的文字使用大尾序格式以 Microsoft 或 Linux 制作和存储的文字使用小尾序格式)

bull 为了弄区分 UTF-16 文件的大小尾序在 UTF-16 文件的开头都会放置一个 U+FEFF 字符作为字节顺序标记 (UTF-16LE 以 FF FE代表 UTF-16BE 以 FE FF代表 ) 以显示该文档是以 UTF-16 编码的

UTF-32

bull UTF-32 仅使用了 Unicode范围 (0 到 0x10FFFF) 的 32位编码相当于 UCS-4 的子集

bull 由于 Unicode 和 ISOIEC 10646 的编码和结构与前面讲过的 GB 13000 类似或等价这里就不再做详细的介绍

5支持bull 现在 UnicodeUCS 已经获得了十分广泛的支

持ndash网络与浏览器(如 HTML 4050 XML 与 IE

Safari Netscape Firefox Chrome Opera Edge 等)

ndash操作系统(如 Windows NT2000XPVista7810 Mac OS X iOS Android和 Linux )

ndash 编程语言新版本(如 CC++JavaObjective-CC Swift 等)

Unicode 代码的浏览器显示代码 字符标准名称 (英语 )

浏览器的显示

amp65 大写拉丁字母 A A

amp223 小写拉丁字母 Sharp S szlig

amp254 小写拉丁字母 Thorn thorn

amp916 大写希腊字母 Delta Δ

amp1049 大写斯拉夫字母 Short I Й

amp1511 希伯来字母 Qof ק

amp1605 阿拉伯字母 Meem م

amp3671 泰文数字 7 ๗amp4688 埃塞俄比亚音节文字 Qha ቐ

amp12354 日语平假名 A あamp12450 日语片假名 A アamp21494 简体汉字 叶 叶amp33865 繁体汉字 葉 葉amp50685 韩国音节文字 Yeob 엽

23 文字输出bull 文字输出是指将计算机内的字符编码通过计算机的输出设备(如显示器打印机喇叭)展现出所对应字符的图形或声音供人们阅读或聆听

bull 本节主要介绍文字图示输出的字形技术bull 文字声音输出属于语音合成只在本节的末尾作简单的介绍

231 字形技术bull 文字 = 图形bull 不论是象形文字中的单字还是拼音文字

中的字母都是用图形来表示的bull 在计算机里文字的表示 输出(显示和打

印)涉及ndash 字型ndash 字体ndash 字库

1字型bull 字型指构造和生成字形的方法一般可分为

ndash 点阵字 DOS 显卡 ROM 金山 科印特点似位图显示快占空间(字库大)放大后有马赛克效应

bull 显示字母 88 汉字 1616bull 打印 2424 4848 6464

ndash 矢量字单线条用于笔式绘图仪特点字库小算法简单难看

ndash 轮廓字用曲线描绘字的轮廓输出效果好所见即所得(WYSWYG) 可无级放大易实现空心 阴影 填充 变形等各种特效功能轮廓曲线一般采用样条曲线如 TrueType (Apple 1991 Mac OS Microsoft 1992 Windows 31)用的是二次 B 样条 Bezier曲线中文之星 RichWin采用的是三次 B 样条 Bezier曲线

字型种类

2字体bull 字体指字的形状风格如

ndash 汉字的

ndash 英文的

宋体楷体黑体仿宋

行楷隶书新魏幼圆

Times New Roman Arial Narrow Courier New

常用汉字字体bull 宋体mdashmdash宋体来自于北宋时雕版刻书所采用的欧体字(唐朝欧阳询体)宋体字的横顿拉捺挑钩别具特色间架平正疏密适中字体秀丽遒劲但笔画横细竖粗适合于刀刻不宜于手写现在宋体广泛用于印刷常来表现文档的正文

bull 仿宋体mdashmdash 1920年钱塘的丁辅之与丁善之等人将明代以后盛行的方廓形字体加以改造创造出长形和方形的聚珍仿宋后来演化为现在的仿宋体仿宋体比较接近于手写体为宋体和楷体的折中是采用的宋体的结构和楷体的笔法而成现常来表现打印文件以及文档的摘要和注释等

bull 黑体mdashmdash黑体是适应工艺美术的发展而出现的一种等线体是从日本引进的黑体的结构与宋体没有什么差别只是其笔画粗细一致健实粗壮主要用于文档的标题和重点及标语广告等方面

bull 楷体mdashmdash楷体源于楷书楷体的笔画圆浑笔调灵活结构端正美观但不宜于木板雕刻所以直到清末西洋的石板印刷术传入后才开始广泛用于印刷现代的楷体创造于 20世纪的二三十年代主要用于文档的正文(多用于中小学教材)也可用于工艺美术等方面

3字库bull 字库为一种文字的某一字体的所有字符的集合一般存放在一个磁盘文件中

bull 由于象形文字中单字的数量大(成千上万)而拼音文字中字母的数量小(不到一百个)所以字库的大小有很大的差别

bull 为了使文档界面丰富多彩常见的字处理软件都支持多种字体带有众多字库

4点阵字型的国家标准bull 我国已经公布了若干字体的点阵字型之国家标准

ndash GB 50071-19852001 信息技术 汉字编码字符集(基本集) 24 点阵字型

ndash GB 50072-19852001 信息技术 汉字编码字符集(辅助集) 24 点阵字型

ndash GB 5199-19862001 信息技术 汉字编码字符集(基本集) 16 点阵字型 宋体

ndash GB 6345-19862001 信息技术 汉字编码字符集(基本集) 32 点阵字型 宋体

ndash GB 12041-2001 信息技术 汉字编码字符集(基本集) 48点阵字型 宋体

ndash GB 17698-1999 信息技术 通用多八位编码字符集( I 区) 汉字 16 点阵字型

232 语音合成bull 文字的声音输出主要使用的是语音合成的技术bull 语音合成功能是ldquo文rarr语rdquo转换bull 文语转换 TTS (Text-To-Speech) 是将文本形式的信息转换成自然语音的一种技术其最终目标是使计算机输出清晰而又自然的声音

bull 英语的语音合成在上世纪 80年代就早已成熟而中文 汉语的合成现在也趋于成熟并有了广泛的应用(如汽车导航仪智能手机等)

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 13: 第一篇  媒体

语音识别系统分类bull 按可识别词汇量可分为

ndash 小词汇量语音识别系统 (lt100)ndash 中词汇量语音识别系统 (100~1000)ndash 大词汇量语音识别系统 (gt1000)

bull 按语音输入方式可分为ndash 孤立词语音识别系统(简单)ndash 连接词语音识别系统(较难)ndash 连续语音语音识别系统(难)

bull 按发言人类型可分为ndash 特定人( 1 人)ndash 限定人( n 人)ndash 非特定人(任意人)

语音识别的目标是开发大词汇量非特定人的连续语音识别系统

214 扫描输入bull 扫描输入是指将图书期刊打印材料和印刷

品中的印刷体文字先通过扫描仪变成计算机中的数字图像然后再利用文字识别软件 OCR 自动转换成对应得文字编码并录入计算机

bull 目前我国研制的多种 OCR 软件的识别率已经达到 95 以上不过受印刷品质量的影响比较大

bull OCR = Optical Character Recognition Reader 光学字符识别 阅读器

bull 计算机识别印刷汉字的核心问题是抓住汉字的字形特征它主要体现在笔画和关键点上

bull 另一个核心问题是版面的分析与理解包括从图文混排版面中自动排除图形部分自动区分横排和竖排自动识别标题和正文对分栏文本实现自动对接等

bull 扫描输入方法除了用于印刷体文字的识别和输入外也可以用于手写体印刷文字的输入其文字识别的方法与印刷体文字类似也与手写实时输入的方法相关不过失去了笔顺信息属于整字识别类型

22 字符编码bull 字符编码包括西文编码中文编码和国际通

用字符编码本节的重点放在常用的编码标准上

bull 221 西文编码( ASCII 等)bull 222 中文编码( GB 2312 GB 13000

GBKGB 18030 )bull 223 国际通用字符编码( Unicode IS

OIEC 10646 )

221 西文编码bull 西文编码主要介绍 ASCII 字符集然后简

单介绍 IBM公司的 EBCDIC 和两种扩展 ASCII 显示字符表

bull 1 ASCII

bull 2 EBCDIC

bull 3扩展 ASCII 显示字符

1 ASCII

bull ASCII ( American Standard Code for Information Interchange 美国信息交换标准码)是 ANSI于 1963年提出 1968年确定的一种英文字符编码标准( ANSI X34-1986 )广泛应用于计算机网络和信息产业

bull ANSI = American National Standards Institute 美国国家标准协会

bull ASCII采用 7位二进制数的(共计 128 个)代码来表示字符(包括图示符和控制符)加上奇偶校验位(或最高位置 0 )则每个字符由 8位(一个字节)组成

ASCII 字符集

0 1 2 3 4 5 6 7

0 NUL DLE SP 0 P ` p

1 SOH DC1 1 A Q a q

2 STX DC2 ldquo 2 B R b r

3 ETX DC3 3 C S c s

4 EOT DC4 $ 4 D T d t

5 ENQ NAK 5 E U e u

6 ACK SYN amp 6 F V f v

7 BEL ETB lsquo 7 G W g w

8 BS CAN ( 8 H X h x

9 HT EM ) 9 I Y i y

A LF SUB J Z j z

B VT ESC + K [ k

C FF FS lt L l |

D CR GS - = M ] m

E SO RS gt N ^ n ~

F SI US O _ o DEL

bull ASCII 字符集以 32 个字符为一组bull 第一组( 0x00~0x1F )为控制符

(非打印符)用于数据处理 通信系统及其相应设备中的信息交换

bull 后面的除了第一个字符( SP空格符 0x20 )和最后一个字符( DEL删除符 0x7F )外全都是可打印(显示)的图示符包括ndash 第二组( 0x20 ~0x6F )的数字空格

和常用标点符号ndash 第三组( 0x40~0x5F )的大写拉丁字

母(即英文字母)与少数标点符号ndash 第四组( 0x60~0x7F )的小写拉丁字

母与少数标点符号

ASCII 的国际标准bull 1972年美国的国家标准 ASCII 与其若干拉丁语系国家的变体一起成为国际标准 ISO 6461972 ( Information processing -- ISO 7-bit coded character set for information interchange 信息处理mdashmdash ISO 用于信息交换的七位编码字符集)

bull 这些变体主要是将 ASCII 字符集中不常用的符号ldquo $ [ ] ^ ` | ~rdquo替换为他们各自语言的重音符号

bull 1987年 ISO 646 中的 ASCII部分成为 646 的国际参考版( IRV = International Reference Version ) ISO 646IRV1987 但是其中的美元符 $被替换为国际通用货币符 curren

bull 1991年推出的修订版 ISOIEC 646IRV1991 还原成原始的美国 ASCII 所以又被称为 ISO 646-US 或 US-ASCII

替代标准bull 由于 ISO 646 中各国的变体存在明显的兼容和统一问题现在已经作废

bull 有关编码已经被新的国际标准 ISOIEC 8859-1~16 19871998 ( Information processingtechnology -- 8-bit single-byte coded graphic character sets 信息处理 技术mdashmdash 8位单字节编码的图形字符集)所替代

bull 后来 ISO 646 与 ISOIEC 8859 标准又都被纳入 ISOIEC 1064619932003 ( Information technology -- Universal Multiple-Octet Coded Character Set (UCS) 信息技术mdashmdash通用多八位编码字符集 (UCS) )标准之中

bull 其中的标准编号 ISO 10646 = ISO 646 + 10000

标准化组织bull ANSI = American National Standards Institute 美

国国家标准协会bull ISO = International Organization for Standardization

国际标准化组织是由 153 个国家的国家标准协会联合组成的一个非政府国际组织总部(中央秘书处)设在瑞士的日内瓦负责制定适应商业和广泛社会需要的各种国际标准网址为 httpwwwisoorg

bull IEC = International Electrotechnical Commission 国际电工技术委员会是一个成立于 1906年 6月的国际标准化权威组织属于联合国的甲级咨询机构负责制定关于电工电子各方面的标准有 42 个会员国总部也设在瑞士的日内瓦网址为httpwwwiecch我国于 1958年 8月参加

2 EBCDIC

bull 西文的字符编码方案除了通用的 ASCII外还有 IBM公司于 1960年代初提出的 EBCDIC ( Extended Binary-Coded Decimal Interchange Code扩充的二进制编码的十进制交换码)

bull EBCDIC 现在仍然(仅)在 IBM 的 OS390 与 TPF 以及富士通 - 西门子的 BS2000OSD 等大型机的操作系统中使用

bull EBCDIC 是一种八位编码其字符的编码方案与ASCII 的完全不同

EBCDIC 字符集 0 1 2 3 4 5 6 7 8 9 A B C D E F

0 NUL DLE DS SP amp - 0

1 SOH DC1 SOS a j ~ A J 1

2 STX DC2 FS SYN b k s B K S 2

3 ETX TM c l t C L T 3

4 PF RES BYP PN d m u D M U 4

5 HT NL LF RS e n v E N V 5

6 LC BS ETB UC f o w F O W 6

7 DEL IL ESC EOT g p x G P X 7

8 GE CAN h q y H Q Y 8

9 RLF EM ` i r z I R Z 9

A SMM CC SM cent | |

B VT CU1 CU2 CU3 $

C FF IFS DC4 gt

D CR IGS ENQ NAK ( ) _ lsquo

E SO IRS ACK + lt =

F SI IUS BEL SUB | ldquo EO

3扩展 ASCII 显示字符bull ( 1 ) IBM PC

ndash IBM PC 的扩展 ASCII 显示字符由 IBM公司为其 PC 机制定可以由原始的 IBM PC 显示器在 DOS状态下显示

bull ( 2 ) Microsoft Windows ndash Microsoft Windows 的扩展 ASCII 显示字符由

微软公司为其Windows操作系统制定可以在Windows环境的西文状态下被显示

IBM PC 的扩展 ASCII 显示字符表

Microsoft Windows 的扩展 ASCII 显示字符表

222 中文编码bull 1 GB 1988 与 GB 2311

bull 2 GB 2312

bull 3汉字编码的辅助集bull 4 Big5

bull 5少数民族文字编码bull 6 GB 13000

bull 7 GBK 与 GB 18030

汉字编码bull 为了计算机处理汉字必须先对汉字进行编码由于汉

字数量大(《康熙字典》收字 47 035 个《汉语大字典》收字 54 678 个据统计在形成楷体后出现的汉字约有 9万个左右)显然不能像 ASCII那样用 7位或单字节来进行编码至少需要两个字节(最多可表示 6万5千多个字符)

bull 1980年我国制定了著名的 GB 2312-80双字节汉字编码标准(其中 GB 为ldquo国标rdquo这两个汉字的拼音首字母)收汉字 6 763 个

bull 1993年底又推出了等同于国际通用字符编码标准 ISOIEC 106461-1993 的国家标准 GB 130001-93 收汉字 20 902 个

bull 由于 GB 13000 与 GB 2312 的编码不兼容作为过渡2000年又公布了 GB 18030-2000 ( GBK )收汉字2万 7千个

1 GB 1988 与 GB 2311

bull 为了能够同时表示和处理汉字和英文实现中外文混排汉字编码必须兼容通用的 ASCII 编码因此1980年我国制定了与国际标准 ISO 6461972 (即ASCII )对应的国家标准 GB 1988-80《信息处理交换用的七位编码字符集》

bull 汉字成千上万不可能像 ASCII 一样只用单字节的七位来表示必须扩展到八位和多字节但是不能随意扩充而应该符合国际规范因此我国于 1980年又制定了与七位代码扩充到八位编码的国际标准 ISO 2022兼容的国家标准 GB 2311-80《信息处理交换用七位编码字符集的扩充办法》

GB 1988-80 ( ASCII )的代码结构图

行 0 1 2 3 4 5 6 7

0 SP

1 helliphellip

15

16

32个

控制符

94个

图形字符

DEL

GB 2311-80 的八位编码结构图列

行 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0 SP 100

1

helliphellip

14

15

C0

32个

控制符

GL

94或 96个

图形字符

DEL

C1

32个

控制符

GR

94或 96个

图形字符

1515

2 GB 2312

bull GB 2312-80《信息交换用汉字编码字符集 middot基本集》是我国制定的一个使用最广泛的汉字编码的强制性国家标准由原第四机械工业部的华北计算机研究所(后改名为电子工业部第十五研究所)起草1980年批准 1981年 5月 1日起实施

bull GB 2312-80 是在已有的国家标准 GB 1988-80(对应于 ISO 646 )和 GB 2311-80 (对应于 ISO 2022 )的基础上制定的采用与 ISO 2022兼容的GB 2311 之 7位到八位的代码扩充办法用双字节编码表示汉字与 ASCII兼容

收录的字符bull GB 2312 对应的是汉字的基本集共收汉字 6 763 个

可达到 9999 的使用频率因此除了极少数生僻的人名地名和古文外 GB 2312 中的汉字已经能基本满足平时的使用了

bull 除了汉字外 GB 2312 还收录了 682 个非汉字图形符号包括 202 个一般符号(含间隔符标点运算符和制表符) 60 个序号符 22 个数字符 52 个英文字母 169 个日文假名 48 个希腊字母 66 个俄文字母 26 个汉语拼音符号和 37 个汉语注音字母

bull 所以在 GB 2312-80 标准中共收录了( 6 763 汉字 + 682 非汉字图符 = ) 7 445 图形字符

两级汉字bull GB 2312 将其收录的六千多个汉字分成两个级别bull 一级汉字有 3 755 个都为使用频率高的常用汉

字为便于检索像字典那样将这些汉字按拼音字母顺序排列(同音字再按笔顺的横竖撇捺点折序排列)

bull 二级汉字有 3 008 个大部分较生僻不易掌握读音所以按部首顺序排列(同部首的字按笔画数排列同笔画数的字再按笔顺排列)

编码方案bull GB 2312 对所有图形字符(包括汉字和非汉字图符)都采用两个字节表示每个字节的低七位用于编码最高位全为 1 这样可以兼容 ASCII 编码(字节的最高位全为 0 )

bull 虽然在一个字节中最高位为 1 的符号位置有 128 个但从前面 GB 2311 的分析可知为了与 ASCII 的代码结构兼容保留了( 32 + 2 = ) 34 个控制符位置最后只有( 128 ndash 34 = ) 94 个符号位可供图形字符编码使用

bull 图形字符在代码表中的位置用区位码表示将码表分成94 个区对应于编码的第一个字节取值 0x21~0x7E 每个区又分成 94 个位对应于编码的第二个字节取值 0x21~0x7E (参见表 2-6 )

bull 例如ldquo中山大学rdquo的编码为中 (0xD6D0) 山 (0xC9BD) 大 (0xB4F3) 学 (0xD1A7)

GB 2312-80 字符集结构 20 21 22 helliphellip 7D 7E 7F

位号

区号

1 2 helliphellip 93 94

20

21~29 1~9 非汉字图符(682个)

2A~2F 10~15 空白区

30~57 16~55 一级汉字(3 755个)

58~77 56~87 二级汉字(3 008个)

78~7E 88~94 空白区

7F

第 1 区的部分非汉字图符

1区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 middot ˉ ˇ uml 々 mdash ~ hellip lsquo rsquo ldquo

17~32 rdquo 〔 〕 〈 〉 《 》 「 」 『 』 〖 〗 【 】 plusmn

33~48 times divide ∶ and or sum prod cup cap isin ∷ radic perp ∥ ang

49~64 ⊙ int ∮ equiv ≌ asymp ∽ prop ne ltu gtu le ge infin ∵ there4

65~80 deg prime Prime $ curren ¢ £ permil sect

81~94 rarr larr uarr darr

第 16 区的部分一级汉字

16区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 啊 阿 埃 挨 哎 唉 哀 皑 癌 蔼 矮 艾 碍 爱 隘 鞍

17~32 氨 安 俺 按 暗 岸 胺 案 肮 昂 盎 凹 敖 熬 翱 袄

33~48 傲 奥 懊 澳 芭 捌 扒 叭 吧 笆 八 疤 巴 拔 跋 靶

49~64 把 耙 坝 霸 罢 爸 白 柏 百 摆 佰 败 拜 稗 斑 班

65~80 搬 扳 般 颁 板 版 扮 拌 伴 瓣 半 办 绊 邦 帮 梆

81~94 榜 膀 绑 棒 磅 蚌 镑 傍 谤 苞 胞 包 褒 剥

第 56 区的部分二级汉字

56区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 亍 丌 兀 丐 廿 卅 丕 亘 丞 鬲 孬 噩 丨 禺 丿 匕

17~32 乇 夭 爻 卮 氐 囟 胤 馗 毓 睾 鼗 丶 亟 鼐 乜 乩

33~48 亓 芈 孛 啬 嘏 仄 厍 厝 厣 厥 厮 靥 赝 匚 叵 匦

49~64 匮 匾 赜 卦 卣 刂 刈 刎 刭 刳 刿 剀 剌 剞 剡 剜

65~80 蒯 剽 劂 劁 劐 劓 冂 罔 亻 仃 仉 仂 仨 仡 仫 仞

81~94 伛 仳 伢 佤 仵 伥 伧 伉 伫 佞 佧 攸 佚 佝

3汉字编码的辅助集bull 除了GB 2312基本集的 6 763 个简体汉字外国家标

准还给出了汉字编码字符集的多个辅助集bull 第二 四辅助集分别增加了 7 237 7 039 个简体汉字bull 第一和三 五辅助集则分别是与基本集和第二 四辅助集所对应的繁体汉字字符集的国家标准

bull 基本集加上辅助集共有 21 039 个简体汉字和 21 142个繁体汉字

bull 繁体汉字之所以多一些是因为在第一辅助集中有时几个繁体字对应一个简体字因此比基本集多出 103 个汉字

bull 基本集和辅助集的代码页之间靠其编码字节的最高位来区分

编码字符的分页标志

双字节汉字编码的页面结构第二字节 列号

行号 0 middot middot middot 32 33 34 helliphellip 125 126 127 128middot middot 160 161 162 helliphellip 254 255 0 middot middot 32

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

33 34 middot middot middot 126

1 2 middot middot middot 94

第四五辅助集 (7 039个汉字)

127

(兼容ASCII)

128 middot middot 160

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

161 162 middot middot middot 254

1 2 middot middot middot 94

第二三辅助集 (7 237个汉字)

1 2 middot middot middot 94

基本集第一辅助集 (6 763 6 866个汉字) (682个非汉字图符)

第一字节

255

4 Big5

bull 除了中国大陆使用的简体汉字外在台湾香港澳门和海外华侨社区使用的是传统的繁体汉字

bull 简体汉字使用 GB (国标)系列编码标准bull 繁体汉字一般使用的是 Big5内码(大五码)即台湾的ldquo资讯工业策进会rdquo发布的《标准交换码 (Ⅲ码 )》收录汉字 13 053 个

bull Big5内码是 1984年由台湾财团法人资讯工业策进会与宏碁 (Acer) 神通 (MiTAC) 佳佳零壹 (Zero One) 大众 (FIC) 等五大软件公司联合推出故称为大五码

BIG5 的代码空间低位字节

00 hellip 3F 40 hellip 7E 7F hellip A0 A1 hellip FE FF

高位字节

00middot

80

81middot

A0用户定义区 用户定义区

A1A2A3

非汉字图符 非汉字图符

A4middot

C6常用汉字 常用汉字

C7C8

用户定义区 用户定义区

C9middot

F9次常用汉字 次常用汉字

FAmiddot

FE用户定义区 用户定义区

FF

5少数民族文字编码bull 中国共有 56 个民族除了汉回满族一般使用汉语外其他少数民族大多有自己的民族语言

bull 我国各民族使用的 50 多种文字可以分为字母式结构文字和非字母式结构文字两大类ndash 字母式结构的有拉丁文斯拉夫文蒙古文维吾尔文哈萨克文藏文和朝鲜文等字母式

ndash 非字母式结构的有汉字象形文字图画文字和音节文字等bull 各民族文字的书写方向也有不同

ndash 壮文藏文朝鲜文彝文等的字从左到右行从上到下ndash 维吾尔文哈萨克文和柯尔克孜文等的字从右到左行从上

到下ndash 蒙古文和满文的字从上到下行从左到右ndash 汉字的书写方向有两种

bull 大陆的简体汉字的字从左到右行从上到下bull 港台与古旧书的繁体汉字的字从上到下行从右到左

国家标准bull 下面按发布时间列出若干已经公布的我国少数民族文字

编码集的国家标准(这些字符集一般分成两类对字母式结构文字采用八位编码对非字母式结构文字采用双字节编码)ndash GB 8045-87《信息处理交换用蒙古文七位和八位编码图形字

符集》收 82 个蒙古文字母和 12 个其他符号共 94 个字符ndash GB 12050-89《信息处理交换用维吾尔文编码图形字符集》收 32 个维吾尔文字母一个维吾尔文复合字符和 37 个其他符号共 70 个字符

ndash GB 12052-89《信息交换用朝鲜文编码字符集》收 5297 个朝鲜文字和 682 个其他符号(与 GB 2132同)共 5 979 个字符

ndash GB 13134-91《信息交换用彝文编码字符集》收 1165 个彝文字符和 688 个其他符号共 1853 个字符

ndash GB 16959-1997《信息技术 信息交换用藏文编码字符集 基本集》收 41 个藏文字母 36 个藏文主字 13 个元音字符12 个语音字符 10 个藏文数字 10 个半值符一个控制用连接符和 46 个其他藏文图形符号共 169 个字符

6 GB 13000bull GB 13000 是与 ISOIEC 10646 等价的国际通用编码字符集标准收汉字 2万多个但是与 GB 2312 和 GBK 不兼容

bull 1993年 5月 ISO 与 IEC 联合推出了可用于世界各种文字的通用编码字符集的国际标准的第 1部分ndash ISOIEC 10646-11993 Information technology -- Universal Multiple-Octe

t Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane (信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

ndash 该标准收字符 96万个几乎涵盖世界上的所有文字其中包含汉字 21 003 个

bull 1993年底我国推出了等同于国际标准 ISOIEC 1064611993 的强制性国家标准 ndash GB 130001-93《信息技术 通用多八位编码字符集( UCS ) 第一部分

体系结构与基本多文种平面》ndash 该标准于 1993年 12月 24日被国家技术监督局批准 1994年 8月 1日起实施

GB 13000 的主要特点

bull 世界各语言文种字符统一编码避免冲突便于国际交流

bull 编码空间宽阔连续每个图形字符的编码唯一(一字一码)不再存在兼容性问题

bull 按文种而不是按语言编码避免重复和浪费(如中日韩汉字的统一编码 CJK )

bull 与 GB 2312 和 GBK 不兼容

体系结构bull UCS 的体系结构是基于所谓ldquo多八位rdquo的而ldquo八位rdquo就是一个字节ldquo多八位rdquo就是多个字节

bull UCS采用 4 个字节来表征组面行位的四维空间bull 整个 UCS空间包含 128 个组( 0x00组 ~0x7F组)每组有 256 个平面( 0x00 平面 ~0xFF 平面)每个平面有 256 行每行又由 256 个字位构成

bull UCS共有( 128 times 256 = ) 32 768 个平面每个平面有( 256 times 256 = ) 65 536 个字位每个字位对应于一个字符的编码

bull 目前的编码只限于 00组已经定义的平面有 00组的00 平面mdashmdash称之为基本多文种平面 BMP ( Basic Multilingual Plane ) 及若干辅助平面

UCS 的全部编码空间

每个平面256times256 个

字位

00组 00 平面

00组 FF 平面

01组 00 平面

7F组 00 平面00

01组

7F组

UCS 的 00组

BMPbull BMP = Basic Multilingual Plane 基本多文种平面bull BMP 用作双八位编码字符集称之为 UCS-2 它被

分成四个区ndash A- 区(字位 0x0000~0x4DFF 有 19 903 个字位)用于

字母文字音节文字以及各种符号ndash I- 区(字位 0x4E00~0x9FFF 共 20 992 个字位)用于中日韩统一汉字( CJK )

ndash O- 区(字位 0xA000~0xDFFF 共 16 384 个字位)保留未来标准化用

ndash R- 区(字位 0xE000~0xFFFD 共 8 190 个字位)为 BMP 的限制使用区包括专用字符变形显现形式及兼容字符

BMP总貌

A-区

00~33 拼音文字(见下页)

34~3D 朝鲜文

3E~44 朝鲜文补充 -A

45~4D 朝鲜文补充 -B

I-区 4E~9F CJK统一汉字O-区 A0~DF

R-区

E0~F8 专用区

F9~FA CJK兼容汉字FB 拼音文字变形显现形式

FC~FD 阿拉伯文变形显现形式 -A

FE半形组合用标志

CJK兼容形式

小写变体

阿拉伯文变形显现形式 -B

FF 半形及全形字符 特殊字符

BMP 的0x00~0x33

行字母文字区

00 基本拉丁文 拉丁文-1补充

01 拉丁文扩充-A 拉丁文扩充-B

02 拉丁文扩充-B 国际音标扩充 进格修饰字符

03 组合用发音符 基本希腊文 希腊符号及哥普特文

04 西里尔文

05 美亚尼亚文 希伯来文(基本和扩充)

06 基本阿拉伯文 阿拉伯文扩充

07

08

09 梵文 孟加拉文

0A 锡克教文 古吉拉特文

0B 奥利雅文 泰米尔文

0C 泰卢固文 卡纳达文

0D 德拉维族文

0E 泰文 老挝文

0F

10 格鲁吉亚文

11 朝鲜文字母

12~1D

1E 拉丁文扩充增补

1F 希腊文扩充

20 广义标点 上下标 货币符号 符号组合用区分标志

21 类似字母的符号 数字形式 箭头

22 数学运算符

23 零杂技术用符号

24 控制图符 光学识别符 带括号的字母数字

25 制表符 方块元素 几何图形符

26 零杂符号

27 示意符等

28~2F

30 CJK符号和标点 平假名 片假名

31 注音 朝鲜文兼容字母 CJK零杂字符

32 带括号的CJK字母及月份

33 CJK兼容字符

留作将来标准化用

非图形字符

表示形式bull GB 13000提供了字符编码表示的两种替代使用的形式

ndash 双八位 BMP 形式( UCS-2 )mdashmdash允许使用 BMP 中的字符且每个字符用两个字节表示

ndash 肆八位正则形式( UCS-4 )mdashmdash允许使用 GB 13000 中的全部字符且每个字符用四个字节表示

bull 除了 UCS-24外还有另外两种变形的表示形式ndash UTF-8 (单字节 ~ 多字节)ndash UTF-16 (双字节和 4 字节与 UCS-2 等价)ndash 目前在工业上的实现均为 UTF-16 ( UCS-2 )和 UTF-8ndash UTF = Unicode UCS Transformation Format 统一码 UC

S转换格式bull 关于统一码我们会在下一小节详细介绍

7 GBK 与 GB 18030bull 由于 GB 13000 标准与 GB 2312 标准的字符编码不兼容作为过渡在国家信息技术标准化委员会的主持下制定了与 GB 2312兼容的《汉字内码扩展规范( GBK )》( K 为扩展的ldquo扩rdquo字的拼音首字母)并于 1995年 12月 15日由原国家技术监督局标准司联合原电子工业部科技与质量监督司作为指导性技术规范发布实施

bull 2000年 GBK又被国家标准 GB 18030-2000《信息技术 信息交换用汉字编码字符集 基本集的扩充》所代替该标准收汉字 2万 7千个

bull 与 GB 2312 一样 GB 18030 也为中国的强制性国家标准微软公司的 Windows XPVista78 中文版与苹果公司的 Mac OS X 和 iOS 谷歌公司的 Android (安卓)等操作系统已经全面支持 GBK

GB 18030 的码位范围分布

字节数 码位空间 码位数目

单字节 0x00~0x7F 128

双字节第 1字节 第 2字节

23 9400x81~0xFE

0x40~0x7E 0x80~0xFE

四字节第 1字节 第 2字节 第 3字节 第 4字节

1 587 6000x81~0xFE 0x30~0x39 0x81~0xFE 0x30~0x39

GB 18030的

总体结构图

收录字符bull 单字节部分mdashmdash收录了GBT 11383 的 0x00~0x7F 全部 128 个字符(似 ASCI

I )bull 双字节部分mdashmdash收录内容如下 (21 003 个汉字和 884 个符号共 21 887 个字符 )

ndash GB 130001-93 的全部 CJK 统一汉字字符 20 902 个( GB 2312 的编码汉字在双字节 2 区其他 CJK 统一汉字在双字节 34 区)

ndash GB 130001-93 的 CJK兼容区挑选出来的 21 个汉字ldquo郎凉秊helliphellip﨨﨩rdquo( 0xFD9C~0xFDA0 和 0xFE40~0xFE4F )

ndash GB 130001-93 中收录而 GB 2312未收录的台湾地区使用的图形字符 139 个ldquoˊˋ˙helliphelliprdquo( 0xA840~0xA895 和 0xA940~0XA988 )

ndash GB 130001-93收录的其他字符 31 ( 13)个(在双字节 5 区)ndash GB 2312-80 中的非汉字字符 682 个( 0xA1A1~0xA9EF )ndash GB 12345-90 的竖排标点符号 19 ( 29)个ldquo︵︶︹helliphellip︳︴rdquo( 0xA6D9~0xA6

F5 )ndash GB 2312-80未收录的 10 个小写罗马数字ldquoⅰⅱⅲhelliphellipⅸⅹrdquo( 0xA2A1~ 0xA2A

A )ndash GB 2312-80未收录的带音调的汉语拼音字母 5 ( 4)个ldquo ńňǹrdquo 以及 ɑ 和 ɡ ( 0

xA8BB~0xA8C0 )ndash 汉字数字零ldquo〇rdquo (0xA996) 和欧元符ldquoeurordquo (0xA2E3)ndash 表意文字描述符 13 个ldquohelliphelliprdquo( 0xA989~0xA995 )ndash 对 GB 130001-93增补的汉字和部首 构件 80 个ldquohelliphellip䶮rdquo( 0xFE50~ 0x

FEA0 )bull 四字节部分mdashmdash收录了上述双字节字符之外的包括 CJK 统一汉字扩充 A 在内

的 GB 130001-93 中的全部字符

GB 18030双字节部分的码位安排

类别 区名 码位范围 码位数 字符数 内容

符号区双字节 1区 A1A1~A9FE 846 718

GB 2312非汉字字符等

双字节 5区 A840~A9A0 192 166 台湾图符等

汉字区双字节 2区 B0A1~F7FE 6768 6763 GB 2312汉字双字节 3区 8140~A0FE 6080 6080 CJK统一汉字双字节 4区 AA40~FEA0 8160 8160 CJK统一汉字等

用户自定义区双字节用户区 1 AAA1~AFFE 564

用户自定义字符双字节用户区 2 F8A1~FEFE 658

双字节用户区 3 A140~A7A0 672

GB 18030双字节部分的编码空间结构图 尾字节

0x40larr――rarr0x7E 0x80larr――rarr0xA0 0xA1larr――――――――――――rarr0xFE

0x81 uarr darr

0xA0

0xA1 uarr darr

0xA7

0xA8 0xA9

首字节

0xAA uarr | | | | | | | | | | darr

0xFE

双字节 3区

汉字区6 080个码位

双字节用户区 3

用户自定义区672个码位

双字节 5区 图形符号区192个码位

双字节 4区

汉字区8 160个码位

双字节 1区

图形符号区564个码位

双字节 2区

汉字区6 768个码位

双字节用户区 1 用户自定义区564个码位

双字节用户区 2 用户自定义区658个码位

223 国际通用字符编码

bull Unicode (统一码)是由多语言软件制造商组成的统一码协会( httpwwwUnicodeorg)所制定一种国际字符的编码标准

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull 本节主要介绍这两种关系密切的主流国际字符编码标准的来历编码方案各自特点与相互关系

1 Unicode 统一码bull 发展历史

ndash 1987年施乐( Xerox )公司的 Joe Becker 与 Lee Collins 和苹果( Apple )公司的 Mark Davis 等人开始讨论统一编码 1987年 12月 Joe Becker造词 Unicode (统一码)含义为ldquo unique universal and uniform character encodingrdquo (单一通用统一的字符编码) 1989年 2月开始定期召开统一码会议 1989年 9月公布 Unicode草案

ndash 1991年 1月 3 日由 Xerox Apple Sun IBM Aldis Microsoft 等公司出资在美国加州成立了统一码协会( Unicode Consortium )并由协会设立非盈利性的统一码公司( Unicode Inc )后来 HP Adobe Borland Digital Lotus Novell 等公司也纷纷加入 1991年 1月成立统一码技术委员会 UTC 并制定了其规程

ndash 1991年 2月在 Ed Hart 的推动下进行了ldquo统一码对 10464 国际标准草案 1rdquo 的对话Unicode 与 ISOIEC 10646开始走向融合

ndash 1991年 8月发布 Unicode 标准 10版的第 1卷(体系结构非表意字符) 1992年6月发表 Unicode 10版的第 2卷(表意字符) 1993年 6月发布 Unicode 11版与 1993年 5月公布的 ISOIEC 10646-11993 实现了合并

ndash 1996年 7月发布 Unicode 20版ndash 1999年 9月发布 Unicode 30版ndash 2003年 4月发布 Unicode 40版(对应于 ISOIEC 106462003 ) 2004年 3月 31日发布 Unicode 401版 2005年 3月 31日发布 Unicode 410版

ndash 2006年 7月 14日发布 Unicode 50版 2008年 4月 4日发布 Unicode 51版 2009年 12月 22日发布 Unicode 52版

ndash 2010年 10月发布 Unicode 60版 2012年 1月发布 Unicode 61版(对应于 ISOIEC 106462012 ) 2012年 9月推出 Unicode 62版 2013年 9月推出 Unicode 63版

ndash 2014年 6月 16日发布 Unicode 70版 ndash 2015年 6月 17日发布 Unicode 80版

字符集bull Unicode 字符集的空间分成双字节的基本多语言平面 (Basic Multilingual Pla

ne BMP) 和 4 字节的辅助多语言平面 (Supplementary Multilingual Plane SMP) 两种

bull BMPndash Unicode 的基本平面或基本多语言平面 BMP 对应于 ISOIEC 10646-1 的第 00组的 00 平面( BMP )即 Unicode 与 ISOIEC 10646 的 BMP 中的字符编码完全一致

bull SMPndash 鉴于 Unicode 原有的 16位元空间不足以应用从 Unicode 31版本开始设立了 16 个辅助平面使 Unicode 的可使用空间由六万多字增至约一百万字

ndash 原有的 Unicode双字节空间称为基本平面或基本多语言平面 BMP 辅助多语言平面 SMP 字符要用 4 字节来储存

ndash 第一辅助平面摆放拼音文字(主要为现时已不再使用的文字)及符号范围在 U+10000 - U+1FFFD

ndash 第二辅助平面又称为表意文字补充平面 (Supplementary Ideographic Plane 简称 SIP) 现时摆放ldquo中日韩统汉字扩展 B 区rdquo共 43253 个汉字范围在 U+20000 - U+2FFFD

ndash 第三至十三辅助平面尚未使用ndash 第十四辅助平面又称为特殊用途补充平面 (Supplementary Special-purpose Pl

ane 简称 SSP) 摆放 Language tags 和 Variation Selectors 它们都是控制字符范围在 U+E0000 - U+E01FF

ndash 第十五至十六辅助平面都是私人使用区它们的范围是 U+F0000 - U+FFFFD 及 U+100000 - U+1000FD

bull Unicode 字符集的具体编码方式参加第 4小节ldquo 4 UTFrdquo

2 ISOIEC 10646

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull ISOIEC 10646 标准由 ISO 与 IEC 联合成立的 ISOIEC JTC1SC2WG2 制定ndash JTC 1 ( Joint Technical Committee 1 on Information

technology ISOIEC信息技术联合技术委员会 1 )负责信息技术方面标准的制定工作

ndash SC 2 ( SubCommittee 2 on Coded character sets 编码字符集分会 2 )下的 WG 2 ( Working Group 2 on Universal coded character set 通用编码字符集工作组 2 )负责制定国际通用字符编码标准即后来公布的 ISOIEC 10646

发展历史bull 1984年 ISO 的一些会员国发起制定新的国际字符编码标准同年 4月 ISO

与 IEC 联合成立 ISOIEC JTC1SC2WG2 1987年 3月制定出编码架构1992年 6月投票通过第二版国际标准草案

bull 1993年 5月推出 10646 标准时将内容分成两个部分标准首先发布的是其中的第 1 个部分(体系结构与基本多文种平面)的第 1版( Edition 1 ) ISOIEC 10646-11993 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane(信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

bull 2000年 3月推出 10646 标准第一个部分的第 2版( Edition 2 ) ISOIEC 10646-12000 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane

bull 2001年 10月推出 10646 标准第 2版的第二个部分(辅助平面)的第 1版( Edition 1 ) ISOIEC 10646-22001 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 2 Supplementary Planes

bull 2003年 10月推出的 10646新标准(第 1版 Edition 1 )将老标准中的两个部分标准合并成了一个单一的标准 ISOIEC 106462003 Information technology -- Universal Multiple- Octet Coded Character Set (UCS) 后来又于 2010年 2012年和 2014年分别推出了 ISOIEC 106462010 (第 2版)ISOIEC 106462012 (第 3版)和 ISOIEC 106462014 (第 4版)

UCS 通用字符集bull 通用字符集( Universal Character Set UCS )是

ISOIEC 10646 标准所定义的字符编码方式采用 4字节编码又称为 Universal Multiple-Octet Coded Character Set (通用多八位编码字符集)

bull 通用字符集是所有包括了其他字符集它保证了与其他字符集的双向兼容即如果你将任何文本字符串翻译到 UCS 格式然后再翻译回原编码你不会丢失任何信息

bull UCS 包含了已知语言的所有字符除了拉丁语希腊语斯拉夫语希伯来语阿拉伯语亚美尼亚语格鲁吉亚语还包括中文日文韩文这样的象形文字 UCS 还包括大量的图形印刷数学科学符号

名字与组合字符bull UCS 不仅给每个字符分配一个代码而且赋予了

一个正式的名字表示一个 UCS 或 Unicode值的十六进制数通常在前面加上ldquo U+rdquo 例如ldquo U+0041rdquo代表字符ldquo Ardquo

bull UCS里有些编码点分配给了组合字符组合字符机制允许在任何字符后加上重音符或其他指示标记 这在科学符号中特别有用 比如数学方程式和国际音标字母 可能会需要在一个基本字符后组合上一个或多个指示标记

实现级别bull 并不是所有的系统都需要支持像组合字符这样的的先进

机制因此 ISO 10646 指定了如下三种实现级别ndash 级别 1不支持组合字符和韩语 Hangul Jamo 字符 ( 一种特

别的 更加复杂的韩国文的编码 使用两个或三个子字符来编码一个韩文音节 )

ndash 级别 2类似于级别 1 但在某些文字中允许一列固定的组合字符 (例如 希伯来文 阿拉伯文 Devangari 孟加拉语 果鲁穆奇语 Gujarati Oriya 泰米尔语 Telugo 印 埃纳德语 Malayalam 泰国语和老挝语 ) 因为如果没有最起码的几个组合字符 UCS就不能完整地表达这些语言

ndash 级别 3支持所有的 UCS 字符如可以在任意一个字符上加上一个箭头或 和一个 tilde(颚化符号即字母上面的~ )

编码方式bull UCS 有如下两种编码方式

ndash UCS-2与 Unicode 的 2 字节编码基本一样ndash UCS-4 4 字节编码目前是在 UCS-2 前加

上 2 个全零的字节bull UCS 还有 UTF 编码方式参见下面第 4小节ldquo 4 UTFrdquo

3 Unicode 与 ISOIEC 10646bull 关系

ndash 历史上存在两个独立的尝试创立单一字符集的组织即国际标准化组织( ISO )和多语言软件制造商组成的统一码协会组织( Unicodeorg )前者开发的 ISO 10646项目后者开发的 Unicode项目因此最初制定了不同的标准

ndash 1991年前后两个项目的参与者都认识到世界不需要两个不兼容的字符集于是它们开始合并双方的工作成果并为创立一个单一编码表而协同工作

ndash 从 Unicode20开始 Unicode采用了与 ISO 10646-1相同的字库和字码 ISO 也承诺 ISO10646 将不会替超出 U+10FFFF 的 UCS-4 编码赋值以使得两者保持一致

ndash 两个项目仍都存在并独立地公布各自的标准但 Unicode协会和 ISOIEC JTC1SC2 都同意保持两者标准的码表兼容并紧密地共同调整任何未来的扩展

异同bull Unicode协会公布的 Unicode 标准包含了 ISO 10646-1 实现级别

3 的基本多文种平面在两个标准里所有的字符都在相同的位置并且有相同的名字

bull ISO 10646 标准就像 ISO 8859 标准一样只不过是一个简单的字符集表它定义了一些编码的别名指定了一些与标准有关的术语并包括了规范说明指定了怎样使用 UCS连接其他 ISO 标准的实现等

bull Unicode 标准额外定义了许多与字符有关的语义符号学并详细说明了绘制某些语言(如阿拉伯语)表达形式的算法处理双向文字(比如拉丁文和希伯来文的混合文字)的算法排序与字符串比较所需的算法等等

bull 考虑到 Unicode 标准有一个易记的名字既便宜又包括更多的辅助信息因而它使用得更广泛然而

bull 一般认为用于打印 ISO 10646-1 标准的字体在某些方面的质量要高于用于打印 Unicode 20 的专业字体设计者总是被建议说要两个标准都实现但一些提供的样例字形有显著的区别 ISO 10646-1 标准同样使用四种不同的风格变体来显示表意文字如中文日文和韩文 (CJK) 而 Unicode 20 的表里只有中文的变体

4 UTFbull Unicode 和 UCS 都是一个字符集可以看作为内码bull UTF ( UnicodeUCS Transformation Format 统一码

通用字符集转换格式)是一种编码方式它的出现是因为 Unicode 和 UCS 不适宜在某些场合直接传输和处理

bull UCS 和 Unicode 只是分配整数给字符的编码表现在存在好几种将一串字符表示为一串字节的方法(如高或低位字节在前)

bull 最显而易见的两种方法是将 UCS 和 Unicode 文本存储为 2 个 或 4 个字节序列的串这两种方法的正式名称分别为 UCS-2 和 UCS-4

bull 常用的 UTF具体编码方式有 UTF-8 UTF-16 和 UTF-32

UTF-8

bull UTF-8 是 UTF 的一种具体编码方式在 ISO 10646-1 的附录 R 和 IETF 的 RFC 2279 里定义

bull 由于要使文档中的文字与 ASCII兼容故 UTF-8 选择了使用可变长度字节来储存 Unicode 和 UCS 例如ndash ASCII 字母继续使用 1 字节储存ndash 重音文字希腊字母或西里尔字母等使用 2 字节来储存ndash 常用的汉字就要使用 3 字节ndash 辅助平面字符则使用 4 字节ndash 即 ASCII 不作变换其他字符做变长编码每个字符 1~4 字节

bull UTF-8 通常作为外码bull 在 UTF-8 文件的开首很多时都放置一个 U+FEFF 字符

(UTF-8 以 EF BB BF 代表 ) 以显示这个文字档案是以UTF-8 编码

UTF-8 的优点bull 与 CPU 字节顺序无关可以在不同平台之间交流

bull 容错能力高任何一个字节损坏后最多只会导致一个编码码位损失不会链锁错误 ( 如 GB 码错一个字节就会整行乱码 )

UTF-8 的缺点bull UTF-8 使用可变长度字节储存使计算机程序设计变得复杂 (故此在计算机程序或操作系统内部多采用 UCS-2 编码 )

bull 在旧式的中文日文及朝鲜文编码之中每字符都使用 2 字节储存而 UTF-8 须使用 3 字节 (采用 UTF-16 编码则可只使用 2字节储存 )

bull 泰语以往使用的 ISO 8859-11 每字符只使用 1 字节储存而 UTF-8 须使用 3 字节

UTF-8储存的多字节串字符bull U-00000000 - U-0000007F 0xxxxxxx bull U-00000080 - U-000007FF 110xxxxx 10xxxxxx

bull U-00000800 - U-0000FFFF 1110xxxx 10xxxxxx

10xxxxxx bull U-00010000 - U-001FFFFF 11110xxx 10xxxxx

x 10xxxxxx 10xxxxxx bull 在多字节串中第一个字节的开头ldquo 1rdquo 的数目就

是整个串中字节的数目bull 每个使用 UTF-8储存的字符除了第一个字节外其余字节的头两个位元都是以 10 开始使文字处理器能够较快地找出每个字符的开始位置

UTF-16bull UTF-16 是 UTF 的另一种具体编码方式在 ISO 1064

6-1 的附录 Q 和 IETF 的 RFC 2781 里定义bull UTF-16 是变长码( 2 或 4 字节)大致相当于 20位编码值在 0 到 0x10FFFF 之间基本上就是 Unicode 编码的实现 UTF-16 与 CPU 字序有关但因为最省空间常作为网络传输的外码 UTF-16 是 Unicode 的完美编码

bull lt0x10000 的直接用其对应的 16位整数编码位于 0x10000 ~ 0x10FFFF 之间的用 0xD800~0xDBFF 的 16位整数后跟 0xDC00~0xDFFF 的 16位整数的 4 字节编码 gt 0x10FFFF 的不能用 UTF-16 表示

bull 在 Unicode 的 BMP 中定义的字符(无论是拉丁字母汉字或其他文字或符号)一律使用 2 字节存储而在辅助平面定义的字符则以两个 2 字节的值来存储

UTF-16 的特点bull UTF-16比起 UTF-8 的好处在于大部分字符都以固定长

度的 2 字节存储但 UTF-16却无法相容于 ASCII 编码bull UTF-16 有两种编码模式即大尾序( big Endian 高位字节在前)和小尾序( little Endian 高位字节在后)储存形式(一般來說以 Macintosh 制作和存储的文字使用大尾序格式以 Microsoft 或 Linux 制作和存储的文字使用小尾序格式)

bull 为了弄区分 UTF-16 文件的大小尾序在 UTF-16 文件的开头都会放置一个 U+FEFF 字符作为字节顺序标记 (UTF-16LE 以 FF FE代表 UTF-16BE 以 FE FF代表 ) 以显示该文档是以 UTF-16 编码的

UTF-32

bull UTF-32 仅使用了 Unicode范围 (0 到 0x10FFFF) 的 32位编码相当于 UCS-4 的子集

bull 由于 Unicode 和 ISOIEC 10646 的编码和结构与前面讲过的 GB 13000 类似或等价这里就不再做详细的介绍

5支持bull 现在 UnicodeUCS 已经获得了十分广泛的支

持ndash网络与浏览器(如 HTML 4050 XML 与 IE

Safari Netscape Firefox Chrome Opera Edge 等)

ndash操作系统(如 Windows NT2000XPVista7810 Mac OS X iOS Android和 Linux )

ndash 编程语言新版本(如 CC++JavaObjective-CC Swift 等)

Unicode 代码的浏览器显示代码 字符标准名称 (英语 )

浏览器的显示

amp65 大写拉丁字母 A A

amp223 小写拉丁字母 Sharp S szlig

amp254 小写拉丁字母 Thorn thorn

amp916 大写希腊字母 Delta Δ

amp1049 大写斯拉夫字母 Short I Й

amp1511 希伯来字母 Qof ק

amp1605 阿拉伯字母 Meem م

amp3671 泰文数字 7 ๗amp4688 埃塞俄比亚音节文字 Qha ቐ

amp12354 日语平假名 A あamp12450 日语片假名 A アamp21494 简体汉字 叶 叶amp33865 繁体汉字 葉 葉amp50685 韩国音节文字 Yeob 엽

23 文字输出bull 文字输出是指将计算机内的字符编码通过计算机的输出设备(如显示器打印机喇叭)展现出所对应字符的图形或声音供人们阅读或聆听

bull 本节主要介绍文字图示输出的字形技术bull 文字声音输出属于语音合成只在本节的末尾作简单的介绍

231 字形技术bull 文字 = 图形bull 不论是象形文字中的单字还是拼音文字

中的字母都是用图形来表示的bull 在计算机里文字的表示 输出(显示和打

印)涉及ndash 字型ndash 字体ndash 字库

1字型bull 字型指构造和生成字形的方法一般可分为

ndash 点阵字 DOS 显卡 ROM 金山 科印特点似位图显示快占空间(字库大)放大后有马赛克效应

bull 显示字母 88 汉字 1616bull 打印 2424 4848 6464

ndash 矢量字单线条用于笔式绘图仪特点字库小算法简单难看

ndash 轮廓字用曲线描绘字的轮廓输出效果好所见即所得(WYSWYG) 可无级放大易实现空心 阴影 填充 变形等各种特效功能轮廓曲线一般采用样条曲线如 TrueType (Apple 1991 Mac OS Microsoft 1992 Windows 31)用的是二次 B 样条 Bezier曲线中文之星 RichWin采用的是三次 B 样条 Bezier曲线

字型种类

2字体bull 字体指字的形状风格如

ndash 汉字的

ndash 英文的

宋体楷体黑体仿宋

行楷隶书新魏幼圆

Times New Roman Arial Narrow Courier New

常用汉字字体bull 宋体mdashmdash宋体来自于北宋时雕版刻书所采用的欧体字(唐朝欧阳询体)宋体字的横顿拉捺挑钩别具特色间架平正疏密适中字体秀丽遒劲但笔画横细竖粗适合于刀刻不宜于手写现在宋体广泛用于印刷常来表现文档的正文

bull 仿宋体mdashmdash 1920年钱塘的丁辅之与丁善之等人将明代以后盛行的方廓形字体加以改造创造出长形和方形的聚珍仿宋后来演化为现在的仿宋体仿宋体比较接近于手写体为宋体和楷体的折中是采用的宋体的结构和楷体的笔法而成现常来表现打印文件以及文档的摘要和注释等

bull 黑体mdashmdash黑体是适应工艺美术的发展而出现的一种等线体是从日本引进的黑体的结构与宋体没有什么差别只是其笔画粗细一致健实粗壮主要用于文档的标题和重点及标语广告等方面

bull 楷体mdashmdash楷体源于楷书楷体的笔画圆浑笔调灵活结构端正美观但不宜于木板雕刻所以直到清末西洋的石板印刷术传入后才开始广泛用于印刷现代的楷体创造于 20世纪的二三十年代主要用于文档的正文(多用于中小学教材)也可用于工艺美术等方面

3字库bull 字库为一种文字的某一字体的所有字符的集合一般存放在一个磁盘文件中

bull 由于象形文字中单字的数量大(成千上万)而拼音文字中字母的数量小(不到一百个)所以字库的大小有很大的差别

bull 为了使文档界面丰富多彩常见的字处理软件都支持多种字体带有众多字库

4点阵字型的国家标准bull 我国已经公布了若干字体的点阵字型之国家标准

ndash GB 50071-19852001 信息技术 汉字编码字符集(基本集) 24 点阵字型

ndash GB 50072-19852001 信息技术 汉字编码字符集(辅助集) 24 点阵字型

ndash GB 5199-19862001 信息技术 汉字编码字符集(基本集) 16 点阵字型 宋体

ndash GB 6345-19862001 信息技术 汉字编码字符集(基本集) 32 点阵字型 宋体

ndash GB 12041-2001 信息技术 汉字编码字符集(基本集) 48点阵字型 宋体

ndash GB 17698-1999 信息技术 通用多八位编码字符集( I 区) 汉字 16 点阵字型

232 语音合成bull 文字的声音输出主要使用的是语音合成的技术bull 语音合成功能是ldquo文rarr语rdquo转换bull 文语转换 TTS (Text-To-Speech) 是将文本形式的信息转换成自然语音的一种技术其最终目标是使计算机输出清晰而又自然的声音

bull 英语的语音合成在上世纪 80年代就早已成熟而中文 汉语的合成现在也趋于成熟并有了广泛的应用(如汽车导航仪智能手机等)

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 14: 第一篇  媒体

214 扫描输入bull 扫描输入是指将图书期刊打印材料和印刷

品中的印刷体文字先通过扫描仪变成计算机中的数字图像然后再利用文字识别软件 OCR 自动转换成对应得文字编码并录入计算机

bull 目前我国研制的多种 OCR 软件的识别率已经达到 95 以上不过受印刷品质量的影响比较大

bull OCR = Optical Character Recognition Reader 光学字符识别 阅读器

bull 计算机识别印刷汉字的核心问题是抓住汉字的字形特征它主要体现在笔画和关键点上

bull 另一个核心问题是版面的分析与理解包括从图文混排版面中自动排除图形部分自动区分横排和竖排自动识别标题和正文对分栏文本实现自动对接等

bull 扫描输入方法除了用于印刷体文字的识别和输入外也可以用于手写体印刷文字的输入其文字识别的方法与印刷体文字类似也与手写实时输入的方法相关不过失去了笔顺信息属于整字识别类型

22 字符编码bull 字符编码包括西文编码中文编码和国际通

用字符编码本节的重点放在常用的编码标准上

bull 221 西文编码( ASCII 等)bull 222 中文编码( GB 2312 GB 13000

GBKGB 18030 )bull 223 国际通用字符编码( Unicode IS

OIEC 10646 )

221 西文编码bull 西文编码主要介绍 ASCII 字符集然后简

单介绍 IBM公司的 EBCDIC 和两种扩展 ASCII 显示字符表

bull 1 ASCII

bull 2 EBCDIC

bull 3扩展 ASCII 显示字符

1 ASCII

bull ASCII ( American Standard Code for Information Interchange 美国信息交换标准码)是 ANSI于 1963年提出 1968年确定的一种英文字符编码标准( ANSI X34-1986 )广泛应用于计算机网络和信息产业

bull ANSI = American National Standards Institute 美国国家标准协会

bull ASCII采用 7位二进制数的(共计 128 个)代码来表示字符(包括图示符和控制符)加上奇偶校验位(或最高位置 0 )则每个字符由 8位(一个字节)组成

ASCII 字符集

0 1 2 3 4 5 6 7

0 NUL DLE SP 0 P ` p

1 SOH DC1 1 A Q a q

2 STX DC2 ldquo 2 B R b r

3 ETX DC3 3 C S c s

4 EOT DC4 $ 4 D T d t

5 ENQ NAK 5 E U e u

6 ACK SYN amp 6 F V f v

7 BEL ETB lsquo 7 G W g w

8 BS CAN ( 8 H X h x

9 HT EM ) 9 I Y i y

A LF SUB J Z j z

B VT ESC + K [ k

C FF FS lt L l |

D CR GS - = M ] m

E SO RS gt N ^ n ~

F SI US O _ o DEL

bull ASCII 字符集以 32 个字符为一组bull 第一组( 0x00~0x1F )为控制符

(非打印符)用于数据处理 通信系统及其相应设备中的信息交换

bull 后面的除了第一个字符( SP空格符 0x20 )和最后一个字符( DEL删除符 0x7F )外全都是可打印(显示)的图示符包括ndash 第二组( 0x20 ~0x6F )的数字空格

和常用标点符号ndash 第三组( 0x40~0x5F )的大写拉丁字

母(即英文字母)与少数标点符号ndash 第四组( 0x60~0x7F )的小写拉丁字

母与少数标点符号

ASCII 的国际标准bull 1972年美国的国家标准 ASCII 与其若干拉丁语系国家的变体一起成为国际标准 ISO 6461972 ( Information processing -- ISO 7-bit coded character set for information interchange 信息处理mdashmdash ISO 用于信息交换的七位编码字符集)

bull 这些变体主要是将 ASCII 字符集中不常用的符号ldquo $ [ ] ^ ` | ~rdquo替换为他们各自语言的重音符号

bull 1987年 ISO 646 中的 ASCII部分成为 646 的国际参考版( IRV = International Reference Version ) ISO 646IRV1987 但是其中的美元符 $被替换为国际通用货币符 curren

bull 1991年推出的修订版 ISOIEC 646IRV1991 还原成原始的美国 ASCII 所以又被称为 ISO 646-US 或 US-ASCII

替代标准bull 由于 ISO 646 中各国的变体存在明显的兼容和统一问题现在已经作废

bull 有关编码已经被新的国际标准 ISOIEC 8859-1~16 19871998 ( Information processingtechnology -- 8-bit single-byte coded graphic character sets 信息处理 技术mdashmdash 8位单字节编码的图形字符集)所替代

bull 后来 ISO 646 与 ISOIEC 8859 标准又都被纳入 ISOIEC 1064619932003 ( Information technology -- Universal Multiple-Octet Coded Character Set (UCS) 信息技术mdashmdash通用多八位编码字符集 (UCS) )标准之中

bull 其中的标准编号 ISO 10646 = ISO 646 + 10000

标准化组织bull ANSI = American National Standards Institute 美

国国家标准协会bull ISO = International Organization for Standardization

国际标准化组织是由 153 个国家的国家标准协会联合组成的一个非政府国际组织总部(中央秘书处)设在瑞士的日内瓦负责制定适应商业和广泛社会需要的各种国际标准网址为 httpwwwisoorg

bull IEC = International Electrotechnical Commission 国际电工技术委员会是一个成立于 1906年 6月的国际标准化权威组织属于联合国的甲级咨询机构负责制定关于电工电子各方面的标准有 42 个会员国总部也设在瑞士的日内瓦网址为httpwwwiecch我国于 1958年 8月参加

2 EBCDIC

bull 西文的字符编码方案除了通用的 ASCII外还有 IBM公司于 1960年代初提出的 EBCDIC ( Extended Binary-Coded Decimal Interchange Code扩充的二进制编码的十进制交换码)

bull EBCDIC 现在仍然(仅)在 IBM 的 OS390 与 TPF 以及富士通 - 西门子的 BS2000OSD 等大型机的操作系统中使用

bull EBCDIC 是一种八位编码其字符的编码方案与ASCII 的完全不同

EBCDIC 字符集 0 1 2 3 4 5 6 7 8 9 A B C D E F

0 NUL DLE DS SP amp - 0

1 SOH DC1 SOS a j ~ A J 1

2 STX DC2 FS SYN b k s B K S 2

3 ETX TM c l t C L T 3

4 PF RES BYP PN d m u D M U 4

5 HT NL LF RS e n v E N V 5

6 LC BS ETB UC f o w F O W 6

7 DEL IL ESC EOT g p x G P X 7

8 GE CAN h q y H Q Y 8

9 RLF EM ` i r z I R Z 9

A SMM CC SM cent | |

B VT CU1 CU2 CU3 $

C FF IFS DC4 gt

D CR IGS ENQ NAK ( ) _ lsquo

E SO IRS ACK + lt =

F SI IUS BEL SUB | ldquo EO

3扩展 ASCII 显示字符bull ( 1 ) IBM PC

ndash IBM PC 的扩展 ASCII 显示字符由 IBM公司为其 PC 机制定可以由原始的 IBM PC 显示器在 DOS状态下显示

bull ( 2 ) Microsoft Windows ndash Microsoft Windows 的扩展 ASCII 显示字符由

微软公司为其Windows操作系统制定可以在Windows环境的西文状态下被显示

IBM PC 的扩展 ASCII 显示字符表

Microsoft Windows 的扩展 ASCII 显示字符表

222 中文编码bull 1 GB 1988 与 GB 2311

bull 2 GB 2312

bull 3汉字编码的辅助集bull 4 Big5

bull 5少数民族文字编码bull 6 GB 13000

bull 7 GBK 与 GB 18030

汉字编码bull 为了计算机处理汉字必须先对汉字进行编码由于汉

字数量大(《康熙字典》收字 47 035 个《汉语大字典》收字 54 678 个据统计在形成楷体后出现的汉字约有 9万个左右)显然不能像 ASCII那样用 7位或单字节来进行编码至少需要两个字节(最多可表示 6万5千多个字符)

bull 1980年我国制定了著名的 GB 2312-80双字节汉字编码标准(其中 GB 为ldquo国标rdquo这两个汉字的拼音首字母)收汉字 6 763 个

bull 1993年底又推出了等同于国际通用字符编码标准 ISOIEC 106461-1993 的国家标准 GB 130001-93 收汉字 20 902 个

bull 由于 GB 13000 与 GB 2312 的编码不兼容作为过渡2000年又公布了 GB 18030-2000 ( GBK )收汉字2万 7千个

1 GB 1988 与 GB 2311

bull 为了能够同时表示和处理汉字和英文实现中外文混排汉字编码必须兼容通用的 ASCII 编码因此1980年我国制定了与国际标准 ISO 6461972 (即ASCII )对应的国家标准 GB 1988-80《信息处理交换用的七位编码字符集》

bull 汉字成千上万不可能像 ASCII 一样只用单字节的七位来表示必须扩展到八位和多字节但是不能随意扩充而应该符合国际规范因此我国于 1980年又制定了与七位代码扩充到八位编码的国际标准 ISO 2022兼容的国家标准 GB 2311-80《信息处理交换用七位编码字符集的扩充办法》

GB 1988-80 ( ASCII )的代码结构图

行 0 1 2 3 4 5 6 7

0 SP

1 helliphellip

15

16

32个

控制符

94个

图形字符

DEL

GB 2311-80 的八位编码结构图列

行 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0 SP 100

1

helliphellip

14

15

C0

32个

控制符

GL

94或 96个

图形字符

DEL

C1

32个

控制符

GR

94或 96个

图形字符

1515

2 GB 2312

bull GB 2312-80《信息交换用汉字编码字符集 middot基本集》是我国制定的一个使用最广泛的汉字编码的强制性国家标准由原第四机械工业部的华北计算机研究所(后改名为电子工业部第十五研究所)起草1980年批准 1981年 5月 1日起实施

bull GB 2312-80 是在已有的国家标准 GB 1988-80(对应于 ISO 646 )和 GB 2311-80 (对应于 ISO 2022 )的基础上制定的采用与 ISO 2022兼容的GB 2311 之 7位到八位的代码扩充办法用双字节编码表示汉字与 ASCII兼容

收录的字符bull GB 2312 对应的是汉字的基本集共收汉字 6 763 个

可达到 9999 的使用频率因此除了极少数生僻的人名地名和古文外 GB 2312 中的汉字已经能基本满足平时的使用了

bull 除了汉字外 GB 2312 还收录了 682 个非汉字图形符号包括 202 个一般符号(含间隔符标点运算符和制表符) 60 个序号符 22 个数字符 52 个英文字母 169 个日文假名 48 个希腊字母 66 个俄文字母 26 个汉语拼音符号和 37 个汉语注音字母

bull 所以在 GB 2312-80 标准中共收录了( 6 763 汉字 + 682 非汉字图符 = ) 7 445 图形字符

两级汉字bull GB 2312 将其收录的六千多个汉字分成两个级别bull 一级汉字有 3 755 个都为使用频率高的常用汉

字为便于检索像字典那样将这些汉字按拼音字母顺序排列(同音字再按笔顺的横竖撇捺点折序排列)

bull 二级汉字有 3 008 个大部分较生僻不易掌握读音所以按部首顺序排列(同部首的字按笔画数排列同笔画数的字再按笔顺排列)

编码方案bull GB 2312 对所有图形字符(包括汉字和非汉字图符)都采用两个字节表示每个字节的低七位用于编码最高位全为 1 这样可以兼容 ASCII 编码(字节的最高位全为 0 )

bull 虽然在一个字节中最高位为 1 的符号位置有 128 个但从前面 GB 2311 的分析可知为了与 ASCII 的代码结构兼容保留了( 32 + 2 = ) 34 个控制符位置最后只有( 128 ndash 34 = ) 94 个符号位可供图形字符编码使用

bull 图形字符在代码表中的位置用区位码表示将码表分成94 个区对应于编码的第一个字节取值 0x21~0x7E 每个区又分成 94 个位对应于编码的第二个字节取值 0x21~0x7E (参见表 2-6 )

bull 例如ldquo中山大学rdquo的编码为中 (0xD6D0) 山 (0xC9BD) 大 (0xB4F3) 学 (0xD1A7)

GB 2312-80 字符集结构 20 21 22 helliphellip 7D 7E 7F

位号

区号

1 2 helliphellip 93 94

20

21~29 1~9 非汉字图符(682个)

2A~2F 10~15 空白区

30~57 16~55 一级汉字(3 755个)

58~77 56~87 二级汉字(3 008个)

78~7E 88~94 空白区

7F

第 1 区的部分非汉字图符

1区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 middot ˉ ˇ uml 々 mdash ~ hellip lsquo rsquo ldquo

17~32 rdquo 〔 〕 〈 〉 《 》 「 」 『 』 〖 〗 【 】 plusmn

33~48 times divide ∶ and or sum prod cup cap isin ∷ radic perp ∥ ang

49~64 ⊙ int ∮ equiv ≌ asymp ∽ prop ne ltu gtu le ge infin ∵ there4

65~80 deg prime Prime $ curren ¢ £ permil sect

81~94 rarr larr uarr darr

第 16 区的部分一级汉字

16区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 啊 阿 埃 挨 哎 唉 哀 皑 癌 蔼 矮 艾 碍 爱 隘 鞍

17~32 氨 安 俺 按 暗 岸 胺 案 肮 昂 盎 凹 敖 熬 翱 袄

33~48 傲 奥 懊 澳 芭 捌 扒 叭 吧 笆 八 疤 巴 拔 跋 靶

49~64 把 耙 坝 霸 罢 爸 白 柏 百 摆 佰 败 拜 稗 斑 班

65~80 搬 扳 般 颁 板 版 扮 拌 伴 瓣 半 办 绊 邦 帮 梆

81~94 榜 膀 绑 棒 磅 蚌 镑 傍 谤 苞 胞 包 褒 剥

第 56 区的部分二级汉字

56区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 亍 丌 兀 丐 廿 卅 丕 亘 丞 鬲 孬 噩 丨 禺 丿 匕

17~32 乇 夭 爻 卮 氐 囟 胤 馗 毓 睾 鼗 丶 亟 鼐 乜 乩

33~48 亓 芈 孛 啬 嘏 仄 厍 厝 厣 厥 厮 靥 赝 匚 叵 匦

49~64 匮 匾 赜 卦 卣 刂 刈 刎 刭 刳 刿 剀 剌 剞 剡 剜

65~80 蒯 剽 劂 劁 劐 劓 冂 罔 亻 仃 仉 仂 仨 仡 仫 仞

81~94 伛 仳 伢 佤 仵 伥 伧 伉 伫 佞 佧 攸 佚 佝

3汉字编码的辅助集bull 除了GB 2312基本集的 6 763 个简体汉字外国家标

准还给出了汉字编码字符集的多个辅助集bull 第二 四辅助集分别增加了 7 237 7 039 个简体汉字bull 第一和三 五辅助集则分别是与基本集和第二 四辅助集所对应的繁体汉字字符集的国家标准

bull 基本集加上辅助集共有 21 039 个简体汉字和 21 142个繁体汉字

bull 繁体汉字之所以多一些是因为在第一辅助集中有时几个繁体字对应一个简体字因此比基本集多出 103 个汉字

bull 基本集和辅助集的代码页之间靠其编码字节的最高位来区分

编码字符的分页标志

双字节汉字编码的页面结构第二字节 列号

行号 0 middot middot middot 32 33 34 helliphellip 125 126 127 128middot middot 160 161 162 helliphellip 254 255 0 middot middot 32

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

33 34 middot middot middot 126

1 2 middot middot middot 94

第四五辅助集 (7 039个汉字)

127

(兼容ASCII)

128 middot middot 160

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

161 162 middot middot middot 254

1 2 middot middot middot 94

第二三辅助集 (7 237个汉字)

1 2 middot middot middot 94

基本集第一辅助集 (6 763 6 866个汉字) (682个非汉字图符)

第一字节

255

4 Big5

bull 除了中国大陆使用的简体汉字外在台湾香港澳门和海外华侨社区使用的是传统的繁体汉字

bull 简体汉字使用 GB (国标)系列编码标准bull 繁体汉字一般使用的是 Big5内码(大五码)即台湾的ldquo资讯工业策进会rdquo发布的《标准交换码 (Ⅲ码 )》收录汉字 13 053 个

bull Big5内码是 1984年由台湾财团法人资讯工业策进会与宏碁 (Acer) 神通 (MiTAC) 佳佳零壹 (Zero One) 大众 (FIC) 等五大软件公司联合推出故称为大五码

BIG5 的代码空间低位字节

00 hellip 3F 40 hellip 7E 7F hellip A0 A1 hellip FE FF

高位字节

00middot

80

81middot

A0用户定义区 用户定义区

A1A2A3

非汉字图符 非汉字图符

A4middot

C6常用汉字 常用汉字

C7C8

用户定义区 用户定义区

C9middot

F9次常用汉字 次常用汉字

FAmiddot

FE用户定义区 用户定义区

FF

5少数民族文字编码bull 中国共有 56 个民族除了汉回满族一般使用汉语外其他少数民族大多有自己的民族语言

bull 我国各民族使用的 50 多种文字可以分为字母式结构文字和非字母式结构文字两大类ndash 字母式结构的有拉丁文斯拉夫文蒙古文维吾尔文哈萨克文藏文和朝鲜文等字母式

ndash 非字母式结构的有汉字象形文字图画文字和音节文字等bull 各民族文字的书写方向也有不同

ndash 壮文藏文朝鲜文彝文等的字从左到右行从上到下ndash 维吾尔文哈萨克文和柯尔克孜文等的字从右到左行从上

到下ndash 蒙古文和满文的字从上到下行从左到右ndash 汉字的书写方向有两种

bull 大陆的简体汉字的字从左到右行从上到下bull 港台与古旧书的繁体汉字的字从上到下行从右到左

国家标准bull 下面按发布时间列出若干已经公布的我国少数民族文字

编码集的国家标准(这些字符集一般分成两类对字母式结构文字采用八位编码对非字母式结构文字采用双字节编码)ndash GB 8045-87《信息处理交换用蒙古文七位和八位编码图形字

符集》收 82 个蒙古文字母和 12 个其他符号共 94 个字符ndash GB 12050-89《信息处理交换用维吾尔文编码图形字符集》收 32 个维吾尔文字母一个维吾尔文复合字符和 37 个其他符号共 70 个字符

ndash GB 12052-89《信息交换用朝鲜文编码字符集》收 5297 个朝鲜文字和 682 个其他符号(与 GB 2132同)共 5 979 个字符

ndash GB 13134-91《信息交换用彝文编码字符集》收 1165 个彝文字符和 688 个其他符号共 1853 个字符

ndash GB 16959-1997《信息技术 信息交换用藏文编码字符集 基本集》收 41 个藏文字母 36 个藏文主字 13 个元音字符12 个语音字符 10 个藏文数字 10 个半值符一个控制用连接符和 46 个其他藏文图形符号共 169 个字符

6 GB 13000bull GB 13000 是与 ISOIEC 10646 等价的国际通用编码字符集标准收汉字 2万多个但是与 GB 2312 和 GBK 不兼容

bull 1993年 5月 ISO 与 IEC 联合推出了可用于世界各种文字的通用编码字符集的国际标准的第 1部分ndash ISOIEC 10646-11993 Information technology -- Universal Multiple-Octe

t Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane (信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

ndash 该标准收字符 96万个几乎涵盖世界上的所有文字其中包含汉字 21 003 个

bull 1993年底我国推出了等同于国际标准 ISOIEC 1064611993 的强制性国家标准 ndash GB 130001-93《信息技术 通用多八位编码字符集( UCS ) 第一部分

体系结构与基本多文种平面》ndash 该标准于 1993年 12月 24日被国家技术监督局批准 1994年 8月 1日起实施

GB 13000 的主要特点

bull 世界各语言文种字符统一编码避免冲突便于国际交流

bull 编码空间宽阔连续每个图形字符的编码唯一(一字一码)不再存在兼容性问题

bull 按文种而不是按语言编码避免重复和浪费(如中日韩汉字的统一编码 CJK )

bull 与 GB 2312 和 GBK 不兼容

体系结构bull UCS 的体系结构是基于所谓ldquo多八位rdquo的而ldquo八位rdquo就是一个字节ldquo多八位rdquo就是多个字节

bull UCS采用 4 个字节来表征组面行位的四维空间bull 整个 UCS空间包含 128 个组( 0x00组 ~0x7F组)每组有 256 个平面( 0x00 平面 ~0xFF 平面)每个平面有 256 行每行又由 256 个字位构成

bull UCS共有( 128 times 256 = ) 32 768 个平面每个平面有( 256 times 256 = ) 65 536 个字位每个字位对应于一个字符的编码

bull 目前的编码只限于 00组已经定义的平面有 00组的00 平面mdashmdash称之为基本多文种平面 BMP ( Basic Multilingual Plane ) 及若干辅助平面

UCS 的全部编码空间

每个平面256times256 个

字位

00组 00 平面

00组 FF 平面

01组 00 平面

7F组 00 平面00

01组

7F组

UCS 的 00组

BMPbull BMP = Basic Multilingual Plane 基本多文种平面bull BMP 用作双八位编码字符集称之为 UCS-2 它被

分成四个区ndash A- 区(字位 0x0000~0x4DFF 有 19 903 个字位)用于

字母文字音节文字以及各种符号ndash I- 区(字位 0x4E00~0x9FFF 共 20 992 个字位)用于中日韩统一汉字( CJK )

ndash O- 区(字位 0xA000~0xDFFF 共 16 384 个字位)保留未来标准化用

ndash R- 区(字位 0xE000~0xFFFD 共 8 190 个字位)为 BMP 的限制使用区包括专用字符变形显现形式及兼容字符

BMP总貌

A-区

00~33 拼音文字(见下页)

34~3D 朝鲜文

3E~44 朝鲜文补充 -A

45~4D 朝鲜文补充 -B

I-区 4E~9F CJK统一汉字O-区 A0~DF

R-区

E0~F8 专用区

F9~FA CJK兼容汉字FB 拼音文字变形显现形式

FC~FD 阿拉伯文变形显现形式 -A

FE半形组合用标志

CJK兼容形式

小写变体

阿拉伯文变形显现形式 -B

FF 半形及全形字符 特殊字符

BMP 的0x00~0x33

行字母文字区

00 基本拉丁文 拉丁文-1补充

01 拉丁文扩充-A 拉丁文扩充-B

02 拉丁文扩充-B 国际音标扩充 进格修饰字符

03 组合用发音符 基本希腊文 希腊符号及哥普特文

04 西里尔文

05 美亚尼亚文 希伯来文(基本和扩充)

06 基本阿拉伯文 阿拉伯文扩充

07

08

09 梵文 孟加拉文

0A 锡克教文 古吉拉特文

0B 奥利雅文 泰米尔文

0C 泰卢固文 卡纳达文

0D 德拉维族文

0E 泰文 老挝文

0F

10 格鲁吉亚文

11 朝鲜文字母

12~1D

1E 拉丁文扩充增补

1F 希腊文扩充

20 广义标点 上下标 货币符号 符号组合用区分标志

21 类似字母的符号 数字形式 箭头

22 数学运算符

23 零杂技术用符号

24 控制图符 光学识别符 带括号的字母数字

25 制表符 方块元素 几何图形符

26 零杂符号

27 示意符等

28~2F

30 CJK符号和标点 平假名 片假名

31 注音 朝鲜文兼容字母 CJK零杂字符

32 带括号的CJK字母及月份

33 CJK兼容字符

留作将来标准化用

非图形字符

表示形式bull GB 13000提供了字符编码表示的两种替代使用的形式

ndash 双八位 BMP 形式( UCS-2 )mdashmdash允许使用 BMP 中的字符且每个字符用两个字节表示

ndash 肆八位正则形式( UCS-4 )mdashmdash允许使用 GB 13000 中的全部字符且每个字符用四个字节表示

bull 除了 UCS-24外还有另外两种变形的表示形式ndash UTF-8 (单字节 ~ 多字节)ndash UTF-16 (双字节和 4 字节与 UCS-2 等价)ndash 目前在工业上的实现均为 UTF-16 ( UCS-2 )和 UTF-8ndash UTF = Unicode UCS Transformation Format 统一码 UC

S转换格式bull 关于统一码我们会在下一小节详细介绍

7 GBK 与 GB 18030bull 由于 GB 13000 标准与 GB 2312 标准的字符编码不兼容作为过渡在国家信息技术标准化委员会的主持下制定了与 GB 2312兼容的《汉字内码扩展规范( GBK )》( K 为扩展的ldquo扩rdquo字的拼音首字母)并于 1995年 12月 15日由原国家技术监督局标准司联合原电子工业部科技与质量监督司作为指导性技术规范发布实施

bull 2000年 GBK又被国家标准 GB 18030-2000《信息技术 信息交换用汉字编码字符集 基本集的扩充》所代替该标准收汉字 2万 7千个

bull 与 GB 2312 一样 GB 18030 也为中国的强制性国家标准微软公司的 Windows XPVista78 中文版与苹果公司的 Mac OS X 和 iOS 谷歌公司的 Android (安卓)等操作系统已经全面支持 GBK

GB 18030 的码位范围分布

字节数 码位空间 码位数目

单字节 0x00~0x7F 128

双字节第 1字节 第 2字节

23 9400x81~0xFE

0x40~0x7E 0x80~0xFE

四字节第 1字节 第 2字节 第 3字节 第 4字节

1 587 6000x81~0xFE 0x30~0x39 0x81~0xFE 0x30~0x39

GB 18030的

总体结构图

收录字符bull 单字节部分mdashmdash收录了GBT 11383 的 0x00~0x7F 全部 128 个字符(似 ASCI

I )bull 双字节部分mdashmdash收录内容如下 (21 003 个汉字和 884 个符号共 21 887 个字符 )

ndash GB 130001-93 的全部 CJK 统一汉字字符 20 902 个( GB 2312 的编码汉字在双字节 2 区其他 CJK 统一汉字在双字节 34 区)

ndash GB 130001-93 的 CJK兼容区挑选出来的 21 个汉字ldquo郎凉秊helliphellip﨨﨩rdquo( 0xFD9C~0xFDA0 和 0xFE40~0xFE4F )

ndash GB 130001-93 中收录而 GB 2312未收录的台湾地区使用的图形字符 139 个ldquoˊˋ˙helliphelliprdquo( 0xA840~0xA895 和 0xA940~0XA988 )

ndash GB 130001-93收录的其他字符 31 ( 13)个(在双字节 5 区)ndash GB 2312-80 中的非汉字字符 682 个( 0xA1A1~0xA9EF )ndash GB 12345-90 的竖排标点符号 19 ( 29)个ldquo︵︶︹helliphellip︳︴rdquo( 0xA6D9~0xA6

F5 )ndash GB 2312-80未收录的 10 个小写罗马数字ldquoⅰⅱⅲhelliphellipⅸⅹrdquo( 0xA2A1~ 0xA2A

A )ndash GB 2312-80未收录的带音调的汉语拼音字母 5 ( 4)个ldquo ńňǹrdquo 以及 ɑ 和 ɡ ( 0

xA8BB~0xA8C0 )ndash 汉字数字零ldquo〇rdquo (0xA996) 和欧元符ldquoeurordquo (0xA2E3)ndash 表意文字描述符 13 个ldquohelliphelliprdquo( 0xA989~0xA995 )ndash 对 GB 130001-93增补的汉字和部首 构件 80 个ldquohelliphellip䶮rdquo( 0xFE50~ 0x

FEA0 )bull 四字节部分mdashmdash收录了上述双字节字符之外的包括 CJK 统一汉字扩充 A 在内

的 GB 130001-93 中的全部字符

GB 18030双字节部分的码位安排

类别 区名 码位范围 码位数 字符数 内容

符号区双字节 1区 A1A1~A9FE 846 718

GB 2312非汉字字符等

双字节 5区 A840~A9A0 192 166 台湾图符等

汉字区双字节 2区 B0A1~F7FE 6768 6763 GB 2312汉字双字节 3区 8140~A0FE 6080 6080 CJK统一汉字双字节 4区 AA40~FEA0 8160 8160 CJK统一汉字等

用户自定义区双字节用户区 1 AAA1~AFFE 564

用户自定义字符双字节用户区 2 F8A1~FEFE 658

双字节用户区 3 A140~A7A0 672

GB 18030双字节部分的编码空间结构图 尾字节

0x40larr――rarr0x7E 0x80larr――rarr0xA0 0xA1larr――――――――――――rarr0xFE

0x81 uarr darr

0xA0

0xA1 uarr darr

0xA7

0xA8 0xA9

首字节

0xAA uarr | | | | | | | | | | darr

0xFE

双字节 3区

汉字区6 080个码位

双字节用户区 3

用户自定义区672个码位

双字节 5区 图形符号区192个码位

双字节 4区

汉字区8 160个码位

双字节 1区

图形符号区564个码位

双字节 2区

汉字区6 768个码位

双字节用户区 1 用户自定义区564个码位

双字节用户区 2 用户自定义区658个码位

223 国际通用字符编码

bull Unicode (统一码)是由多语言软件制造商组成的统一码协会( httpwwwUnicodeorg)所制定一种国际字符的编码标准

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull 本节主要介绍这两种关系密切的主流国际字符编码标准的来历编码方案各自特点与相互关系

1 Unicode 统一码bull 发展历史

ndash 1987年施乐( Xerox )公司的 Joe Becker 与 Lee Collins 和苹果( Apple )公司的 Mark Davis 等人开始讨论统一编码 1987年 12月 Joe Becker造词 Unicode (统一码)含义为ldquo unique universal and uniform character encodingrdquo (单一通用统一的字符编码) 1989年 2月开始定期召开统一码会议 1989年 9月公布 Unicode草案

ndash 1991年 1月 3 日由 Xerox Apple Sun IBM Aldis Microsoft 等公司出资在美国加州成立了统一码协会( Unicode Consortium )并由协会设立非盈利性的统一码公司( Unicode Inc )后来 HP Adobe Borland Digital Lotus Novell 等公司也纷纷加入 1991年 1月成立统一码技术委员会 UTC 并制定了其规程

ndash 1991年 2月在 Ed Hart 的推动下进行了ldquo统一码对 10464 国际标准草案 1rdquo 的对话Unicode 与 ISOIEC 10646开始走向融合

ndash 1991年 8月发布 Unicode 标准 10版的第 1卷(体系结构非表意字符) 1992年6月发表 Unicode 10版的第 2卷(表意字符) 1993年 6月发布 Unicode 11版与 1993年 5月公布的 ISOIEC 10646-11993 实现了合并

ndash 1996年 7月发布 Unicode 20版ndash 1999年 9月发布 Unicode 30版ndash 2003年 4月发布 Unicode 40版(对应于 ISOIEC 106462003 ) 2004年 3月 31日发布 Unicode 401版 2005年 3月 31日发布 Unicode 410版

ndash 2006年 7月 14日发布 Unicode 50版 2008年 4月 4日发布 Unicode 51版 2009年 12月 22日发布 Unicode 52版

ndash 2010年 10月发布 Unicode 60版 2012年 1月发布 Unicode 61版(对应于 ISOIEC 106462012 ) 2012年 9月推出 Unicode 62版 2013年 9月推出 Unicode 63版

ndash 2014年 6月 16日发布 Unicode 70版 ndash 2015年 6月 17日发布 Unicode 80版

字符集bull Unicode 字符集的空间分成双字节的基本多语言平面 (Basic Multilingual Pla

ne BMP) 和 4 字节的辅助多语言平面 (Supplementary Multilingual Plane SMP) 两种

bull BMPndash Unicode 的基本平面或基本多语言平面 BMP 对应于 ISOIEC 10646-1 的第 00组的 00 平面( BMP )即 Unicode 与 ISOIEC 10646 的 BMP 中的字符编码完全一致

bull SMPndash 鉴于 Unicode 原有的 16位元空间不足以应用从 Unicode 31版本开始设立了 16 个辅助平面使 Unicode 的可使用空间由六万多字增至约一百万字

ndash 原有的 Unicode双字节空间称为基本平面或基本多语言平面 BMP 辅助多语言平面 SMP 字符要用 4 字节来储存

ndash 第一辅助平面摆放拼音文字(主要为现时已不再使用的文字)及符号范围在 U+10000 - U+1FFFD

ndash 第二辅助平面又称为表意文字补充平面 (Supplementary Ideographic Plane 简称 SIP) 现时摆放ldquo中日韩统汉字扩展 B 区rdquo共 43253 个汉字范围在 U+20000 - U+2FFFD

ndash 第三至十三辅助平面尚未使用ndash 第十四辅助平面又称为特殊用途补充平面 (Supplementary Special-purpose Pl

ane 简称 SSP) 摆放 Language tags 和 Variation Selectors 它们都是控制字符范围在 U+E0000 - U+E01FF

ndash 第十五至十六辅助平面都是私人使用区它们的范围是 U+F0000 - U+FFFFD 及 U+100000 - U+1000FD

bull Unicode 字符集的具体编码方式参加第 4小节ldquo 4 UTFrdquo

2 ISOIEC 10646

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull ISOIEC 10646 标准由 ISO 与 IEC 联合成立的 ISOIEC JTC1SC2WG2 制定ndash JTC 1 ( Joint Technical Committee 1 on Information

technology ISOIEC信息技术联合技术委员会 1 )负责信息技术方面标准的制定工作

ndash SC 2 ( SubCommittee 2 on Coded character sets 编码字符集分会 2 )下的 WG 2 ( Working Group 2 on Universal coded character set 通用编码字符集工作组 2 )负责制定国际通用字符编码标准即后来公布的 ISOIEC 10646

发展历史bull 1984年 ISO 的一些会员国发起制定新的国际字符编码标准同年 4月 ISO

与 IEC 联合成立 ISOIEC JTC1SC2WG2 1987年 3月制定出编码架构1992年 6月投票通过第二版国际标准草案

bull 1993年 5月推出 10646 标准时将内容分成两个部分标准首先发布的是其中的第 1 个部分(体系结构与基本多文种平面)的第 1版( Edition 1 ) ISOIEC 10646-11993 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane(信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

bull 2000年 3月推出 10646 标准第一个部分的第 2版( Edition 2 ) ISOIEC 10646-12000 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane

bull 2001年 10月推出 10646 标准第 2版的第二个部分(辅助平面)的第 1版( Edition 1 ) ISOIEC 10646-22001 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 2 Supplementary Planes

bull 2003年 10月推出的 10646新标准(第 1版 Edition 1 )将老标准中的两个部分标准合并成了一个单一的标准 ISOIEC 106462003 Information technology -- Universal Multiple- Octet Coded Character Set (UCS) 后来又于 2010年 2012年和 2014年分别推出了 ISOIEC 106462010 (第 2版)ISOIEC 106462012 (第 3版)和 ISOIEC 106462014 (第 4版)

UCS 通用字符集bull 通用字符集( Universal Character Set UCS )是

ISOIEC 10646 标准所定义的字符编码方式采用 4字节编码又称为 Universal Multiple-Octet Coded Character Set (通用多八位编码字符集)

bull 通用字符集是所有包括了其他字符集它保证了与其他字符集的双向兼容即如果你将任何文本字符串翻译到 UCS 格式然后再翻译回原编码你不会丢失任何信息

bull UCS 包含了已知语言的所有字符除了拉丁语希腊语斯拉夫语希伯来语阿拉伯语亚美尼亚语格鲁吉亚语还包括中文日文韩文这样的象形文字 UCS 还包括大量的图形印刷数学科学符号

名字与组合字符bull UCS 不仅给每个字符分配一个代码而且赋予了

一个正式的名字表示一个 UCS 或 Unicode值的十六进制数通常在前面加上ldquo U+rdquo 例如ldquo U+0041rdquo代表字符ldquo Ardquo

bull UCS里有些编码点分配给了组合字符组合字符机制允许在任何字符后加上重音符或其他指示标记 这在科学符号中特别有用 比如数学方程式和国际音标字母 可能会需要在一个基本字符后组合上一个或多个指示标记

实现级别bull 并不是所有的系统都需要支持像组合字符这样的的先进

机制因此 ISO 10646 指定了如下三种实现级别ndash 级别 1不支持组合字符和韩语 Hangul Jamo 字符 ( 一种特

别的 更加复杂的韩国文的编码 使用两个或三个子字符来编码一个韩文音节 )

ndash 级别 2类似于级别 1 但在某些文字中允许一列固定的组合字符 (例如 希伯来文 阿拉伯文 Devangari 孟加拉语 果鲁穆奇语 Gujarati Oriya 泰米尔语 Telugo 印 埃纳德语 Malayalam 泰国语和老挝语 ) 因为如果没有最起码的几个组合字符 UCS就不能完整地表达这些语言

ndash 级别 3支持所有的 UCS 字符如可以在任意一个字符上加上一个箭头或 和一个 tilde(颚化符号即字母上面的~ )

编码方式bull UCS 有如下两种编码方式

ndash UCS-2与 Unicode 的 2 字节编码基本一样ndash UCS-4 4 字节编码目前是在 UCS-2 前加

上 2 个全零的字节bull UCS 还有 UTF 编码方式参见下面第 4小节ldquo 4 UTFrdquo

3 Unicode 与 ISOIEC 10646bull 关系

ndash 历史上存在两个独立的尝试创立单一字符集的组织即国际标准化组织( ISO )和多语言软件制造商组成的统一码协会组织( Unicodeorg )前者开发的 ISO 10646项目后者开发的 Unicode项目因此最初制定了不同的标准

ndash 1991年前后两个项目的参与者都认识到世界不需要两个不兼容的字符集于是它们开始合并双方的工作成果并为创立一个单一编码表而协同工作

ndash 从 Unicode20开始 Unicode采用了与 ISO 10646-1相同的字库和字码 ISO 也承诺 ISO10646 将不会替超出 U+10FFFF 的 UCS-4 编码赋值以使得两者保持一致

ndash 两个项目仍都存在并独立地公布各自的标准但 Unicode协会和 ISOIEC JTC1SC2 都同意保持两者标准的码表兼容并紧密地共同调整任何未来的扩展

异同bull Unicode协会公布的 Unicode 标准包含了 ISO 10646-1 实现级别

3 的基本多文种平面在两个标准里所有的字符都在相同的位置并且有相同的名字

bull ISO 10646 标准就像 ISO 8859 标准一样只不过是一个简单的字符集表它定义了一些编码的别名指定了一些与标准有关的术语并包括了规范说明指定了怎样使用 UCS连接其他 ISO 标准的实现等

bull Unicode 标准额外定义了许多与字符有关的语义符号学并详细说明了绘制某些语言(如阿拉伯语)表达形式的算法处理双向文字(比如拉丁文和希伯来文的混合文字)的算法排序与字符串比较所需的算法等等

bull 考虑到 Unicode 标准有一个易记的名字既便宜又包括更多的辅助信息因而它使用得更广泛然而

bull 一般认为用于打印 ISO 10646-1 标准的字体在某些方面的质量要高于用于打印 Unicode 20 的专业字体设计者总是被建议说要两个标准都实现但一些提供的样例字形有显著的区别 ISO 10646-1 标准同样使用四种不同的风格变体来显示表意文字如中文日文和韩文 (CJK) 而 Unicode 20 的表里只有中文的变体

4 UTFbull Unicode 和 UCS 都是一个字符集可以看作为内码bull UTF ( UnicodeUCS Transformation Format 统一码

通用字符集转换格式)是一种编码方式它的出现是因为 Unicode 和 UCS 不适宜在某些场合直接传输和处理

bull UCS 和 Unicode 只是分配整数给字符的编码表现在存在好几种将一串字符表示为一串字节的方法(如高或低位字节在前)

bull 最显而易见的两种方法是将 UCS 和 Unicode 文本存储为 2 个 或 4 个字节序列的串这两种方法的正式名称分别为 UCS-2 和 UCS-4

bull 常用的 UTF具体编码方式有 UTF-8 UTF-16 和 UTF-32

UTF-8

bull UTF-8 是 UTF 的一种具体编码方式在 ISO 10646-1 的附录 R 和 IETF 的 RFC 2279 里定义

bull 由于要使文档中的文字与 ASCII兼容故 UTF-8 选择了使用可变长度字节来储存 Unicode 和 UCS 例如ndash ASCII 字母继续使用 1 字节储存ndash 重音文字希腊字母或西里尔字母等使用 2 字节来储存ndash 常用的汉字就要使用 3 字节ndash 辅助平面字符则使用 4 字节ndash 即 ASCII 不作变换其他字符做变长编码每个字符 1~4 字节

bull UTF-8 通常作为外码bull 在 UTF-8 文件的开首很多时都放置一个 U+FEFF 字符

(UTF-8 以 EF BB BF 代表 ) 以显示这个文字档案是以UTF-8 编码

UTF-8 的优点bull 与 CPU 字节顺序无关可以在不同平台之间交流

bull 容错能力高任何一个字节损坏后最多只会导致一个编码码位损失不会链锁错误 ( 如 GB 码错一个字节就会整行乱码 )

UTF-8 的缺点bull UTF-8 使用可变长度字节储存使计算机程序设计变得复杂 (故此在计算机程序或操作系统内部多采用 UCS-2 编码 )

bull 在旧式的中文日文及朝鲜文编码之中每字符都使用 2 字节储存而 UTF-8 须使用 3 字节 (采用 UTF-16 编码则可只使用 2字节储存 )

bull 泰语以往使用的 ISO 8859-11 每字符只使用 1 字节储存而 UTF-8 须使用 3 字节

UTF-8储存的多字节串字符bull U-00000000 - U-0000007F 0xxxxxxx bull U-00000080 - U-000007FF 110xxxxx 10xxxxxx

bull U-00000800 - U-0000FFFF 1110xxxx 10xxxxxx

10xxxxxx bull U-00010000 - U-001FFFFF 11110xxx 10xxxxx

x 10xxxxxx 10xxxxxx bull 在多字节串中第一个字节的开头ldquo 1rdquo 的数目就

是整个串中字节的数目bull 每个使用 UTF-8储存的字符除了第一个字节外其余字节的头两个位元都是以 10 开始使文字处理器能够较快地找出每个字符的开始位置

UTF-16bull UTF-16 是 UTF 的另一种具体编码方式在 ISO 1064

6-1 的附录 Q 和 IETF 的 RFC 2781 里定义bull UTF-16 是变长码( 2 或 4 字节)大致相当于 20位编码值在 0 到 0x10FFFF 之间基本上就是 Unicode 编码的实现 UTF-16 与 CPU 字序有关但因为最省空间常作为网络传输的外码 UTF-16 是 Unicode 的完美编码

bull lt0x10000 的直接用其对应的 16位整数编码位于 0x10000 ~ 0x10FFFF 之间的用 0xD800~0xDBFF 的 16位整数后跟 0xDC00~0xDFFF 的 16位整数的 4 字节编码 gt 0x10FFFF 的不能用 UTF-16 表示

bull 在 Unicode 的 BMP 中定义的字符(无论是拉丁字母汉字或其他文字或符号)一律使用 2 字节存储而在辅助平面定义的字符则以两个 2 字节的值来存储

UTF-16 的特点bull UTF-16比起 UTF-8 的好处在于大部分字符都以固定长

度的 2 字节存储但 UTF-16却无法相容于 ASCII 编码bull UTF-16 有两种编码模式即大尾序( big Endian 高位字节在前)和小尾序( little Endian 高位字节在后)储存形式(一般來說以 Macintosh 制作和存储的文字使用大尾序格式以 Microsoft 或 Linux 制作和存储的文字使用小尾序格式)

bull 为了弄区分 UTF-16 文件的大小尾序在 UTF-16 文件的开头都会放置一个 U+FEFF 字符作为字节顺序标记 (UTF-16LE 以 FF FE代表 UTF-16BE 以 FE FF代表 ) 以显示该文档是以 UTF-16 编码的

UTF-32

bull UTF-32 仅使用了 Unicode范围 (0 到 0x10FFFF) 的 32位编码相当于 UCS-4 的子集

bull 由于 Unicode 和 ISOIEC 10646 的编码和结构与前面讲过的 GB 13000 类似或等价这里就不再做详细的介绍

5支持bull 现在 UnicodeUCS 已经获得了十分广泛的支

持ndash网络与浏览器(如 HTML 4050 XML 与 IE

Safari Netscape Firefox Chrome Opera Edge 等)

ndash操作系统(如 Windows NT2000XPVista7810 Mac OS X iOS Android和 Linux )

ndash 编程语言新版本(如 CC++JavaObjective-CC Swift 等)

Unicode 代码的浏览器显示代码 字符标准名称 (英语 )

浏览器的显示

amp65 大写拉丁字母 A A

amp223 小写拉丁字母 Sharp S szlig

amp254 小写拉丁字母 Thorn thorn

amp916 大写希腊字母 Delta Δ

amp1049 大写斯拉夫字母 Short I Й

amp1511 希伯来字母 Qof ק

amp1605 阿拉伯字母 Meem م

amp3671 泰文数字 7 ๗amp4688 埃塞俄比亚音节文字 Qha ቐ

amp12354 日语平假名 A あamp12450 日语片假名 A アamp21494 简体汉字 叶 叶amp33865 繁体汉字 葉 葉amp50685 韩国音节文字 Yeob 엽

23 文字输出bull 文字输出是指将计算机内的字符编码通过计算机的输出设备(如显示器打印机喇叭)展现出所对应字符的图形或声音供人们阅读或聆听

bull 本节主要介绍文字图示输出的字形技术bull 文字声音输出属于语音合成只在本节的末尾作简单的介绍

231 字形技术bull 文字 = 图形bull 不论是象形文字中的单字还是拼音文字

中的字母都是用图形来表示的bull 在计算机里文字的表示 输出(显示和打

印)涉及ndash 字型ndash 字体ndash 字库

1字型bull 字型指构造和生成字形的方法一般可分为

ndash 点阵字 DOS 显卡 ROM 金山 科印特点似位图显示快占空间(字库大)放大后有马赛克效应

bull 显示字母 88 汉字 1616bull 打印 2424 4848 6464

ndash 矢量字单线条用于笔式绘图仪特点字库小算法简单难看

ndash 轮廓字用曲线描绘字的轮廓输出效果好所见即所得(WYSWYG) 可无级放大易实现空心 阴影 填充 变形等各种特效功能轮廓曲线一般采用样条曲线如 TrueType (Apple 1991 Mac OS Microsoft 1992 Windows 31)用的是二次 B 样条 Bezier曲线中文之星 RichWin采用的是三次 B 样条 Bezier曲线

字型种类

2字体bull 字体指字的形状风格如

ndash 汉字的

ndash 英文的

宋体楷体黑体仿宋

行楷隶书新魏幼圆

Times New Roman Arial Narrow Courier New

常用汉字字体bull 宋体mdashmdash宋体来自于北宋时雕版刻书所采用的欧体字(唐朝欧阳询体)宋体字的横顿拉捺挑钩别具特色间架平正疏密适中字体秀丽遒劲但笔画横细竖粗适合于刀刻不宜于手写现在宋体广泛用于印刷常来表现文档的正文

bull 仿宋体mdashmdash 1920年钱塘的丁辅之与丁善之等人将明代以后盛行的方廓形字体加以改造创造出长形和方形的聚珍仿宋后来演化为现在的仿宋体仿宋体比较接近于手写体为宋体和楷体的折中是采用的宋体的结构和楷体的笔法而成现常来表现打印文件以及文档的摘要和注释等

bull 黑体mdashmdash黑体是适应工艺美术的发展而出现的一种等线体是从日本引进的黑体的结构与宋体没有什么差别只是其笔画粗细一致健实粗壮主要用于文档的标题和重点及标语广告等方面

bull 楷体mdashmdash楷体源于楷书楷体的笔画圆浑笔调灵活结构端正美观但不宜于木板雕刻所以直到清末西洋的石板印刷术传入后才开始广泛用于印刷现代的楷体创造于 20世纪的二三十年代主要用于文档的正文(多用于中小学教材)也可用于工艺美术等方面

3字库bull 字库为一种文字的某一字体的所有字符的集合一般存放在一个磁盘文件中

bull 由于象形文字中单字的数量大(成千上万)而拼音文字中字母的数量小(不到一百个)所以字库的大小有很大的差别

bull 为了使文档界面丰富多彩常见的字处理软件都支持多种字体带有众多字库

4点阵字型的国家标准bull 我国已经公布了若干字体的点阵字型之国家标准

ndash GB 50071-19852001 信息技术 汉字编码字符集(基本集) 24 点阵字型

ndash GB 50072-19852001 信息技术 汉字编码字符集(辅助集) 24 点阵字型

ndash GB 5199-19862001 信息技术 汉字编码字符集(基本集) 16 点阵字型 宋体

ndash GB 6345-19862001 信息技术 汉字编码字符集(基本集) 32 点阵字型 宋体

ndash GB 12041-2001 信息技术 汉字编码字符集(基本集) 48点阵字型 宋体

ndash GB 17698-1999 信息技术 通用多八位编码字符集( I 区) 汉字 16 点阵字型

232 语音合成bull 文字的声音输出主要使用的是语音合成的技术bull 语音合成功能是ldquo文rarr语rdquo转换bull 文语转换 TTS (Text-To-Speech) 是将文本形式的信息转换成自然语音的一种技术其最终目标是使计算机输出清晰而又自然的声音

bull 英语的语音合成在上世纪 80年代就早已成熟而中文 汉语的合成现在也趋于成熟并有了广泛的应用(如汽车导航仪智能手机等)

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 15: 第一篇  媒体

bull 计算机识别印刷汉字的核心问题是抓住汉字的字形特征它主要体现在笔画和关键点上

bull 另一个核心问题是版面的分析与理解包括从图文混排版面中自动排除图形部分自动区分横排和竖排自动识别标题和正文对分栏文本实现自动对接等

bull 扫描输入方法除了用于印刷体文字的识别和输入外也可以用于手写体印刷文字的输入其文字识别的方法与印刷体文字类似也与手写实时输入的方法相关不过失去了笔顺信息属于整字识别类型

22 字符编码bull 字符编码包括西文编码中文编码和国际通

用字符编码本节的重点放在常用的编码标准上

bull 221 西文编码( ASCII 等)bull 222 中文编码( GB 2312 GB 13000

GBKGB 18030 )bull 223 国际通用字符编码( Unicode IS

OIEC 10646 )

221 西文编码bull 西文编码主要介绍 ASCII 字符集然后简

单介绍 IBM公司的 EBCDIC 和两种扩展 ASCII 显示字符表

bull 1 ASCII

bull 2 EBCDIC

bull 3扩展 ASCII 显示字符

1 ASCII

bull ASCII ( American Standard Code for Information Interchange 美国信息交换标准码)是 ANSI于 1963年提出 1968年确定的一种英文字符编码标准( ANSI X34-1986 )广泛应用于计算机网络和信息产业

bull ANSI = American National Standards Institute 美国国家标准协会

bull ASCII采用 7位二进制数的(共计 128 个)代码来表示字符(包括图示符和控制符)加上奇偶校验位(或最高位置 0 )则每个字符由 8位(一个字节)组成

ASCII 字符集

0 1 2 3 4 5 6 7

0 NUL DLE SP 0 P ` p

1 SOH DC1 1 A Q a q

2 STX DC2 ldquo 2 B R b r

3 ETX DC3 3 C S c s

4 EOT DC4 $ 4 D T d t

5 ENQ NAK 5 E U e u

6 ACK SYN amp 6 F V f v

7 BEL ETB lsquo 7 G W g w

8 BS CAN ( 8 H X h x

9 HT EM ) 9 I Y i y

A LF SUB J Z j z

B VT ESC + K [ k

C FF FS lt L l |

D CR GS - = M ] m

E SO RS gt N ^ n ~

F SI US O _ o DEL

bull ASCII 字符集以 32 个字符为一组bull 第一组( 0x00~0x1F )为控制符

(非打印符)用于数据处理 通信系统及其相应设备中的信息交换

bull 后面的除了第一个字符( SP空格符 0x20 )和最后一个字符( DEL删除符 0x7F )外全都是可打印(显示)的图示符包括ndash 第二组( 0x20 ~0x6F )的数字空格

和常用标点符号ndash 第三组( 0x40~0x5F )的大写拉丁字

母(即英文字母)与少数标点符号ndash 第四组( 0x60~0x7F )的小写拉丁字

母与少数标点符号

ASCII 的国际标准bull 1972年美国的国家标准 ASCII 与其若干拉丁语系国家的变体一起成为国际标准 ISO 6461972 ( Information processing -- ISO 7-bit coded character set for information interchange 信息处理mdashmdash ISO 用于信息交换的七位编码字符集)

bull 这些变体主要是将 ASCII 字符集中不常用的符号ldquo $ [ ] ^ ` | ~rdquo替换为他们各自语言的重音符号

bull 1987年 ISO 646 中的 ASCII部分成为 646 的国际参考版( IRV = International Reference Version ) ISO 646IRV1987 但是其中的美元符 $被替换为国际通用货币符 curren

bull 1991年推出的修订版 ISOIEC 646IRV1991 还原成原始的美国 ASCII 所以又被称为 ISO 646-US 或 US-ASCII

替代标准bull 由于 ISO 646 中各国的变体存在明显的兼容和统一问题现在已经作废

bull 有关编码已经被新的国际标准 ISOIEC 8859-1~16 19871998 ( Information processingtechnology -- 8-bit single-byte coded graphic character sets 信息处理 技术mdashmdash 8位单字节编码的图形字符集)所替代

bull 后来 ISO 646 与 ISOIEC 8859 标准又都被纳入 ISOIEC 1064619932003 ( Information technology -- Universal Multiple-Octet Coded Character Set (UCS) 信息技术mdashmdash通用多八位编码字符集 (UCS) )标准之中

bull 其中的标准编号 ISO 10646 = ISO 646 + 10000

标准化组织bull ANSI = American National Standards Institute 美

国国家标准协会bull ISO = International Organization for Standardization

国际标准化组织是由 153 个国家的国家标准协会联合组成的一个非政府国际组织总部(中央秘书处)设在瑞士的日内瓦负责制定适应商业和广泛社会需要的各种国际标准网址为 httpwwwisoorg

bull IEC = International Electrotechnical Commission 国际电工技术委员会是一个成立于 1906年 6月的国际标准化权威组织属于联合国的甲级咨询机构负责制定关于电工电子各方面的标准有 42 个会员国总部也设在瑞士的日内瓦网址为httpwwwiecch我国于 1958年 8月参加

2 EBCDIC

bull 西文的字符编码方案除了通用的 ASCII外还有 IBM公司于 1960年代初提出的 EBCDIC ( Extended Binary-Coded Decimal Interchange Code扩充的二进制编码的十进制交换码)

bull EBCDIC 现在仍然(仅)在 IBM 的 OS390 与 TPF 以及富士通 - 西门子的 BS2000OSD 等大型机的操作系统中使用

bull EBCDIC 是一种八位编码其字符的编码方案与ASCII 的完全不同

EBCDIC 字符集 0 1 2 3 4 5 6 7 8 9 A B C D E F

0 NUL DLE DS SP amp - 0

1 SOH DC1 SOS a j ~ A J 1

2 STX DC2 FS SYN b k s B K S 2

3 ETX TM c l t C L T 3

4 PF RES BYP PN d m u D M U 4

5 HT NL LF RS e n v E N V 5

6 LC BS ETB UC f o w F O W 6

7 DEL IL ESC EOT g p x G P X 7

8 GE CAN h q y H Q Y 8

9 RLF EM ` i r z I R Z 9

A SMM CC SM cent | |

B VT CU1 CU2 CU3 $

C FF IFS DC4 gt

D CR IGS ENQ NAK ( ) _ lsquo

E SO IRS ACK + lt =

F SI IUS BEL SUB | ldquo EO

3扩展 ASCII 显示字符bull ( 1 ) IBM PC

ndash IBM PC 的扩展 ASCII 显示字符由 IBM公司为其 PC 机制定可以由原始的 IBM PC 显示器在 DOS状态下显示

bull ( 2 ) Microsoft Windows ndash Microsoft Windows 的扩展 ASCII 显示字符由

微软公司为其Windows操作系统制定可以在Windows环境的西文状态下被显示

IBM PC 的扩展 ASCII 显示字符表

Microsoft Windows 的扩展 ASCII 显示字符表

222 中文编码bull 1 GB 1988 与 GB 2311

bull 2 GB 2312

bull 3汉字编码的辅助集bull 4 Big5

bull 5少数民族文字编码bull 6 GB 13000

bull 7 GBK 与 GB 18030

汉字编码bull 为了计算机处理汉字必须先对汉字进行编码由于汉

字数量大(《康熙字典》收字 47 035 个《汉语大字典》收字 54 678 个据统计在形成楷体后出现的汉字约有 9万个左右)显然不能像 ASCII那样用 7位或单字节来进行编码至少需要两个字节(最多可表示 6万5千多个字符)

bull 1980年我国制定了著名的 GB 2312-80双字节汉字编码标准(其中 GB 为ldquo国标rdquo这两个汉字的拼音首字母)收汉字 6 763 个

bull 1993年底又推出了等同于国际通用字符编码标准 ISOIEC 106461-1993 的国家标准 GB 130001-93 收汉字 20 902 个

bull 由于 GB 13000 与 GB 2312 的编码不兼容作为过渡2000年又公布了 GB 18030-2000 ( GBK )收汉字2万 7千个

1 GB 1988 与 GB 2311

bull 为了能够同时表示和处理汉字和英文实现中外文混排汉字编码必须兼容通用的 ASCII 编码因此1980年我国制定了与国际标准 ISO 6461972 (即ASCII )对应的国家标准 GB 1988-80《信息处理交换用的七位编码字符集》

bull 汉字成千上万不可能像 ASCII 一样只用单字节的七位来表示必须扩展到八位和多字节但是不能随意扩充而应该符合国际规范因此我国于 1980年又制定了与七位代码扩充到八位编码的国际标准 ISO 2022兼容的国家标准 GB 2311-80《信息处理交换用七位编码字符集的扩充办法》

GB 1988-80 ( ASCII )的代码结构图

行 0 1 2 3 4 5 6 7

0 SP

1 helliphellip

15

16

32个

控制符

94个

图形字符

DEL

GB 2311-80 的八位编码结构图列

行 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0 SP 100

1

helliphellip

14

15

C0

32个

控制符

GL

94或 96个

图形字符

DEL

C1

32个

控制符

GR

94或 96个

图形字符

1515

2 GB 2312

bull GB 2312-80《信息交换用汉字编码字符集 middot基本集》是我国制定的一个使用最广泛的汉字编码的强制性国家标准由原第四机械工业部的华北计算机研究所(后改名为电子工业部第十五研究所)起草1980年批准 1981年 5月 1日起实施

bull GB 2312-80 是在已有的国家标准 GB 1988-80(对应于 ISO 646 )和 GB 2311-80 (对应于 ISO 2022 )的基础上制定的采用与 ISO 2022兼容的GB 2311 之 7位到八位的代码扩充办法用双字节编码表示汉字与 ASCII兼容

收录的字符bull GB 2312 对应的是汉字的基本集共收汉字 6 763 个

可达到 9999 的使用频率因此除了极少数生僻的人名地名和古文外 GB 2312 中的汉字已经能基本满足平时的使用了

bull 除了汉字外 GB 2312 还收录了 682 个非汉字图形符号包括 202 个一般符号(含间隔符标点运算符和制表符) 60 个序号符 22 个数字符 52 个英文字母 169 个日文假名 48 个希腊字母 66 个俄文字母 26 个汉语拼音符号和 37 个汉语注音字母

bull 所以在 GB 2312-80 标准中共收录了( 6 763 汉字 + 682 非汉字图符 = ) 7 445 图形字符

两级汉字bull GB 2312 将其收录的六千多个汉字分成两个级别bull 一级汉字有 3 755 个都为使用频率高的常用汉

字为便于检索像字典那样将这些汉字按拼音字母顺序排列(同音字再按笔顺的横竖撇捺点折序排列)

bull 二级汉字有 3 008 个大部分较生僻不易掌握读音所以按部首顺序排列(同部首的字按笔画数排列同笔画数的字再按笔顺排列)

编码方案bull GB 2312 对所有图形字符(包括汉字和非汉字图符)都采用两个字节表示每个字节的低七位用于编码最高位全为 1 这样可以兼容 ASCII 编码(字节的最高位全为 0 )

bull 虽然在一个字节中最高位为 1 的符号位置有 128 个但从前面 GB 2311 的分析可知为了与 ASCII 的代码结构兼容保留了( 32 + 2 = ) 34 个控制符位置最后只有( 128 ndash 34 = ) 94 个符号位可供图形字符编码使用

bull 图形字符在代码表中的位置用区位码表示将码表分成94 个区对应于编码的第一个字节取值 0x21~0x7E 每个区又分成 94 个位对应于编码的第二个字节取值 0x21~0x7E (参见表 2-6 )

bull 例如ldquo中山大学rdquo的编码为中 (0xD6D0) 山 (0xC9BD) 大 (0xB4F3) 学 (0xD1A7)

GB 2312-80 字符集结构 20 21 22 helliphellip 7D 7E 7F

位号

区号

1 2 helliphellip 93 94

20

21~29 1~9 非汉字图符(682个)

2A~2F 10~15 空白区

30~57 16~55 一级汉字(3 755个)

58~77 56~87 二级汉字(3 008个)

78~7E 88~94 空白区

7F

第 1 区的部分非汉字图符

1区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 middot ˉ ˇ uml 々 mdash ~ hellip lsquo rsquo ldquo

17~32 rdquo 〔 〕 〈 〉 《 》 「 」 『 』 〖 〗 【 】 plusmn

33~48 times divide ∶ and or sum prod cup cap isin ∷ radic perp ∥ ang

49~64 ⊙ int ∮ equiv ≌ asymp ∽ prop ne ltu gtu le ge infin ∵ there4

65~80 deg prime Prime $ curren ¢ £ permil sect

81~94 rarr larr uarr darr

第 16 区的部分一级汉字

16区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 啊 阿 埃 挨 哎 唉 哀 皑 癌 蔼 矮 艾 碍 爱 隘 鞍

17~32 氨 安 俺 按 暗 岸 胺 案 肮 昂 盎 凹 敖 熬 翱 袄

33~48 傲 奥 懊 澳 芭 捌 扒 叭 吧 笆 八 疤 巴 拔 跋 靶

49~64 把 耙 坝 霸 罢 爸 白 柏 百 摆 佰 败 拜 稗 斑 班

65~80 搬 扳 般 颁 板 版 扮 拌 伴 瓣 半 办 绊 邦 帮 梆

81~94 榜 膀 绑 棒 磅 蚌 镑 傍 谤 苞 胞 包 褒 剥

第 56 区的部分二级汉字

56区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 亍 丌 兀 丐 廿 卅 丕 亘 丞 鬲 孬 噩 丨 禺 丿 匕

17~32 乇 夭 爻 卮 氐 囟 胤 馗 毓 睾 鼗 丶 亟 鼐 乜 乩

33~48 亓 芈 孛 啬 嘏 仄 厍 厝 厣 厥 厮 靥 赝 匚 叵 匦

49~64 匮 匾 赜 卦 卣 刂 刈 刎 刭 刳 刿 剀 剌 剞 剡 剜

65~80 蒯 剽 劂 劁 劐 劓 冂 罔 亻 仃 仉 仂 仨 仡 仫 仞

81~94 伛 仳 伢 佤 仵 伥 伧 伉 伫 佞 佧 攸 佚 佝

3汉字编码的辅助集bull 除了GB 2312基本集的 6 763 个简体汉字外国家标

准还给出了汉字编码字符集的多个辅助集bull 第二 四辅助集分别增加了 7 237 7 039 个简体汉字bull 第一和三 五辅助集则分别是与基本集和第二 四辅助集所对应的繁体汉字字符集的国家标准

bull 基本集加上辅助集共有 21 039 个简体汉字和 21 142个繁体汉字

bull 繁体汉字之所以多一些是因为在第一辅助集中有时几个繁体字对应一个简体字因此比基本集多出 103 个汉字

bull 基本集和辅助集的代码页之间靠其编码字节的最高位来区分

编码字符的分页标志

双字节汉字编码的页面结构第二字节 列号

行号 0 middot middot middot 32 33 34 helliphellip 125 126 127 128middot middot 160 161 162 helliphellip 254 255 0 middot middot 32

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

33 34 middot middot middot 126

1 2 middot middot middot 94

第四五辅助集 (7 039个汉字)

127

(兼容ASCII)

128 middot middot 160

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

161 162 middot middot middot 254

1 2 middot middot middot 94

第二三辅助集 (7 237个汉字)

1 2 middot middot middot 94

基本集第一辅助集 (6 763 6 866个汉字) (682个非汉字图符)

第一字节

255

4 Big5

bull 除了中国大陆使用的简体汉字外在台湾香港澳门和海外华侨社区使用的是传统的繁体汉字

bull 简体汉字使用 GB (国标)系列编码标准bull 繁体汉字一般使用的是 Big5内码(大五码)即台湾的ldquo资讯工业策进会rdquo发布的《标准交换码 (Ⅲ码 )》收录汉字 13 053 个

bull Big5内码是 1984年由台湾财团法人资讯工业策进会与宏碁 (Acer) 神通 (MiTAC) 佳佳零壹 (Zero One) 大众 (FIC) 等五大软件公司联合推出故称为大五码

BIG5 的代码空间低位字节

00 hellip 3F 40 hellip 7E 7F hellip A0 A1 hellip FE FF

高位字节

00middot

80

81middot

A0用户定义区 用户定义区

A1A2A3

非汉字图符 非汉字图符

A4middot

C6常用汉字 常用汉字

C7C8

用户定义区 用户定义区

C9middot

F9次常用汉字 次常用汉字

FAmiddot

FE用户定义区 用户定义区

FF

5少数民族文字编码bull 中国共有 56 个民族除了汉回满族一般使用汉语外其他少数民族大多有自己的民族语言

bull 我国各民族使用的 50 多种文字可以分为字母式结构文字和非字母式结构文字两大类ndash 字母式结构的有拉丁文斯拉夫文蒙古文维吾尔文哈萨克文藏文和朝鲜文等字母式

ndash 非字母式结构的有汉字象形文字图画文字和音节文字等bull 各民族文字的书写方向也有不同

ndash 壮文藏文朝鲜文彝文等的字从左到右行从上到下ndash 维吾尔文哈萨克文和柯尔克孜文等的字从右到左行从上

到下ndash 蒙古文和满文的字从上到下行从左到右ndash 汉字的书写方向有两种

bull 大陆的简体汉字的字从左到右行从上到下bull 港台与古旧书的繁体汉字的字从上到下行从右到左

国家标准bull 下面按发布时间列出若干已经公布的我国少数民族文字

编码集的国家标准(这些字符集一般分成两类对字母式结构文字采用八位编码对非字母式结构文字采用双字节编码)ndash GB 8045-87《信息处理交换用蒙古文七位和八位编码图形字

符集》收 82 个蒙古文字母和 12 个其他符号共 94 个字符ndash GB 12050-89《信息处理交换用维吾尔文编码图形字符集》收 32 个维吾尔文字母一个维吾尔文复合字符和 37 个其他符号共 70 个字符

ndash GB 12052-89《信息交换用朝鲜文编码字符集》收 5297 个朝鲜文字和 682 个其他符号(与 GB 2132同)共 5 979 个字符

ndash GB 13134-91《信息交换用彝文编码字符集》收 1165 个彝文字符和 688 个其他符号共 1853 个字符

ndash GB 16959-1997《信息技术 信息交换用藏文编码字符集 基本集》收 41 个藏文字母 36 个藏文主字 13 个元音字符12 个语音字符 10 个藏文数字 10 个半值符一个控制用连接符和 46 个其他藏文图形符号共 169 个字符

6 GB 13000bull GB 13000 是与 ISOIEC 10646 等价的国际通用编码字符集标准收汉字 2万多个但是与 GB 2312 和 GBK 不兼容

bull 1993年 5月 ISO 与 IEC 联合推出了可用于世界各种文字的通用编码字符集的国际标准的第 1部分ndash ISOIEC 10646-11993 Information technology -- Universal Multiple-Octe

t Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane (信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

ndash 该标准收字符 96万个几乎涵盖世界上的所有文字其中包含汉字 21 003 个

bull 1993年底我国推出了等同于国际标准 ISOIEC 1064611993 的强制性国家标准 ndash GB 130001-93《信息技术 通用多八位编码字符集( UCS ) 第一部分

体系结构与基本多文种平面》ndash 该标准于 1993年 12月 24日被国家技术监督局批准 1994年 8月 1日起实施

GB 13000 的主要特点

bull 世界各语言文种字符统一编码避免冲突便于国际交流

bull 编码空间宽阔连续每个图形字符的编码唯一(一字一码)不再存在兼容性问题

bull 按文种而不是按语言编码避免重复和浪费(如中日韩汉字的统一编码 CJK )

bull 与 GB 2312 和 GBK 不兼容

体系结构bull UCS 的体系结构是基于所谓ldquo多八位rdquo的而ldquo八位rdquo就是一个字节ldquo多八位rdquo就是多个字节

bull UCS采用 4 个字节来表征组面行位的四维空间bull 整个 UCS空间包含 128 个组( 0x00组 ~0x7F组)每组有 256 个平面( 0x00 平面 ~0xFF 平面)每个平面有 256 行每行又由 256 个字位构成

bull UCS共有( 128 times 256 = ) 32 768 个平面每个平面有( 256 times 256 = ) 65 536 个字位每个字位对应于一个字符的编码

bull 目前的编码只限于 00组已经定义的平面有 00组的00 平面mdashmdash称之为基本多文种平面 BMP ( Basic Multilingual Plane ) 及若干辅助平面

UCS 的全部编码空间

每个平面256times256 个

字位

00组 00 平面

00组 FF 平面

01组 00 平面

7F组 00 平面00

01组

7F组

UCS 的 00组

BMPbull BMP = Basic Multilingual Plane 基本多文种平面bull BMP 用作双八位编码字符集称之为 UCS-2 它被

分成四个区ndash A- 区(字位 0x0000~0x4DFF 有 19 903 个字位)用于

字母文字音节文字以及各种符号ndash I- 区(字位 0x4E00~0x9FFF 共 20 992 个字位)用于中日韩统一汉字( CJK )

ndash O- 区(字位 0xA000~0xDFFF 共 16 384 个字位)保留未来标准化用

ndash R- 区(字位 0xE000~0xFFFD 共 8 190 个字位)为 BMP 的限制使用区包括专用字符变形显现形式及兼容字符

BMP总貌

A-区

00~33 拼音文字(见下页)

34~3D 朝鲜文

3E~44 朝鲜文补充 -A

45~4D 朝鲜文补充 -B

I-区 4E~9F CJK统一汉字O-区 A0~DF

R-区

E0~F8 专用区

F9~FA CJK兼容汉字FB 拼音文字变形显现形式

FC~FD 阿拉伯文变形显现形式 -A

FE半形组合用标志

CJK兼容形式

小写变体

阿拉伯文变形显现形式 -B

FF 半形及全形字符 特殊字符

BMP 的0x00~0x33

行字母文字区

00 基本拉丁文 拉丁文-1补充

01 拉丁文扩充-A 拉丁文扩充-B

02 拉丁文扩充-B 国际音标扩充 进格修饰字符

03 组合用发音符 基本希腊文 希腊符号及哥普特文

04 西里尔文

05 美亚尼亚文 希伯来文(基本和扩充)

06 基本阿拉伯文 阿拉伯文扩充

07

08

09 梵文 孟加拉文

0A 锡克教文 古吉拉特文

0B 奥利雅文 泰米尔文

0C 泰卢固文 卡纳达文

0D 德拉维族文

0E 泰文 老挝文

0F

10 格鲁吉亚文

11 朝鲜文字母

12~1D

1E 拉丁文扩充增补

1F 希腊文扩充

20 广义标点 上下标 货币符号 符号组合用区分标志

21 类似字母的符号 数字形式 箭头

22 数学运算符

23 零杂技术用符号

24 控制图符 光学识别符 带括号的字母数字

25 制表符 方块元素 几何图形符

26 零杂符号

27 示意符等

28~2F

30 CJK符号和标点 平假名 片假名

31 注音 朝鲜文兼容字母 CJK零杂字符

32 带括号的CJK字母及月份

33 CJK兼容字符

留作将来标准化用

非图形字符

表示形式bull GB 13000提供了字符编码表示的两种替代使用的形式

ndash 双八位 BMP 形式( UCS-2 )mdashmdash允许使用 BMP 中的字符且每个字符用两个字节表示

ndash 肆八位正则形式( UCS-4 )mdashmdash允许使用 GB 13000 中的全部字符且每个字符用四个字节表示

bull 除了 UCS-24外还有另外两种变形的表示形式ndash UTF-8 (单字节 ~ 多字节)ndash UTF-16 (双字节和 4 字节与 UCS-2 等价)ndash 目前在工业上的实现均为 UTF-16 ( UCS-2 )和 UTF-8ndash UTF = Unicode UCS Transformation Format 统一码 UC

S转换格式bull 关于统一码我们会在下一小节详细介绍

7 GBK 与 GB 18030bull 由于 GB 13000 标准与 GB 2312 标准的字符编码不兼容作为过渡在国家信息技术标准化委员会的主持下制定了与 GB 2312兼容的《汉字内码扩展规范( GBK )》( K 为扩展的ldquo扩rdquo字的拼音首字母)并于 1995年 12月 15日由原国家技术监督局标准司联合原电子工业部科技与质量监督司作为指导性技术规范发布实施

bull 2000年 GBK又被国家标准 GB 18030-2000《信息技术 信息交换用汉字编码字符集 基本集的扩充》所代替该标准收汉字 2万 7千个

bull 与 GB 2312 一样 GB 18030 也为中国的强制性国家标准微软公司的 Windows XPVista78 中文版与苹果公司的 Mac OS X 和 iOS 谷歌公司的 Android (安卓)等操作系统已经全面支持 GBK

GB 18030 的码位范围分布

字节数 码位空间 码位数目

单字节 0x00~0x7F 128

双字节第 1字节 第 2字节

23 9400x81~0xFE

0x40~0x7E 0x80~0xFE

四字节第 1字节 第 2字节 第 3字节 第 4字节

1 587 6000x81~0xFE 0x30~0x39 0x81~0xFE 0x30~0x39

GB 18030的

总体结构图

收录字符bull 单字节部分mdashmdash收录了GBT 11383 的 0x00~0x7F 全部 128 个字符(似 ASCI

I )bull 双字节部分mdashmdash收录内容如下 (21 003 个汉字和 884 个符号共 21 887 个字符 )

ndash GB 130001-93 的全部 CJK 统一汉字字符 20 902 个( GB 2312 的编码汉字在双字节 2 区其他 CJK 统一汉字在双字节 34 区)

ndash GB 130001-93 的 CJK兼容区挑选出来的 21 个汉字ldquo郎凉秊helliphellip﨨﨩rdquo( 0xFD9C~0xFDA0 和 0xFE40~0xFE4F )

ndash GB 130001-93 中收录而 GB 2312未收录的台湾地区使用的图形字符 139 个ldquoˊˋ˙helliphelliprdquo( 0xA840~0xA895 和 0xA940~0XA988 )

ndash GB 130001-93收录的其他字符 31 ( 13)个(在双字节 5 区)ndash GB 2312-80 中的非汉字字符 682 个( 0xA1A1~0xA9EF )ndash GB 12345-90 的竖排标点符号 19 ( 29)个ldquo︵︶︹helliphellip︳︴rdquo( 0xA6D9~0xA6

F5 )ndash GB 2312-80未收录的 10 个小写罗马数字ldquoⅰⅱⅲhelliphellipⅸⅹrdquo( 0xA2A1~ 0xA2A

A )ndash GB 2312-80未收录的带音调的汉语拼音字母 5 ( 4)个ldquo ńňǹrdquo 以及 ɑ 和 ɡ ( 0

xA8BB~0xA8C0 )ndash 汉字数字零ldquo〇rdquo (0xA996) 和欧元符ldquoeurordquo (0xA2E3)ndash 表意文字描述符 13 个ldquohelliphelliprdquo( 0xA989~0xA995 )ndash 对 GB 130001-93增补的汉字和部首 构件 80 个ldquohelliphellip䶮rdquo( 0xFE50~ 0x

FEA0 )bull 四字节部分mdashmdash收录了上述双字节字符之外的包括 CJK 统一汉字扩充 A 在内

的 GB 130001-93 中的全部字符

GB 18030双字节部分的码位安排

类别 区名 码位范围 码位数 字符数 内容

符号区双字节 1区 A1A1~A9FE 846 718

GB 2312非汉字字符等

双字节 5区 A840~A9A0 192 166 台湾图符等

汉字区双字节 2区 B0A1~F7FE 6768 6763 GB 2312汉字双字节 3区 8140~A0FE 6080 6080 CJK统一汉字双字节 4区 AA40~FEA0 8160 8160 CJK统一汉字等

用户自定义区双字节用户区 1 AAA1~AFFE 564

用户自定义字符双字节用户区 2 F8A1~FEFE 658

双字节用户区 3 A140~A7A0 672

GB 18030双字节部分的编码空间结构图 尾字节

0x40larr――rarr0x7E 0x80larr――rarr0xA0 0xA1larr――――――――――――rarr0xFE

0x81 uarr darr

0xA0

0xA1 uarr darr

0xA7

0xA8 0xA9

首字节

0xAA uarr | | | | | | | | | | darr

0xFE

双字节 3区

汉字区6 080个码位

双字节用户区 3

用户自定义区672个码位

双字节 5区 图形符号区192个码位

双字节 4区

汉字区8 160个码位

双字节 1区

图形符号区564个码位

双字节 2区

汉字区6 768个码位

双字节用户区 1 用户自定义区564个码位

双字节用户区 2 用户自定义区658个码位

223 国际通用字符编码

bull Unicode (统一码)是由多语言软件制造商组成的统一码协会( httpwwwUnicodeorg)所制定一种国际字符的编码标准

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull 本节主要介绍这两种关系密切的主流国际字符编码标准的来历编码方案各自特点与相互关系

1 Unicode 统一码bull 发展历史

ndash 1987年施乐( Xerox )公司的 Joe Becker 与 Lee Collins 和苹果( Apple )公司的 Mark Davis 等人开始讨论统一编码 1987年 12月 Joe Becker造词 Unicode (统一码)含义为ldquo unique universal and uniform character encodingrdquo (单一通用统一的字符编码) 1989年 2月开始定期召开统一码会议 1989年 9月公布 Unicode草案

ndash 1991年 1月 3 日由 Xerox Apple Sun IBM Aldis Microsoft 等公司出资在美国加州成立了统一码协会( Unicode Consortium )并由协会设立非盈利性的统一码公司( Unicode Inc )后来 HP Adobe Borland Digital Lotus Novell 等公司也纷纷加入 1991年 1月成立统一码技术委员会 UTC 并制定了其规程

ndash 1991年 2月在 Ed Hart 的推动下进行了ldquo统一码对 10464 国际标准草案 1rdquo 的对话Unicode 与 ISOIEC 10646开始走向融合

ndash 1991年 8月发布 Unicode 标准 10版的第 1卷(体系结构非表意字符) 1992年6月发表 Unicode 10版的第 2卷(表意字符) 1993年 6月发布 Unicode 11版与 1993年 5月公布的 ISOIEC 10646-11993 实现了合并

ndash 1996年 7月发布 Unicode 20版ndash 1999年 9月发布 Unicode 30版ndash 2003年 4月发布 Unicode 40版(对应于 ISOIEC 106462003 ) 2004年 3月 31日发布 Unicode 401版 2005年 3月 31日发布 Unicode 410版

ndash 2006年 7月 14日发布 Unicode 50版 2008年 4月 4日发布 Unicode 51版 2009年 12月 22日发布 Unicode 52版

ndash 2010年 10月发布 Unicode 60版 2012年 1月发布 Unicode 61版(对应于 ISOIEC 106462012 ) 2012年 9月推出 Unicode 62版 2013年 9月推出 Unicode 63版

ndash 2014年 6月 16日发布 Unicode 70版 ndash 2015年 6月 17日发布 Unicode 80版

字符集bull Unicode 字符集的空间分成双字节的基本多语言平面 (Basic Multilingual Pla

ne BMP) 和 4 字节的辅助多语言平面 (Supplementary Multilingual Plane SMP) 两种

bull BMPndash Unicode 的基本平面或基本多语言平面 BMP 对应于 ISOIEC 10646-1 的第 00组的 00 平面( BMP )即 Unicode 与 ISOIEC 10646 的 BMP 中的字符编码完全一致

bull SMPndash 鉴于 Unicode 原有的 16位元空间不足以应用从 Unicode 31版本开始设立了 16 个辅助平面使 Unicode 的可使用空间由六万多字增至约一百万字

ndash 原有的 Unicode双字节空间称为基本平面或基本多语言平面 BMP 辅助多语言平面 SMP 字符要用 4 字节来储存

ndash 第一辅助平面摆放拼音文字(主要为现时已不再使用的文字)及符号范围在 U+10000 - U+1FFFD

ndash 第二辅助平面又称为表意文字补充平面 (Supplementary Ideographic Plane 简称 SIP) 现时摆放ldquo中日韩统汉字扩展 B 区rdquo共 43253 个汉字范围在 U+20000 - U+2FFFD

ndash 第三至十三辅助平面尚未使用ndash 第十四辅助平面又称为特殊用途补充平面 (Supplementary Special-purpose Pl

ane 简称 SSP) 摆放 Language tags 和 Variation Selectors 它们都是控制字符范围在 U+E0000 - U+E01FF

ndash 第十五至十六辅助平面都是私人使用区它们的范围是 U+F0000 - U+FFFFD 及 U+100000 - U+1000FD

bull Unicode 字符集的具体编码方式参加第 4小节ldquo 4 UTFrdquo

2 ISOIEC 10646

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull ISOIEC 10646 标准由 ISO 与 IEC 联合成立的 ISOIEC JTC1SC2WG2 制定ndash JTC 1 ( Joint Technical Committee 1 on Information

technology ISOIEC信息技术联合技术委员会 1 )负责信息技术方面标准的制定工作

ndash SC 2 ( SubCommittee 2 on Coded character sets 编码字符集分会 2 )下的 WG 2 ( Working Group 2 on Universal coded character set 通用编码字符集工作组 2 )负责制定国际通用字符编码标准即后来公布的 ISOIEC 10646

发展历史bull 1984年 ISO 的一些会员国发起制定新的国际字符编码标准同年 4月 ISO

与 IEC 联合成立 ISOIEC JTC1SC2WG2 1987年 3月制定出编码架构1992年 6月投票通过第二版国际标准草案

bull 1993年 5月推出 10646 标准时将内容分成两个部分标准首先发布的是其中的第 1 个部分(体系结构与基本多文种平面)的第 1版( Edition 1 ) ISOIEC 10646-11993 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane(信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

bull 2000年 3月推出 10646 标准第一个部分的第 2版( Edition 2 ) ISOIEC 10646-12000 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane

bull 2001年 10月推出 10646 标准第 2版的第二个部分(辅助平面)的第 1版( Edition 1 ) ISOIEC 10646-22001 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 2 Supplementary Planes

bull 2003年 10月推出的 10646新标准(第 1版 Edition 1 )将老标准中的两个部分标准合并成了一个单一的标准 ISOIEC 106462003 Information technology -- Universal Multiple- Octet Coded Character Set (UCS) 后来又于 2010年 2012年和 2014年分别推出了 ISOIEC 106462010 (第 2版)ISOIEC 106462012 (第 3版)和 ISOIEC 106462014 (第 4版)

UCS 通用字符集bull 通用字符集( Universal Character Set UCS )是

ISOIEC 10646 标准所定义的字符编码方式采用 4字节编码又称为 Universal Multiple-Octet Coded Character Set (通用多八位编码字符集)

bull 通用字符集是所有包括了其他字符集它保证了与其他字符集的双向兼容即如果你将任何文本字符串翻译到 UCS 格式然后再翻译回原编码你不会丢失任何信息

bull UCS 包含了已知语言的所有字符除了拉丁语希腊语斯拉夫语希伯来语阿拉伯语亚美尼亚语格鲁吉亚语还包括中文日文韩文这样的象形文字 UCS 还包括大量的图形印刷数学科学符号

名字与组合字符bull UCS 不仅给每个字符分配一个代码而且赋予了

一个正式的名字表示一个 UCS 或 Unicode值的十六进制数通常在前面加上ldquo U+rdquo 例如ldquo U+0041rdquo代表字符ldquo Ardquo

bull UCS里有些编码点分配给了组合字符组合字符机制允许在任何字符后加上重音符或其他指示标记 这在科学符号中特别有用 比如数学方程式和国际音标字母 可能会需要在一个基本字符后组合上一个或多个指示标记

实现级别bull 并不是所有的系统都需要支持像组合字符这样的的先进

机制因此 ISO 10646 指定了如下三种实现级别ndash 级别 1不支持组合字符和韩语 Hangul Jamo 字符 ( 一种特

别的 更加复杂的韩国文的编码 使用两个或三个子字符来编码一个韩文音节 )

ndash 级别 2类似于级别 1 但在某些文字中允许一列固定的组合字符 (例如 希伯来文 阿拉伯文 Devangari 孟加拉语 果鲁穆奇语 Gujarati Oriya 泰米尔语 Telugo 印 埃纳德语 Malayalam 泰国语和老挝语 ) 因为如果没有最起码的几个组合字符 UCS就不能完整地表达这些语言

ndash 级别 3支持所有的 UCS 字符如可以在任意一个字符上加上一个箭头或 和一个 tilde(颚化符号即字母上面的~ )

编码方式bull UCS 有如下两种编码方式

ndash UCS-2与 Unicode 的 2 字节编码基本一样ndash UCS-4 4 字节编码目前是在 UCS-2 前加

上 2 个全零的字节bull UCS 还有 UTF 编码方式参见下面第 4小节ldquo 4 UTFrdquo

3 Unicode 与 ISOIEC 10646bull 关系

ndash 历史上存在两个独立的尝试创立单一字符集的组织即国际标准化组织( ISO )和多语言软件制造商组成的统一码协会组织( Unicodeorg )前者开发的 ISO 10646项目后者开发的 Unicode项目因此最初制定了不同的标准

ndash 1991年前后两个项目的参与者都认识到世界不需要两个不兼容的字符集于是它们开始合并双方的工作成果并为创立一个单一编码表而协同工作

ndash 从 Unicode20开始 Unicode采用了与 ISO 10646-1相同的字库和字码 ISO 也承诺 ISO10646 将不会替超出 U+10FFFF 的 UCS-4 编码赋值以使得两者保持一致

ndash 两个项目仍都存在并独立地公布各自的标准但 Unicode协会和 ISOIEC JTC1SC2 都同意保持两者标准的码表兼容并紧密地共同调整任何未来的扩展

异同bull Unicode协会公布的 Unicode 标准包含了 ISO 10646-1 实现级别

3 的基本多文种平面在两个标准里所有的字符都在相同的位置并且有相同的名字

bull ISO 10646 标准就像 ISO 8859 标准一样只不过是一个简单的字符集表它定义了一些编码的别名指定了一些与标准有关的术语并包括了规范说明指定了怎样使用 UCS连接其他 ISO 标准的实现等

bull Unicode 标准额外定义了许多与字符有关的语义符号学并详细说明了绘制某些语言(如阿拉伯语)表达形式的算法处理双向文字(比如拉丁文和希伯来文的混合文字)的算法排序与字符串比较所需的算法等等

bull 考虑到 Unicode 标准有一个易记的名字既便宜又包括更多的辅助信息因而它使用得更广泛然而

bull 一般认为用于打印 ISO 10646-1 标准的字体在某些方面的质量要高于用于打印 Unicode 20 的专业字体设计者总是被建议说要两个标准都实现但一些提供的样例字形有显著的区别 ISO 10646-1 标准同样使用四种不同的风格变体来显示表意文字如中文日文和韩文 (CJK) 而 Unicode 20 的表里只有中文的变体

4 UTFbull Unicode 和 UCS 都是一个字符集可以看作为内码bull UTF ( UnicodeUCS Transformation Format 统一码

通用字符集转换格式)是一种编码方式它的出现是因为 Unicode 和 UCS 不适宜在某些场合直接传输和处理

bull UCS 和 Unicode 只是分配整数给字符的编码表现在存在好几种将一串字符表示为一串字节的方法(如高或低位字节在前)

bull 最显而易见的两种方法是将 UCS 和 Unicode 文本存储为 2 个 或 4 个字节序列的串这两种方法的正式名称分别为 UCS-2 和 UCS-4

bull 常用的 UTF具体编码方式有 UTF-8 UTF-16 和 UTF-32

UTF-8

bull UTF-8 是 UTF 的一种具体编码方式在 ISO 10646-1 的附录 R 和 IETF 的 RFC 2279 里定义

bull 由于要使文档中的文字与 ASCII兼容故 UTF-8 选择了使用可变长度字节来储存 Unicode 和 UCS 例如ndash ASCII 字母继续使用 1 字节储存ndash 重音文字希腊字母或西里尔字母等使用 2 字节来储存ndash 常用的汉字就要使用 3 字节ndash 辅助平面字符则使用 4 字节ndash 即 ASCII 不作变换其他字符做变长编码每个字符 1~4 字节

bull UTF-8 通常作为外码bull 在 UTF-8 文件的开首很多时都放置一个 U+FEFF 字符

(UTF-8 以 EF BB BF 代表 ) 以显示这个文字档案是以UTF-8 编码

UTF-8 的优点bull 与 CPU 字节顺序无关可以在不同平台之间交流

bull 容错能力高任何一个字节损坏后最多只会导致一个编码码位损失不会链锁错误 ( 如 GB 码错一个字节就会整行乱码 )

UTF-8 的缺点bull UTF-8 使用可变长度字节储存使计算机程序设计变得复杂 (故此在计算机程序或操作系统内部多采用 UCS-2 编码 )

bull 在旧式的中文日文及朝鲜文编码之中每字符都使用 2 字节储存而 UTF-8 须使用 3 字节 (采用 UTF-16 编码则可只使用 2字节储存 )

bull 泰语以往使用的 ISO 8859-11 每字符只使用 1 字节储存而 UTF-8 须使用 3 字节

UTF-8储存的多字节串字符bull U-00000000 - U-0000007F 0xxxxxxx bull U-00000080 - U-000007FF 110xxxxx 10xxxxxx

bull U-00000800 - U-0000FFFF 1110xxxx 10xxxxxx

10xxxxxx bull U-00010000 - U-001FFFFF 11110xxx 10xxxxx

x 10xxxxxx 10xxxxxx bull 在多字节串中第一个字节的开头ldquo 1rdquo 的数目就

是整个串中字节的数目bull 每个使用 UTF-8储存的字符除了第一个字节外其余字节的头两个位元都是以 10 开始使文字处理器能够较快地找出每个字符的开始位置

UTF-16bull UTF-16 是 UTF 的另一种具体编码方式在 ISO 1064

6-1 的附录 Q 和 IETF 的 RFC 2781 里定义bull UTF-16 是变长码( 2 或 4 字节)大致相当于 20位编码值在 0 到 0x10FFFF 之间基本上就是 Unicode 编码的实现 UTF-16 与 CPU 字序有关但因为最省空间常作为网络传输的外码 UTF-16 是 Unicode 的完美编码

bull lt0x10000 的直接用其对应的 16位整数编码位于 0x10000 ~ 0x10FFFF 之间的用 0xD800~0xDBFF 的 16位整数后跟 0xDC00~0xDFFF 的 16位整数的 4 字节编码 gt 0x10FFFF 的不能用 UTF-16 表示

bull 在 Unicode 的 BMP 中定义的字符(无论是拉丁字母汉字或其他文字或符号)一律使用 2 字节存储而在辅助平面定义的字符则以两个 2 字节的值来存储

UTF-16 的特点bull UTF-16比起 UTF-8 的好处在于大部分字符都以固定长

度的 2 字节存储但 UTF-16却无法相容于 ASCII 编码bull UTF-16 有两种编码模式即大尾序( big Endian 高位字节在前)和小尾序( little Endian 高位字节在后)储存形式(一般來說以 Macintosh 制作和存储的文字使用大尾序格式以 Microsoft 或 Linux 制作和存储的文字使用小尾序格式)

bull 为了弄区分 UTF-16 文件的大小尾序在 UTF-16 文件的开头都会放置一个 U+FEFF 字符作为字节顺序标记 (UTF-16LE 以 FF FE代表 UTF-16BE 以 FE FF代表 ) 以显示该文档是以 UTF-16 编码的

UTF-32

bull UTF-32 仅使用了 Unicode范围 (0 到 0x10FFFF) 的 32位编码相当于 UCS-4 的子集

bull 由于 Unicode 和 ISOIEC 10646 的编码和结构与前面讲过的 GB 13000 类似或等价这里就不再做详细的介绍

5支持bull 现在 UnicodeUCS 已经获得了十分广泛的支

持ndash网络与浏览器(如 HTML 4050 XML 与 IE

Safari Netscape Firefox Chrome Opera Edge 等)

ndash操作系统(如 Windows NT2000XPVista7810 Mac OS X iOS Android和 Linux )

ndash 编程语言新版本(如 CC++JavaObjective-CC Swift 等)

Unicode 代码的浏览器显示代码 字符标准名称 (英语 )

浏览器的显示

amp65 大写拉丁字母 A A

amp223 小写拉丁字母 Sharp S szlig

amp254 小写拉丁字母 Thorn thorn

amp916 大写希腊字母 Delta Δ

amp1049 大写斯拉夫字母 Short I Й

amp1511 希伯来字母 Qof ק

amp1605 阿拉伯字母 Meem م

amp3671 泰文数字 7 ๗amp4688 埃塞俄比亚音节文字 Qha ቐ

amp12354 日语平假名 A あamp12450 日语片假名 A アamp21494 简体汉字 叶 叶amp33865 繁体汉字 葉 葉amp50685 韩国音节文字 Yeob 엽

23 文字输出bull 文字输出是指将计算机内的字符编码通过计算机的输出设备(如显示器打印机喇叭)展现出所对应字符的图形或声音供人们阅读或聆听

bull 本节主要介绍文字图示输出的字形技术bull 文字声音输出属于语音合成只在本节的末尾作简单的介绍

231 字形技术bull 文字 = 图形bull 不论是象形文字中的单字还是拼音文字

中的字母都是用图形来表示的bull 在计算机里文字的表示 输出(显示和打

印)涉及ndash 字型ndash 字体ndash 字库

1字型bull 字型指构造和生成字形的方法一般可分为

ndash 点阵字 DOS 显卡 ROM 金山 科印特点似位图显示快占空间(字库大)放大后有马赛克效应

bull 显示字母 88 汉字 1616bull 打印 2424 4848 6464

ndash 矢量字单线条用于笔式绘图仪特点字库小算法简单难看

ndash 轮廓字用曲线描绘字的轮廓输出效果好所见即所得(WYSWYG) 可无级放大易实现空心 阴影 填充 变形等各种特效功能轮廓曲线一般采用样条曲线如 TrueType (Apple 1991 Mac OS Microsoft 1992 Windows 31)用的是二次 B 样条 Bezier曲线中文之星 RichWin采用的是三次 B 样条 Bezier曲线

字型种类

2字体bull 字体指字的形状风格如

ndash 汉字的

ndash 英文的

宋体楷体黑体仿宋

行楷隶书新魏幼圆

Times New Roman Arial Narrow Courier New

常用汉字字体bull 宋体mdashmdash宋体来自于北宋时雕版刻书所采用的欧体字(唐朝欧阳询体)宋体字的横顿拉捺挑钩别具特色间架平正疏密适中字体秀丽遒劲但笔画横细竖粗适合于刀刻不宜于手写现在宋体广泛用于印刷常来表现文档的正文

bull 仿宋体mdashmdash 1920年钱塘的丁辅之与丁善之等人将明代以后盛行的方廓形字体加以改造创造出长形和方形的聚珍仿宋后来演化为现在的仿宋体仿宋体比较接近于手写体为宋体和楷体的折中是采用的宋体的结构和楷体的笔法而成现常来表现打印文件以及文档的摘要和注释等

bull 黑体mdashmdash黑体是适应工艺美术的发展而出现的一种等线体是从日本引进的黑体的结构与宋体没有什么差别只是其笔画粗细一致健实粗壮主要用于文档的标题和重点及标语广告等方面

bull 楷体mdashmdash楷体源于楷书楷体的笔画圆浑笔调灵活结构端正美观但不宜于木板雕刻所以直到清末西洋的石板印刷术传入后才开始广泛用于印刷现代的楷体创造于 20世纪的二三十年代主要用于文档的正文(多用于中小学教材)也可用于工艺美术等方面

3字库bull 字库为一种文字的某一字体的所有字符的集合一般存放在一个磁盘文件中

bull 由于象形文字中单字的数量大(成千上万)而拼音文字中字母的数量小(不到一百个)所以字库的大小有很大的差别

bull 为了使文档界面丰富多彩常见的字处理软件都支持多种字体带有众多字库

4点阵字型的国家标准bull 我国已经公布了若干字体的点阵字型之国家标准

ndash GB 50071-19852001 信息技术 汉字编码字符集(基本集) 24 点阵字型

ndash GB 50072-19852001 信息技术 汉字编码字符集(辅助集) 24 点阵字型

ndash GB 5199-19862001 信息技术 汉字编码字符集(基本集) 16 点阵字型 宋体

ndash GB 6345-19862001 信息技术 汉字编码字符集(基本集) 32 点阵字型 宋体

ndash GB 12041-2001 信息技术 汉字编码字符集(基本集) 48点阵字型 宋体

ndash GB 17698-1999 信息技术 通用多八位编码字符集( I 区) 汉字 16 点阵字型

232 语音合成bull 文字的声音输出主要使用的是语音合成的技术bull 语音合成功能是ldquo文rarr语rdquo转换bull 文语转换 TTS (Text-To-Speech) 是将文本形式的信息转换成自然语音的一种技术其最终目标是使计算机输出清晰而又自然的声音

bull 英语的语音合成在上世纪 80年代就早已成熟而中文 汉语的合成现在也趋于成熟并有了广泛的应用(如汽车导航仪智能手机等)

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 16: 第一篇  媒体

22 字符编码bull 字符编码包括西文编码中文编码和国际通

用字符编码本节的重点放在常用的编码标准上

bull 221 西文编码( ASCII 等)bull 222 中文编码( GB 2312 GB 13000

GBKGB 18030 )bull 223 国际通用字符编码( Unicode IS

OIEC 10646 )

221 西文编码bull 西文编码主要介绍 ASCII 字符集然后简

单介绍 IBM公司的 EBCDIC 和两种扩展 ASCII 显示字符表

bull 1 ASCII

bull 2 EBCDIC

bull 3扩展 ASCII 显示字符

1 ASCII

bull ASCII ( American Standard Code for Information Interchange 美国信息交换标准码)是 ANSI于 1963年提出 1968年确定的一种英文字符编码标准( ANSI X34-1986 )广泛应用于计算机网络和信息产业

bull ANSI = American National Standards Institute 美国国家标准协会

bull ASCII采用 7位二进制数的(共计 128 个)代码来表示字符(包括图示符和控制符)加上奇偶校验位(或最高位置 0 )则每个字符由 8位(一个字节)组成

ASCII 字符集

0 1 2 3 4 5 6 7

0 NUL DLE SP 0 P ` p

1 SOH DC1 1 A Q a q

2 STX DC2 ldquo 2 B R b r

3 ETX DC3 3 C S c s

4 EOT DC4 $ 4 D T d t

5 ENQ NAK 5 E U e u

6 ACK SYN amp 6 F V f v

7 BEL ETB lsquo 7 G W g w

8 BS CAN ( 8 H X h x

9 HT EM ) 9 I Y i y

A LF SUB J Z j z

B VT ESC + K [ k

C FF FS lt L l |

D CR GS - = M ] m

E SO RS gt N ^ n ~

F SI US O _ o DEL

bull ASCII 字符集以 32 个字符为一组bull 第一组( 0x00~0x1F )为控制符

(非打印符)用于数据处理 通信系统及其相应设备中的信息交换

bull 后面的除了第一个字符( SP空格符 0x20 )和最后一个字符( DEL删除符 0x7F )外全都是可打印(显示)的图示符包括ndash 第二组( 0x20 ~0x6F )的数字空格

和常用标点符号ndash 第三组( 0x40~0x5F )的大写拉丁字

母(即英文字母)与少数标点符号ndash 第四组( 0x60~0x7F )的小写拉丁字

母与少数标点符号

ASCII 的国际标准bull 1972年美国的国家标准 ASCII 与其若干拉丁语系国家的变体一起成为国际标准 ISO 6461972 ( Information processing -- ISO 7-bit coded character set for information interchange 信息处理mdashmdash ISO 用于信息交换的七位编码字符集)

bull 这些变体主要是将 ASCII 字符集中不常用的符号ldquo $ [ ] ^ ` | ~rdquo替换为他们各自语言的重音符号

bull 1987年 ISO 646 中的 ASCII部分成为 646 的国际参考版( IRV = International Reference Version ) ISO 646IRV1987 但是其中的美元符 $被替换为国际通用货币符 curren

bull 1991年推出的修订版 ISOIEC 646IRV1991 还原成原始的美国 ASCII 所以又被称为 ISO 646-US 或 US-ASCII

替代标准bull 由于 ISO 646 中各国的变体存在明显的兼容和统一问题现在已经作废

bull 有关编码已经被新的国际标准 ISOIEC 8859-1~16 19871998 ( Information processingtechnology -- 8-bit single-byte coded graphic character sets 信息处理 技术mdashmdash 8位单字节编码的图形字符集)所替代

bull 后来 ISO 646 与 ISOIEC 8859 标准又都被纳入 ISOIEC 1064619932003 ( Information technology -- Universal Multiple-Octet Coded Character Set (UCS) 信息技术mdashmdash通用多八位编码字符集 (UCS) )标准之中

bull 其中的标准编号 ISO 10646 = ISO 646 + 10000

标准化组织bull ANSI = American National Standards Institute 美

国国家标准协会bull ISO = International Organization for Standardization

国际标准化组织是由 153 个国家的国家标准协会联合组成的一个非政府国际组织总部(中央秘书处)设在瑞士的日内瓦负责制定适应商业和广泛社会需要的各种国际标准网址为 httpwwwisoorg

bull IEC = International Electrotechnical Commission 国际电工技术委员会是一个成立于 1906年 6月的国际标准化权威组织属于联合国的甲级咨询机构负责制定关于电工电子各方面的标准有 42 个会员国总部也设在瑞士的日内瓦网址为httpwwwiecch我国于 1958年 8月参加

2 EBCDIC

bull 西文的字符编码方案除了通用的 ASCII外还有 IBM公司于 1960年代初提出的 EBCDIC ( Extended Binary-Coded Decimal Interchange Code扩充的二进制编码的十进制交换码)

bull EBCDIC 现在仍然(仅)在 IBM 的 OS390 与 TPF 以及富士通 - 西门子的 BS2000OSD 等大型机的操作系统中使用

bull EBCDIC 是一种八位编码其字符的编码方案与ASCII 的完全不同

EBCDIC 字符集 0 1 2 3 4 5 6 7 8 9 A B C D E F

0 NUL DLE DS SP amp - 0

1 SOH DC1 SOS a j ~ A J 1

2 STX DC2 FS SYN b k s B K S 2

3 ETX TM c l t C L T 3

4 PF RES BYP PN d m u D M U 4

5 HT NL LF RS e n v E N V 5

6 LC BS ETB UC f o w F O W 6

7 DEL IL ESC EOT g p x G P X 7

8 GE CAN h q y H Q Y 8

9 RLF EM ` i r z I R Z 9

A SMM CC SM cent | |

B VT CU1 CU2 CU3 $

C FF IFS DC4 gt

D CR IGS ENQ NAK ( ) _ lsquo

E SO IRS ACK + lt =

F SI IUS BEL SUB | ldquo EO

3扩展 ASCII 显示字符bull ( 1 ) IBM PC

ndash IBM PC 的扩展 ASCII 显示字符由 IBM公司为其 PC 机制定可以由原始的 IBM PC 显示器在 DOS状态下显示

bull ( 2 ) Microsoft Windows ndash Microsoft Windows 的扩展 ASCII 显示字符由

微软公司为其Windows操作系统制定可以在Windows环境的西文状态下被显示

IBM PC 的扩展 ASCII 显示字符表

Microsoft Windows 的扩展 ASCII 显示字符表

222 中文编码bull 1 GB 1988 与 GB 2311

bull 2 GB 2312

bull 3汉字编码的辅助集bull 4 Big5

bull 5少数民族文字编码bull 6 GB 13000

bull 7 GBK 与 GB 18030

汉字编码bull 为了计算机处理汉字必须先对汉字进行编码由于汉

字数量大(《康熙字典》收字 47 035 个《汉语大字典》收字 54 678 个据统计在形成楷体后出现的汉字约有 9万个左右)显然不能像 ASCII那样用 7位或单字节来进行编码至少需要两个字节(最多可表示 6万5千多个字符)

bull 1980年我国制定了著名的 GB 2312-80双字节汉字编码标准(其中 GB 为ldquo国标rdquo这两个汉字的拼音首字母)收汉字 6 763 个

bull 1993年底又推出了等同于国际通用字符编码标准 ISOIEC 106461-1993 的国家标准 GB 130001-93 收汉字 20 902 个

bull 由于 GB 13000 与 GB 2312 的编码不兼容作为过渡2000年又公布了 GB 18030-2000 ( GBK )收汉字2万 7千个

1 GB 1988 与 GB 2311

bull 为了能够同时表示和处理汉字和英文实现中外文混排汉字编码必须兼容通用的 ASCII 编码因此1980年我国制定了与国际标准 ISO 6461972 (即ASCII )对应的国家标准 GB 1988-80《信息处理交换用的七位编码字符集》

bull 汉字成千上万不可能像 ASCII 一样只用单字节的七位来表示必须扩展到八位和多字节但是不能随意扩充而应该符合国际规范因此我国于 1980年又制定了与七位代码扩充到八位编码的国际标准 ISO 2022兼容的国家标准 GB 2311-80《信息处理交换用七位编码字符集的扩充办法》

GB 1988-80 ( ASCII )的代码结构图

行 0 1 2 3 4 5 6 7

0 SP

1 helliphellip

15

16

32个

控制符

94个

图形字符

DEL

GB 2311-80 的八位编码结构图列

行 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0 SP 100

1

helliphellip

14

15

C0

32个

控制符

GL

94或 96个

图形字符

DEL

C1

32个

控制符

GR

94或 96个

图形字符

1515

2 GB 2312

bull GB 2312-80《信息交换用汉字编码字符集 middot基本集》是我国制定的一个使用最广泛的汉字编码的强制性国家标准由原第四机械工业部的华北计算机研究所(后改名为电子工业部第十五研究所)起草1980年批准 1981年 5月 1日起实施

bull GB 2312-80 是在已有的国家标准 GB 1988-80(对应于 ISO 646 )和 GB 2311-80 (对应于 ISO 2022 )的基础上制定的采用与 ISO 2022兼容的GB 2311 之 7位到八位的代码扩充办法用双字节编码表示汉字与 ASCII兼容

收录的字符bull GB 2312 对应的是汉字的基本集共收汉字 6 763 个

可达到 9999 的使用频率因此除了极少数生僻的人名地名和古文外 GB 2312 中的汉字已经能基本满足平时的使用了

bull 除了汉字外 GB 2312 还收录了 682 个非汉字图形符号包括 202 个一般符号(含间隔符标点运算符和制表符) 60 个序号符 22 个数字符 52 个英文字母 169 个日文假名 48 个希腊字母 66 个俄文字母 26 个汉语拼音符号和 37 个汉语注音字母

bull 所以在 GB 2312-80 标准中共收录了( 6 763 汉字 + 682 非汉字图符 = ) 7 445 图形字符

两级汉字bull GB 2312 将其收录的六千多个汉字分成两个级别bull 一级汉字有 3 755 个都为使用频率高的常用汉

字为便于检索像字典那样将这些汉字按拼音字母顺序排列(同音字再按笔顺的横竖撇捺点折序排列)

bull 二级汉字有 3 008 个大部分较生僻不易掌握读音所以按部首顺序排列(同部首的字按笔画数排列同笔画数的字再按笔顺排列)

编码方案bull GB 2312 对所有图形字符(包括汉字和非汉字图符)都采用两个字节表示每个字节的低七位用于编码最高位全为 1 这样可以兼容 ASCII 编码(字节的最高位全为 0 )

bull 虽然在一个字节中最高位为 1 的符号位置有 128 个但从前面 GB 2311 的分析可知为了与 ASCII 的代码结构兼容保留了( 32 + 2 = ) 34 个控制符位置最后只有( 128 ndash 34 = ) 94 个符号位可供图形字符编码使用

bull 图形字符在代码表中的位置用区位码表示将码表分成94 个区对应于编码的第一个字节取值 0x21~0x7E 每个区又分成 94 个位对应于编码的第二个字节取值 0x21~0x7E (参见表 2-6 )

bull 例如ldquo中山大学rdquo的编码为中 (0xD6D0) 山 (0xC9BD) 大 (0xB4F3) 学 (0xD1A7)

GB 2312-80 字符集结构 20 21 22 helliphellip 7D 7E 7F

位号

区号

1 2 helliphellip 93 94

20

21~29 1~9 非汉字图符(682个)

2A~2F 10~15 空白区

30~57 16~55 一级汉字(3 755个)

58~77 56~87 二级汉字(3 008个)

78~7E 88~94 空白区

7F

第 1 区的部分非汉字图符

1区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 middot ˉ ˇ uml 々 mdash ~ hellip lsquo rsquo ldquo

17~32 rdquo 〔 〕 〈 〉 《 》 「 」 『 』 〖 〗 【 】 plusmn

33~48 times divide ∶ and or sum prod cup cap isin ∷ radic perp ∥ ang

49~64 ⊙ int ∮ equiv ≌ asymp ∽ prop ne ltu gtu le ge infin ∵ there4

65~80 deg prime Prime $ curren ¢ £ permil sect

81~94 rarr larr uarr darr

第 16 区的部分一级汉字

16区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 啊 阿 埃 挨 哎 唉 哀 皑 癌 蔼 矮 艾 碍 爱 隘 鞍

17~32 氨 安 俺 按 暗 岸 胺 案 肮 昂 盎 凹 敖 熬 翱 袄

33~48 傲 奥 懊 澳 芭 捌 扒 叭 吧 笆 八 疤 巴 拔 跋 靶

49~64 把 耙 坝 霸 罢 爸 白 柏 百 摆 佰 败 拜 稗 斑 班

65~80 搬 扳 般 颁 板 版 扮 拌 伴 瓣 半 办 绊 邦 帮 梆

81~94 榜 膀 绑 棒 磅 蚌 镑 傍 谤 苞 胞 包 褒 剥

第 56 区的部分二级汉字

56区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 亍 丌 兀 丐 廿 卅 丕 亘 丞 鬲 孬 噩 丨 禺 丿 匕

17~32 乇 夭 爻 卮 氐 囟 胤 馗 毓 睾 鼗 丶 亟 鼐 乜 乩

33~48 亓 芈 孛 啬 嘏 仄 厍 厝 厣 厥 厮 靥 赝 匚 叵 匦

49~64 匮 匾 赜 卦 卣 刂 刈 刎 刭 刳 刿 剀 剌 剞 剡 剜

65~80 蒯 剽 劂 劁 劐 劓 冂 罔 亻 仃 仉 仂 仨 仡 仫 仞

81~94 伛 仳 伢 佤 仵 伥 伧 伉 伫 佞 佧 攸 佚 佝

3汉字编码的辅助集bull 除了GB 2312基本集的 6 763 个简体汉字外国家标

准还给出了汉字编码字符集的多个辅助集bull 第二 四辅助集分别增加了 7 237 7 039 个简体汉字bull 第一和三 五辅助集则分别是与基本集和第二 四辅助集所对应的繁体汉字字符集的国家标准

bull 基本集加上辅助集共有 21 039 个简体汉字和 21 142个繁体汉字

bull 繁体汉字之所以多一些是因为在第一辅助集中有时几个繁体字对应一个简体字因此比基本集多出 103 个汉字

bull 基本集和辅助集的代码页之间靠其编码字节的最高位来区分

编码字符的分页标志

双字节汉字编码的页面结构第二字节 列号

行号 0 middot middot middot 32 33 34 helliphellip 125 126 127 128middot middot 160 161 162 helliphellip 254 255 0 middot middot 32

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

33 34 middot middot middot 126

1 2 middot middot middot 94

第四五辅助集 (7 039个汉字)

127

(兼容ASCII)

128 middot middot 160

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

161 162 middot middot middot 254

1 2 middot middot middot 94

第二三辅助集 (7 237个汉字)

1 2 middot middot middot 94

基本集第一辅助集 (6 763 6 866个汉字) (682个非汉字图符)

第一字节

255

4 Big5

bull 除了中国大陆使用的简体汉字外在台湾香港澳门和海外华侨社区使用的是传统的繁体汉字

bull 简体汉字使用 GB (国标)系列编码标准bull 繁体汉字一般使用的是 Big5内码(大五码)即台湾的ldquo资讯工业策进会rdquo发布的《标准交换码 (Ⅲ码 )》收录汉字 13 053 个

bull Big5内码是 1984年由台湾财团法人资讯工业策进会与宏碁 (Acer) 神通 (MiTAC) 佳佳零壹 (Zero One) 大众 (FIC) 等五大软件公司联合推出故称为大五码

BIG5 的代码空间低位字节

00 hellip 3F 40 hellip 7E 7F hellip A0 A1 hellip FE FF

高位字节

00middot

80

81middot

A0用户定义区 用户定义区

A1A2A3

非汉字图符 非汉字图符

A4middot

C6常用汉字 常用汉字

C7C8

用户定义区 用户定义区

C9middot

F9次常用汉字 次常用汉字

FAmiddot

FE用户定义区 用户定义区

FF

5少数民族文字编码bull 中国共有 56 个民族除了汉回满族一般使用汉语外其他少数民族大多有自己的民族语言

bull 我国各民族使用的 50 多种文字可以分为字母式结构文字和非字母式结构文字两大类ndash 字母式结构的有拉丁文斯拉夫文蒙古文维吾尔文哈萨克文藏文和朝鲜文等字母式

ndash 非字母式结构的有汉字象形文字图画文字和音节文字等bull 各民族文字的书写方向也有不同

ndash 壮文藏文朝鲜文彝文等的字从左到右行从上到下ndash 维吾尔文哈萨克文和柯尔克孜文等的字从右到左行从上

到下ndash 蒙古文和满文的字从上到下行从左到右ndash 汉字的书写方向有两种

bull 大陆的简体汉字的字从左到右行从上到下bull 港台与古旧书的繁体汉字的字从上到下行从右到左

国家标准bull 下面按发布时间列出若干已经公布的我国少数民族文字

编码集的国家标准(这些字符集一般分成两类对字母式结构文字采用八位编码对非字母式结构文字采用双字节编码)ndash GB 8045-87《信息处理交换用蒙古文七位和八位编码图形字

符集》收 82 个蒙古文字母和 12 个其他符号共 94 个字符ndash GB 12050-89《信息处理交换用维吾尔文编码图形字符集》收 32 个维吾尔文字母一个维吾尔文复合字符和 37 个其他符号共 70 个字符

ndash GB 12052-89《信息交换用朝鲜文编码字符集》收 5297 个朝鲜文字和 682 个其他符号(与 GB 2132同)共 5 979 个字符

ndash GB 13134-91《信息交换用彝文编码字符集》收 1165 个彝文字符和 688 个其他符号共 1853 个字符

ndash GB 16959-1997《信息技术 信息交换用藏文编码字符集 基本集》收 41 个藏文字母 36 个藏文主字 13 个元音字符12 个语音字符 10 个藏文数字 10 个半值符一个控制用连接符和 46 个其他藏文图形符号共 169 个字符

6 GB 13000bull GB 13000 是与 ISOIEC 10646 等价的国际通用编码字符集标准收汉字 2万多个但是与 GB 2312 和 GBK 不兼容

bull 1993年 5月 ISO 与 IEC 联合推出了可用于世界各种文字的通用编码字符集的国际标准的第 1部分ndash ISOIEC 10646-11993 Information technology -- Universal Multiple-Octe

t Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane (信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

ndash 该标准收字符 96万个几乎涵盖世界上的所有文字其中包含汉字 21 003 个

bull 1993年底我国推出了等同于国际标准 ISOIEC 1064611993 的强制性国家标准 ndash GB 130001-93《信息技术 通用多八位编码字符集( UCS ) 第一部分

体系结构与基本多文种平面》ndash 该标准于 1993年 12月 24日被国家技术监督局批准 1994年 8月 1日起实施

GB 13000 的主要特点

bull 世界各语言文种字符统一编码避免冲突便于国际交流

bull 编码空间宽阔连续每个图形字符的编码唯一(一字一码)不再存在兼容性问题

bull 按文种而不是按语言编码避免重复和浪费(如中日韩汉字的统一编码 CJK )

bull 与 GB 2312 和 GBK 不兼容

体系结构bull UCS 的体系结构是基于所谓ldquo多八位rdquo的而ldquo八位rdquo就是一个字节ldquo多八位rdquo就是多个字节

bull UCS采用 4 个字节来表征组面行位的四维空间bull 整个 UCS空间包含 128 个组( 0x00组 ~0x7F组)每组有 256 个平面( 0x00 平面 ~0xFF 平面)每个平面有 256 行每行又由 256 个字位构成

bull UCS共有( 128 times 256 = ) 32 768 个平面每个平面有( 256 times 256 = ) 65 536 个字位每个字位对应于一个字符的编码

bull 目前的编码只限于 00组已经定义的平面有 00组的00 平面mdashmdash称之为基本多文种平面 BMP ( Basic Multilingual Plane ) 及若干辅助平面

UCS 的全部编码空间

每个平面256times256 个

字位

00组 00 平面

00组 FF 平面

01组 00 平面

7F组 00 平面00

01组

7F组

UCS 的 00组

BMPbull BMP = Basic Multilingual Plane 基本多文种平面bull BMP 用作双八位编码字符集称之为 UCS-2 它被

分成四个区ndash A- 区(字位 0x0000~0x4DFF 有 19 903 个字位)用于

字母文字音节文字以及各种符号ndash I- 区(字位 0x4E00~0x9FFF 共 20 992 个字位)用于中日韩统一汉字( CJK )

ndash O- 区(字位 0xA000~0xDFFF 共 16 384 个字位)保留未来标准化用

ndash R- 区(字位 0xE000~0xFFFD 共 8 190 个字位)为 BMP 的限制使用区包括专用字符变形显现形式及兼容字符

BMP总貌

A-区

00~33 拼音文字(见下页)

34~3D 朝鲜文

3E~44 朝鲜文补充 -A

45~4D 朝鲜文补充 -B

I-区 4E~9F CJK统一汉字O-区 A0~DF

R-区

E0~F8 专用区

F9~FA CJK兼容汉字FB 拼音文字变形显现形式

FC~FD 阿拉伯文变形显现形式 -A

FE半形组合用标志

CJK兼容形式

小写变体

阿拉伯文变形显现形式 -B

FF 半形及全形字符 特殊字符

BMP 的0x00~0x33

行字母文字区

00 基本拉丁文 拉丁文-1补充

01 拉丁文扩充-A 拉丁文扩充-B

02 拉丁文扩充-B 国际音标扩充 进格修饰字符

03 组合用发音符 基本希腊文 希腊符号及哥普特文

04 西里尔文

05 美亚尼亚文 希伯来文(基本和扩充)

06 基本阿拉伯文 阿拉伯文扩充

07

08

09 梵文 孟加拉文

0A 锡克教文 古吉拉特文

0B 奥利雅文 泰米尔文

0C 泰卢固文 卡纳达文

0D 德拉维族文

0E 泰文 老挝文

0F

10 格鲁吉亚文

11 朝鲜文字母

12~1D

1E 拉丁文扩充增补

1F 希腊文扩充

20 广义标点 上下标 货币符号 符号组合用区分标志

21 类似字母的符号 数字形式 箭头

22 数学运算符

23 零杂技术用符号

24 控制图符 光学识别符 带括号的字母数字

25 制表符 方块元素 几何图形符

26 零杂符号

27 示意符等

28~2F

30 CJK符号和标点 平假名 片假名

31 注音 朝鲜文兼容字母 CJK零杂字符

32 带括号的CJK字母及月份

33 CJK兼容字符

留作将来标准化用

非图形字符

表示形式bull GB 13000提供了字符编码表示的两种替代使用的形式

ndash 双八位 BMP 形式( UCS-2 )mdashmdash允许使用 BMP 中的字符且每个字符用两个字节表示

ndash 肆八位正则形式( UCS-4 )mdashmdash允许使用 GB 13000 中的全部字符且每个字符用四个字节表示

bull 除了 UCS-24外还有另外两种变形的表示形式ndash UTF-8 (单字节 ~ 多字节)ndash UTF-16 (双字节和 4 字节与 UCS-2 等价)ndash 目前在工业上的实现均为 UTF-16 ( UCS-2 )和 UTF-8ndash UTF = Unicode UCS Transformation Format 统一码 UC

S转换格式bull 关于统一码我们会在下一小节详细介绍

7 GBK 与 GB 18030bull 由于 GB 13000 标准与 GB 2312 标准的字符编码不兼容作为过渡在国家信息技术标准化委员会的主持下制定了与 GB 2312兼容的《汉字内码扩展规范( GBK )》( K 为扩展的ldquo扩rdquo字的拼音首字母)并于 1995年 12月 15日由原国家技术监督局标准司联合原电子工业部科技与质量监督司作为指导性技术规范发布实施

bull 2000年 GBK又被国家标准 GB 18030-2000《信息技术 信息交换用汉字编码字符集 基本集的扩充》所代替该标准收汉字 2万 7千个

bull 与 GB 2312 一样 GB 18030 也为中国的强制性国家标准微软公司的 Windows XPVista78 中文版与苹果公司的 Mac OS X 和 iOS 谷歌公司的 Android (安卓)等操作系统已经全面支持 GBK

GB 18030 的码位范围分布

字节数 码位空间 码位数目

单字节 0x00~0x7F 128

双字节第 1字节 第 2字节

23 9400x81~0xFE

0x40~0x7E 0x80~0xFE

四字节第 1字节 第 2字节 第 3字节 第 4字节

1 587 6000x81~0xFE 0x30~0x39 0x81~0xFE 0x30~0x39

GB 18030的

总体结构图

收录字符bull 单字节部分mdashmdash收录了GBT 11383 的 0x00~0x7F 全部 128 个字符(似 ASCI

I )bull 双字节部分mdashmdash收录内容如下 (21 003 个汉字和 884 个符号共 21 887 个字符 )

ndash GB 130001-93 的全部 CJK 统一汉字字符 20 902 个( GB 2312 的编码汉字在双字节 2 区其他 CJK 统一汉字在双字节 34 区)

ndash GB 130001-93 的 CJK兼容区挑选出来的 21 个汉字ldquo郎凉秊helliphellip﨨﨩rdquo( 0xFD9C~0xFDA0 和 0xFE40~0xFE4F )

ndash GB 130001-93 中收录而 GB 2312未收录的台湾地区使用的图形字符 139 个ldquoˊˋ˙helliphelliprdquo( 0xA840~0xA895 和 0xA940~0XA988 )

ndash GB 130001-93收录的其他字符 31 ( 13)个(在双字节 5 区)ndash GB 2312-80 中的非汉字字符 682 个( 0xA1A1~0xA9EF )ndash GB 12345-90 的竖排标点符号 19 ( 29)个ldquo︵︶︹helliphellip︳︴rdquo( 0xA6D9~0xA6

F5 )ndash GB 2312-80未收录的 10 个小写罗马数字ldquoⅰⅱⅲhelliphellipⅸⅹrdquo( 0xA2A1~ 0xA2A

A )ndash GB 2312-80未收录的带音调的汉语拼音字母 5 ( 4)个ldquo ńňǹrdquo 以及 ɑ 和 ɡ ( 0

xA8BB~0xA8C0 )ndash 汉字数字零ldquo〇rdquo (0xA996) 和欧元符ldquoeurordquo (0xA2E3)ndash 表意文字描述符 13 个ldquohelliphelliprdquo( 0xA989~0xA995 )ndash 对 GB 130001-93增补的汉字和部首 构件 80 个ldquohelliphellip䶮rdquo( 0xFE50~ 0x

FEA0 )bull 四字节部分mdashmdash收录了上述双字节字符之外的包括 CJK 统一汉字扩充 A 在内

的 GB 130001-93 中的全部字符

GB 18030双字节部分的码位安排

类别 区名 码位范围 码位数 字符数 内容

符号区双字节 1区 A1A1~A9FE 846 718

GB 2312非汉字字符等

双字节 5区 A840~A9A0 192 166 台湾图符等

汉字区双字节 2区 B0A1~F7FE 6768 6763 GB 2312汉字双字节 3区 8140~A0FE 6080 6080 CJK统一汉字双字节 4区 AA40~FEA0 8160 8160 CJK统一汉字等

用户自定义区双字节用户区 1 AAA1~AFFE 564

用户自定义字符双字节用户区 2 F8A1~FEFE 658

双字节用户区 3 A140~A7A0 672

GB 18030双字节部分的编码空间结构图 尾字节

0x40larr――rarr0x7E 0x80larr――rarr0xA0 0xA1larr――――――――――――rarr0xFE

0x81 uarr darr

0xA0

0xA1 uarr darr

0xA7

0xA8 0xA9

首字节

0xAA uarr | | | | | | | | | | darr

0xFE

双字节 3区

汉字区6 080个码位

双字节用户区 3

用户自定义区672个码位

双字节 5区 图形符号区192个码位

双字节 4区

汉字区8 160个码位

双字节 1区

图形符号区564个码位

双字节 2区

汉字区6 768个码位

双字节用户区 1 用户自定义区564个码位

双字节用户区 2 用户自定义区658个码位

223 国际通用字符编码

bull Unicode (统一码)是由多语言软件制造商组成的统一码协会( httpwwwUnicodeorg)所制定一种国际字符的编码标准

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull 本节主要介绍这两种关系密切的主流国际字符编码标准的来历编码方案各自特点与相互关系

1 Unicode 统一码bull 发展历史

ndash 1987年施乐( Xerox )公司的 Joe Becker 与 Lee Collins 和苹果( Apple )公司的 Mark Davis 等人开始讨论统一编码 1987年 12月 Joe Becker造词 Unicode (统一码)含义为ldquo unique universal and uniform character encodingrdquo (单一通用统一的字符编码) 1989年 2月开始定期召开统一码会议 1989年 9月公布 Unicode草案

ndash 1991年 1月 3 日由 Xerox Apple Sun IBM Aldis Microsoft 等公司出资在美国加州成立了统一码协会( Unicode Consortium )并由协会设立非盈利性的统一码公司( Unicode Inc )后来 HP Adobe Borland Digital Lotus Novell 等公司也纷纷加入 1991年 1月成立统一码技术委员会 UTC 并制定了其规程

ndash 1991年 2月在 Ed Hart 的推动下进行了ldquo统一码对 10464 国际标准草案 1rdquo 的对话Unicode 与 ISOIEC 10646开始走向融合

ndash 1991年 8月发布 Unicode 标准 10版的第 1卷(体系结构非表意字符) 1992年6月发表 Unicode 10版的第 2卷(表意字符) 1993年 6月发布 Unicode 11版与 1993年 5月公布的 ISOIEC 10646-11993 实现了合并

ndash 1996年 7月发布 Unicode 20版ndash 1999年 9月发布 Unicode 30版ndash 2003年 4月发布 Unicode 40版(对应于 ISOIEC 106462003 ) 2004年 3月 31日发布 Unicode 401版 2005年 3月 31日发布 Unicode 410版

ndash 2006年 7月 14日发布 Unicode 50版 2008年 4月 4日发布 Unicode 51版 2009年 12月 22日发布 Unicode 52版

ndash 2010年 10月发布 Unicode 60版 2012年 1月发布 Unicode 61版(对应于 ISOIEC 106462012 ) 2012年 9月推出 Unicode 62版 2013年 9月推出 Unicode 63版

ndash 2014年 6月 16日发布 Unicode 70版 ndash 2015年 6月 17日发布 Unicode 80版

字符集bull Unicode 字符集的空间分成双字节的基本多语言平面 (Basic Multilingual Pla

ne BMP) 和 4 字节的辅助多语言平面 (Supplementary Multilingual Plane SMP) 两种

bull BMPndash Unicode 的基本平面或基本多语言平面 BMP 对应于 ISOIEC 10646-1 的第 00组的 00 平面( BMP )即 Unicode 与 ISOIEC 10646 的 BMP 中的字符编码完全一致

bull SMPndash 鉴于 Unicode 原有的 16位元空间不足以应用从 Unicode 31版本开始设立了 16 个辅助平面使 Unicode 的可使用空间由六万多字增至约一百万字

ndash 原有的 Unicode双字节空间称为基本平面或基本多语言平面 BMP 辅助多语言平面 SMP 字符要用 4 字节来储存

ndash 第一辅助平面摆放拼音文字(主要为现时已不再使用的文字)及符号范围在 U+10000 - U+1FFFD

ndash 第二辅助平面又称为表意文字补充平面 (Supplementary Ideographic Plane 简称 SIP) 现时摆放ldquo中日韩统汉字扩展 B 区rdquo共 43253 个汉字范围在 U+20000 - U+2FFFD

ndash 第三至十三辅助平面尚未使用ndash 第十四辅助平面又称为特殊用途补充平面 (Supplementary Special-purpose Pl

ane 简称 SSP) 摆放 Language tags 和 Variation Selectors 它们都是控制字符范围在 U+E0000 - U+E01FF

ndash 第十五至十六辅助平面都是私人使用区它们的范围是 U+F0000 - U+FFFFD 及 U+100000 - U+1000FD

bull Unicode 字符集的具体编码方式参加第 4小节ldquo 4 UTFrdquo

2 ISOIEC 10646

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull ISOIEC 10646 标准由 ISO 与 IEC 联合成立的 ISOIEC JTC1SC2WG2 制定ndash JTC 1 ( Joint Technical Committee 1 on Information

technology ISOIEC信息技术联合技术委员会 1 )负责信息技术方面标准的制定工作

ndash SC 2 ( SubCommittee 2 on Coded character sets 编码字符集分会 2 )下的 WG 2 ( Working Group 2 on Universal coded character set 通用编码字符集工作组 2 )负责制定国际通用字符编码标准即后来公布的 ISOIEC 10646

发展历史bull 1984年 ISO 的一些会员国发起制定新的国际字符编码标准同年 4月 ISO

与 IEC 联合成立 ISOIEC JTC1SC2WG2 1987年 3月制定出编码架构1992年 6月投票通过第二版国际标准草案

bull 1993年 5月推出 10646 标准时将内容分成两个部分标准首先发布的是其中的第 1 个部分(体系结构与基本多文种平面)的第 1版( Edition 1 ) ISOIEC 10646-11993 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane(信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

bull 2000年 3月推出 10646 标准第一个部分的第 2版( Edition 2 ) ISOIEC 10646-12000 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane

bull 2001年 10月推出 10646 标准第 2版的第二个部分(辅助平面)的第 1版( Edition 1 ) ISOIEC 10646-22001 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 2 Supplementary Planes

bull 2003年 10月推出的 10646新标准(第 1版 Edition 1 )将老标准中的两个部分标准合并成了一个单一的标准 ISOIEC 106462003 Information technology -- Universal Multiple- Octet Coded Character Set (UCS) 后来又于 2010年 2012年和 2014年分别推出了 ISOIEC 106462010 (第 2版)ISOIEC 106462012 (第 3版)和 ISOIEC 106462014 (第 4版)

UCS 通用字符集bull 通用字符集( Universal Character Set UCS )是

ISOIEC 10646 标准所定义的字符编码方式采用 4字节编码又称为 Universal Multiple-Octet Coded Character Set (通用多八位编码字符集)

bull 通用字符集是所有包括了其他字符集它保证了与其他字符集的双向兼容即如果你将任何文本字符串翻译到 UCS 格式然后再翻译回原编码你不会丢失任何信息

bull UCS 包含了已知语言的所有字符除了拉丁语希腊语斯拉夫语希伯来语阿拉伯语亚美尼亚语格鲁吉亚语还包括中文日文韩文这样的象形文字 UCS 还包括大量的图形印刷数学科学符号

名字与组合字符bull UCS 不仅给每个字符分配一个代码而且赋予了

一个正式的名字表示一个 UCS 或 Unicode值的十六进制数通常在前面加上ldquo U+rdquo 例如ldquo U+0041rdquo代表字符ldquo Ardquo

bull UCS里有些编码点分配给了组合字符组合字符机制允许在任何字符后加上重音符或其他指示标记 这在科学符号中特别有用 比如数学方程式和国际音标字母 可能会需要在一个基本字符后组合上一个或多个指示标记

实现级别bull 并不是所有的系统都需要支持像组合字符这样的的先进

机制因此 ISO 10646 指定了如下三种实现级别ndash 级别 1不支持组合字符和韩语 Hangul Jamo 字符 ( 一种特

别的 更加复杂的韩国文的编码 使用两个或三个子字符来编码一个韩文音节 )

ndash 级别 2类似于级别 1 但在某些文字中允许一列固定的组合字符 (例如 希伯来文 阿拉伯文 Devangari 孟加拉语 果鲁穆奇语 Gujarati Oriya 泰米尔语 Telugo 印 埃纳德语 Malayalam 泰国语和老挝语 ) 因为如果没有最起码的几个组合字符 UCS就不能完整地表达这些语言

ndash 级别 3支持所有的 UCS 字符如可以在任意一个字符上加上一个箭头或 和一个 tilde(颚化符号即字母上面的~ )

编码方式bull UCS 有如下两种编码方式

ndash UCS-2与 Unicode 的 2 字节编码基本一样ndash UCS-4 4 字节编码目前是在 UCS-2 前加

上 2 个全零的字节bull UCS 还有 UTF 编码方式参见下面第 4小节ldquo 4 UTFrdquo

3 Unicode 与 ISOIEC 10646bull 关系

ndash 历史上存在两个独立的尝试创立单一字符集的组织即国际标准化组织( ISO )和多语言软件制造商组成的统一码协会组织( Unicodeorg )前者开发的 ISO 10646项目后者开发的 Unicode项目因此最初制定了不同的标准

ndash 1991年前后两个项目的参与者都认识到世界不需要两个不兼容的字符集于是它们开始合并双方的工作成果并为创立一个单一编码表而协同工作

ndash 从 Unicode20开始 Unicode采用了与 ISO 10646-1相同的字库和字码 ISO 也承诺 ISO10646 将不会替超出 U+10FFFF 的 UCS-4 编码赋值以使得两者保持一致

ndash 两个项目仍都存在并独立地公布各自的标准但 Unicode协会和 ISOIEC JTC1SC2 都同意保持两者标准的码表兼容并紧密地共同调整任何未来的扩展

异同bull Unicode协会公布的 Unicode 标准包含了 ISO 10646-1 实现级别

3 的基本多文种平面在两个标准里所有的字符都在相同的位置并且有相同的名字

bull ISO 10646 标准就像 ISO 8859 标准一样只不过是一个简单的字符集表它定义了一些编码的别名指定了一些与标准有关的术语并包括了规范说明指定了怎样使用 UCS连接其他 ISO 标准的实现等

bull Unicode 标准额外定义了许多与字符有关的语义符号学并详细说明了绘制某些语言(如阿拉伯语)表达形式的算法处理双向文字(比如拉丁文和希伯来文的混合文字)的算法排序与字符串比较所需的算法等等

bull 考虑到 Unicode 标准有一个易记的名字既便宜又包括更多的辅助信息因而它使用得更广泛然而

bull 一般认为用于打印 ISO 10646-1 标准的字体在某些方面的质量要高于用于打印 Unicode 20 的专业字体设计者总是被建议说要两个标准都实现但一些提供的样例字形有显著的区别 ISO 10646-1 标准同样使用四种不同的风格变体来显示表意文字如中文日文和韩文 (CJK) 而 Unicode 20 的表里只有中文的变体

4 UTFbull Unicode 和 UCS 都是一个字符集可以看作为内码bull UTF ( UnicodeUCS Transformation Format 统一码

通用字符集转换格式)是一种编码方式它的出现是因为 Unicode 和 UCS 不适宜在某些场合直接传输和处理

bull UCS 和 Unicode 只是分配整数给字符的编码表现在存在好几种将一串字符表示为一串字节的方法(如高或低位字节在前)

bull 最显而易见的两种方法是将 UCS 和 Unicode 文本存储为 2 个 或 4 个字节序列的串这两种方法的正式名称分别为 UCS-2 和 UCS-4

bull 常用的 UTF具体编码方式有 UTF-8 UTF-16 和 UTF-32

UTF-8

bull UTF-8 是 UTF 的一种具体编码方式在 ISO 10646-1 的附录 R 和 IETF 的 RFC 2279 里定义

bull 由于要使文档中的文字与 ASCII兼容故 UTF-8 选择了使用可变长度字节来储存 Unicode 和 UCS 例如ndash ASCII 字母继续使用 1 字节储存ndash 重音文字希腊字母或西里尔字母等使用 2 字节来储存ndash 常用的汉字就要使用 3 字节ndash 辅助平面字符则使用 4 字节ndash 即 ASCII 不作变换其他字符做变长编码每个字符 1~4 字节

bull UTF-8 通常作为外码bull 在 UTF-8 文件的开首很多时都放置一个 U+FEFF 字符

(UTF-8 以 EF BB BF 代表 ) 以显示这个文字档案是以UTF-8 编码

UTF-8 的优点bull 与 CPU 字节顺序无关可以在不同平台之间交流

bull 容错能力高任何一个字节损坏后最多只会导致一个编码码位损失不会链锁错误 ( 如 GB 码错一个字节就会整行乱码 )

UTF-8 的缺点bull UTF-8 使用可变长度字节储存使计算机程序设计变得复杂 (故此在计算机程序或操作系统内部多采用 UCS-2 编码 )

bull 在旧式的中文日文及朝鲜文编码之中每字符都使用 2 字节储存而 UTF-8 须使用 3 字节 (采用 UTF-16 编码则可只使用 2字节储存 )

bull 泰语以往使用的 ISO 8859-11 每字符只使用 1 字节储存而 UTF-8 须使用 3 字节

UTF-8储存的多字节串字符bull U-00000000 - U-0000007F 0xxxxxxx bull U-00000080 - U-000007FF 110xxxxx 10xxxxxx

bull U-00000800 - U-0000FFFF 1110xxxx 10xxxxxx

10xxxxxx bull U-00010000 - U-001FFFFF 11110xxx 10xxxxx

x 10xxxxxx 10xxxxxx bull 在多字节串中第一个字节的开头ldquo 1rdquo 的数目就

是整个串中字节的数目bull 每个使用 UTF-8储存的字符除了第一个字节外其余字节的头两个位元都是以 10 开始使文字处理器能够较快地找出每个字符的开始位置

UTF-16bull UTF-16 是 UTF 的另一种具体编码方式在 ISO 1064

6-1 的附录 Q 和 IETF 的 RFC 2781 里定义bull UTF-16 是变长码( 2 或 4 字节)大致相当于 20位编码值在 0 到 0x10FFFF 之间基本上就是 Unicode 编码的实现 UTF-16 与 CPU 字序有关但因为最省空间常作为网络传输的外码 UTF-16 是 Unicode 的完美编码

bull lt0x10000 的直接用其对应的 16位整数编码位于 0x10000 ~ 0x10FFFF 之间的用 0xD800~0xDBFF 的 16位整数后跟 0xDC00~0xDFFF 的 16位整数的 4 字节编码 gt 0x10FFFF 的不能用 UTF-16 表示

bull 在 Unicode 的 BMP 中定义的字符(无论是拉丁字母汉字或其他文字或符号)一律使用 2 字节存储而在辅助平面定义的字符则以两个 2 字节的值来存储

UTF-16 的特点bull UTF-16比起 UTF-8 的好处在于大部分字符都以固定长

度的 2 字节存储但 UTF-16却无法相容于 ASCII 编码bull UTF-16 有两种编码模式即大尾序( big Endian 高位字节在前)和小尾序( little Endian 高位字节在后)储存形式(一般來說以 Macintosh 制作和存储的文字使用大尾序格式以 Microsoft 或 Linux 制作和存储的文字使用小尾序格式)

bull 为了弄区分 UTF-16 文件的大小尾序在 UTF-16 文件的开头都会放置一个 U+FEFF 字符作为字节顺序标记 (UTF-16LE 以 FF FE代表 UTF-16BE 以 FE FF代表 ) 以显示该文档是以 UTF-16 编码的

UTF-32

bull UTF-32 仅使用了 Unicode范围 (0 到 0x10FFFF) 的 32位编码相当于 UCS-4 的子集

bull 由于 Unicode 和 ISOIEC 10646 的编码和结构与前面讲过的 GB 13000 类似或等价这里就不再做详细的介绍

5支持bull 现在 UnicodeUCS 已经获得了十分广泛的支

持ndash网络与浏览器(如 HTML 4050 XML 与 IE

Safari Netscape Firefox Chrome Opera Edge 等)

ndash操作系统(如 Windows NT2000XPVista7810 Mac OS X iOS Android和 Linux )

ndash 编程语言新版本(如 CC++JavaObjective-CC Swift 等)

Unicode 代码的浏览器显示代码 字符标准名称 (英语 )

浏览器的显示

amp65 大写拉丁字母 A A

amp223 小写拉丁字母 Sharp S szlig

amp254 小写拉丁字母 Thorn thorn

amp916 大写希腊字母 Delta Δ

amp1049 大写斯拉夫字母 Short I Й

amp1511 希伯来字母 Qof ק

amp1605 阿拉伯字母 Meem م

amp3671 泰文数字 7 ๗amp4688 埃塞俄比亚音节文字 Qha ቐ

amp12354 日语平假名 A あamp12450 日语片假名 A アamp21494 简体汉字 叶 叶amp33865 繁体汉字 葉 葉amp50685 韩国音节文字 Yeob 엽

23 文字输出bull 文字输出是指将计算机内的字符编码通过计算机的输出设备(如显示器打印机喇叭)展现出所对应字符的图形或声音供人们阅读或聆听

bull 本节主要介绍文字图示输出的字形技术bull 文字声音输出属于语音合成只在本节的末尾作简单的介绍

231 字形技术bull 文字 = 图形bull 不论是象形文字中的单字还是拼音文字

中的字母都是用图形来表示的bull 在计算机里文字的表示 输出(显示和打

印)涉及ndash 字型ndash 字体ndash 字库

1字型bull 字型指构造和生成字形的方法一般可分为

ndash 点阵字 DOS 显卡 ROM 金山 科印特点似位图显示快占空间(字库大)放大后有马赛克效应

bull 显示字母 88 汉字 1616bull 打印 2424 4848 6464

ndash 矢量字单线条用于笔式绘图仪特点字库小算法简单难看

ndash 轮廓字用曲线描绘字的轮廓输出效果好所见即所得(WYSWYG) 可无级放大易实现空心 阴影 填充 变形等各种特效功能轮廓曲线一般采用样条曲线如 TrueType (Apple 1991 Mac OS Microsoft 1992 Windows 31)用的是二次 B 样条 Bezier曲线中文之星 RichWin采用的是三次 B 样条 Bezier曲线

字型种类

2字体bull 字体指字的形状风格如

ndash 汉字的

ndash 英文的

宋体楷体黑体仿宋

行楷隶书新魏幼圆

Times New Roman Arial Narrow Courier New

常用汉字字体bull 宋体mdashmdash宋体来自于北宋时雕版刻书所采用的欧体字(唐朝欧阳询体)宋体字的横顿拉捺挑钩别具特色间架平正疏密适中字体秀丽遒劲但笔画横细竖粗适合于刀刻不宜于手写现在宋体广泛用于印刷常来表现文档的正文

bull 仿宋体mdashmdash 1920年钱塘的丁辅之与丁善之等人将明代以后盛行的方廓形字体加以改造创造出长形和方形的聚珍仿宋后来演化为现在的仿宋体仿宋体比较接近于手写体为宋体和楷体的折中是采用的宋体的结构和楷体的笔法而成现常来表现打印文件以及文档的摘要和注释等

bull 黑体mdashmdash黑体是适应工艺美术的发展而出现的一种等线体是从日本引进的黑体的结构与宋体没有什么差别只是其笔画粗细一致健实粗壮主要用于文档的标题和重点及标语广告等方面

bull 楷体mdashmdash楷体源于楷书楷体的笔画圆浑笔调灵活结构端正美观但不宜于木板雕刻所以直到清末西洋的石板印刷术传入后才开始广泛用于印刷现代的楷体创造于 20世纪的二三十年代主要用于文档的正文(多用于中小学教材)也可用于工艺美术等方面

3字库bull 字库为一种文字的某一字体的所有字符的集合一般存放在一个磁盘文件中

bull 由于象形文字中单字的数量大(成千上万)而拼音文字中字母的数量小(不到一百个)所以字库的大小有很大的差别

bull 为了使文档界面丰富多彩常见的字处理软件都支持多种字体带有众多字库

4点阵字型的国家标准bull 我国已经公布了若干字体的点阵字型之国家标准

ndash GB 50071-19852001 信息技术 汉字编码字符集(基本集) 24 点阵字型

ndash GB 50072-19852001 信息技术 汉字编码字符集(辅助集) 24 点阵字型

ndash GB 5199-19862001 信息技术 汉字编码字符集(基本集) 16 点阵字型 宋体

ndash GB 6345-19862001 信息技术 汉字编码字符集(基本集) 32 点阵字型 宋体

ndash GB 12041-2001 信息技术 汉字编码字符集(基本集) 48点阵字型 宋体

ndash GB 17698-1999 信息技术 通用多八位编码字符集( I 区) 汉字 16 点阵字型

232 语音合成bull 文字的声音输出主要使用的是语音合成的技术bull 语音合成功能是ldquo文rarr语rdquo转换bull 文语转换 TTS (Text-To-Speech) 是将文本形式的信息转换成自然语音的一种技术其最终目标是使计算机输出清晰而又自然的声音

bull 英语的语音合成在上世纪 80年代就早已成熟而中文 汉语的合成现在也趋于成熟并有了广泛的应用(如汽车导航仪智能手机等)

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 17: 第一篇  媒体

221 西文编码bull 西文编码主要介绍 ASCII 字符集然后简

单介绍 IBM公司的 EBCDIC 和两种扩展 ASCII 显示字符表

bull 1 ASCII

bull 2 EBCDIC

bull 3扩展 ASCII 显示字符

1 ASCII

bull ASCII ( American Standard Code for Information Interchange 美国信息交换标准码)是 ANSI于 1963年提出 1968年确定的一种英文字符编码标准( ANSI X34-1986 )广泛应用于计算机网络和信息产业

bull ANSI = American National Standards Institute 美国国家标准协会

bull ASCII采用 7位二进制数的(共计 128 个)代码来表示字符(包括图示符和控制符)加上奇偶校验位(或最高位置 0 )则每个字符由 8位(一个字节)组成

ASCII 字符集

0 1 2 3 4 5 6 7

0 NUL DLE SP 0 P ` p

1 SOH DC1 1 A Q a q

2 STX DC2 ldquo 2 B R b r

3 ETX DC3 3 C S c s

4 EOT DC4 $ 4 D T d t

5 ENQ NAK 5 E U e u

6 ACK SYN amp 6 F V f v

7 BEL ETB lsquo 7 G W g w

8 BS CAN ( 8 H X h x

9 HT EM ) 9 I Y i y

A LF SUB J Z j z

B VT ESC + K [ k

C FF FS lt L l |

D CR GS - = M ] m

E SO RS gt N ^ n ~

F SI US O _ o DEL

bull ASCII 字符集以 32 个字符为一组bull 第一组( 0x00~0x1F )为控制符

(非打印符)用于数据处理 通信系统及其相应设备中的信息交换

bull 后面的除了第一个字符( SP空格符 0x20 )和最后一个字符( DEL删除符 0x7F )外全都是可打印(显示)的图示符包括ndash 第二组( 0x20 ~0x6F )的数字空格

和常用标点符号ndash 第三组( 0x40~0x5F )的大写拉丁字

母(即英文字母)与少数标点符号ndash 第四组( 0x60~0x7F )的小写拉丁字

母与少数标点符号

ASCII 的国际标准bull 1972年美国的国家标准 ASCII 与其若干拉丁语系国家的变体一起成为国际标准 ISO 6461972 ( Information processing -- ISO 7-bit coded character set for information interchange 信息处理mdashmdash ISO 用于信息交换的七位编码字符集)

bull 这些变体主要是将 ASCII 字符集中不常用的符号ldquo $ [ ] ^ ` | ~rdquo替换为他们各自语言的重音符号

bull 1987年 ISO 646 中的 ASCII部分成为 646 的国际参考版( IRV = International Reference Version ) ISO 646IRV1987 但是其中的美元符 $被替换为国际通用货币符 curren

bull 1991年推出的修订版 ISOIEC 646IRV1991 还原成原始的美国 ASCII 所以又被称为 ISO 646-US 或 US-ASCII

替代标准bull 由于 ISO 646 中各国的变体存在明显的兼容和统一问题现在已经作废

bull 有关编码已经被新的国际标准 ISOIEC 8859-1~16 19871998 ( Information processingtechnology -- 8-bit single-byte coded graphic character sets 信息处理 技术mdashmdash 8位单字节编码的图形字符集)所替代

bull 后来 ISO 646 与 ISOIEC 8859 标准又都被纳入 ISOIEC 1064619932003 ( Information technology -- Universal Multiple-Octet Coded Character Set (UCS) 信息技术mdashmdash通用多八位编码字符集 (UCS) )标准之中

bull 其中的标准编号 ISO 10646 = ISO 646 + 10000

标准化组织bull ANSI = American National Standards Institute 美

国国家标准协会bull ISO = International Organization for Standardization

国际标准化组织是由 153 个国家的国家标准协会联合组成的一个非政府国际组织总部(中央秘书处)设在瑞士的日内瓦负责制定适应商业和广泛社会需要的各种国际标准网址为 httpwwwisoorg

bull IEC = International Electrotechnical Commission 国际电工技术委员会是一个成立于 1906年 6月的国际标准化权威组织属于联合国的甲级咨询机构负责制定关于电工电子各方面的标准有 42 个会员国总部也设在瑞士的日内瓦网址为httpwwwiecch我国于 1958年 8月参加

2 EBCDIC

bull 西文的字符编码方案除了通用的 ASCII外还有 IBM公司于 1960年代初提出的 EBCDIC ( Extended Binary-Coded Decimal Interchange Code扩充的二进制编码的十进制交换码)

bull EBCDIC 现在仍然(仅)在 IBM 的 OS390 与 TPF 以及富士通 - 西门子的 BS2000OSD 等大型机的操作系统中使用

bull EBCDIC 是一种八位编码其字符的编码方案与ASCII 的完全不同

EBCDIC 字符集 0 1 2 3 4 5 6 7 8 9 A B C D E F

0 NUL DLE DS SP amp - 0

1 SOH DC1 SOS a j ~ A J 1

2 STX DC2 FS SYN b k s B K S 2

3 ETX TM c l t C L T 3

4 PF RES BYP PN d m u D M U 4

5 HT NL LF RS e n v E N V 5

6 LC BS ETB UC f o w F O W 6

7 DEL IL ESC EOT g p x G P X 7

8 GE CAN h q y H Q Y 8

9 RLF EM ` i r z I R Z 9

A SMM CC SM cent | |

B VT CU1 CU2 CU3 $

C FF IFS DC4 gt

D CR IGS ENQ NAK ( ) _ lsquo

E SO IRS ACK + lt =

F SI IUS BEL SUB | ldquo EO

3扩展 ASCII 显示字符bull ( 1 ) IBM PC

ndash IBM PC 的扩展 ASCII 显示字符由 IBM公司为其 PC 机制定可以由原始的 IBM PC 显示器在 DOS状态下显示

bull ( 2 ) Microsoft Windows ndash Microsoft Windows 的扩展 ASCII 显示字符由

微软公司为其Windows操作系统制定可以在Windows环境的西文状态下被显示

IBM PC 的扩展 ASCII 显示字符表

Microsoft Windows 的扩展 ASCII 显示字符表

222 中文编码bull 1 GB 1988 与 GB 2311

bull 2 GB 2312

bull 3汉字编码的辅助集bull 4 Big5

bull 5少数民族文字编码bull 6 GB 13000

bull 7 GBK 与 GB 18030

汉字编码bull 为了计算机处理汉字必须先对汉字进行编码由于汉

字数量大(《康熙字典》收字 47 035 个《汉语大字典》收字 54 678 个据统计在形成楷体后出现的汉字约有 9万个左右)显然不能像 ASCII那样用 7位或单字节来进行编码至少需要两个字节(最多可表示 6万5千多个字符)

bull 1980年我国制定了著名的 GB 2312-80双字节汉字编码标准(其中 GB 为ldquo国标rdquo这两个汉字的拼音首字母)收汉字 6 763 个

bull 1993年底又推出了等同于国际通用字符编码标准 ISOIEC 106461-1993 的国家标准 GB 130001-93 收汉字 20 902 个

bull 由于 GB 13000 与 GB 2312 的编码不兼容作为过渡2000年又公布了 GB 18030-2000 ( GBK )收汉字2万 7千个

1 GB 1988 与 GB 2311

bull 为了能够同时表示和处理汉字和英文实现中外文混排汉字编码必须兼容通用的 ASCII 编码因此1980年我国制定了与国际标准 ISO 6461972 (即ASCII )对应的国家标准 GB 1988-80《信息处理交换用的七位编码字符集》

bull 汉字成千上万不可能像 ASCII 一样只用单字节的七位来表示必须扩展到八位和多字节但是不能随意扩充而应该符合国际规范因此我国于 1980年又制定了与七位代码扩充到八位编码的国际标准 ISO 2022兼容的国家标准 GB 2311-80《信息处理交换用七位编码字符集的扩充办法》

GB 1988-80 ( ASCII )的代码结构图

行 0 1 2 3 4 5 6 7

0 SP

1 helliphellip

15

16

32个

控制符

94个

图形字符

DEL

GB 2311-80 的八位编码结构图列

行 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0 SP 100

1

helliphellip

14

15

C0

32个

控制符

GL

94或 96个

图形字符

DEL

C1

32个

控制符

GR

94或 96个

图形字符

1515

2 GB 2312

bull GB 2312-80《信息交换用汉字编码字符集 middot基本集》是我国制定的一个使用最广泛的汉字编码的强制性国家标准由原第四机械工业部的华北计算机研究所(后改名为电子工业部第十五研究所)起草1980年批准 1981年 5月 1日起实施

bull GB 2312-80 是在已有的国家标准 GB 1988-80(对应于 ISO 646 )和 GB 2311-80 (对应于 ISO 2022 )的基础上制定的采用与 ISO 2022兼容的GB 2311 之 7位到八位的代码扩充办法用双字节编码表示汉字与 ASCII兼容

收录的字符bull GB 2312 对应的是汉字的基本集共收汉字 6 763 个

可达到 9999 的使用频率因此除了极少数生僻的人名地名和古文外 GB 2312 中的汉字已经能基本满足平时的使用了

bull 除了汉字外 GB 2312 还收录了 682 个非汉字图形符号包括 202 个一般符号(含间隔符标点运算符和制表符) 60 个序号符 22 个数字符 52 个英文字母 169 个日文假名 48 个希腊字母 66 个俄文字母 26 个汉语拼音符号和 37 个汉语注音字母

bull 所以在 GB 2312-80 标准中共收录了( 6 763 汉字 + 682 非汉字图符 = ) 7 445 图形字符

两级汉字bull GB 2312 将其收录的六千多个汉字分成两个级别bull 一级汉字有 3 755 个都为使用频率高的常用汉

字为便于检索像字典那样将这些汉字按拼音字母顺序排列(同音字再按笔顺的横竖撇捺点折序排列)

bull 二级汉字有 3 008 个大部分较生僻不易掌握读音所以按部首顺序排列(同部首的字按笔画数排列同笔画数的字再按笔顺排列)

编码方案bull GB 2312 对所有图形字符(包括汉字和非汉字图符)都采用两个字节表示每个字节的低七位用于编码最高位全为 1 这样可以兼容 ASCII 编码(字节的最高位全为 0 )

bull 虽然在一个字节中最高位为 1 的符号位置有 128 个但从前面 GB 2311 的分析可知为了与 ASCII 的代码结构兼容保留了( 32 + 2 = ) 34 个控制符位置最后只有( 128 ndash 34 = ) 94 个符号位可供图形字符编码使用

bull 图形字符在代码表中的位置用区位码表示将码表分成94 个区对应于编码的第一个字节取值 0x21~0x7E 每个区又分成 94 个位对应于编码的第二个字节取值 0x21~0x7E (参见表 2-6 )

bull 例如ldquo中山大学rdquo的编码为中 (0xD6D0) 山 (0xC9BD) 大 (0xB4F3) 学 (0xD1A7)

GB 2312-80 字符集结构 20 21 22 helliphellip 7D 7E 7F

位号

区号

1 2 helliphellip 93 94

20

21~29 1~9 非汉字图符(682个)

2A~2F 10~15 空白区

30~57 16~55 一级汉字(3 755个)

58~77 56~87 二级汉字(3 008个)

78~7E 88~94 空白区

7F

第 1 区的部分非汉字图符

1区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 middot ˉ ˇ uml 々 mdash ~ hellip lsquo rsquo ldquo

17~32 rdquo 〔 〕 〈 〉 《 》 「 」 『 』 〖 〗 【 】 plusmn

33~48 times divide ∶ and or sum prod cup cap isin ∷ radic perp ∥ ang

49~64 ⊙ int ∮ equiv ≌ asymp ∽ prop ne ltu gtu le ge infin ∵ there4

65~80 deg prime Prime $ curren ¢ £ permil sect

81~94 rarr larr uarr darr

第 16 区的部分一级汉字

16区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 啊 阿 埃 挨 哎 唉 哀 皑 癌 蔼 矮 艾 碍 爱 隘 鞍

17~32 氨 安 俺 按 暗 岸 胺 案 肮 昂 盎 凹 敖 熬 翱 袄

33~48 傲 奥 懊 澳 芭 捌 扒 叭 吧 笆 八 疤 巴 拔 跋 靶

49~64 把 耙 坝 霸 罢 爸 白 柏 百 摆 佰 败 拜 稗 斑 班

65~80 搬 扳 般 颁 板 版 扮 拌 伴 瓣 半 办 绊 邦 帮 梆

81~94 榜 膀 绑 棒 磅 蚌 镑 傍 谤 苞 胞 包 褒 剥

第 56 区的部分二级汉字

56区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 亍 丌 兀 丐 廿 卅 丕 亘 丞 鬲 孬 噩 丨 禺 丿 匕

17~32 乇 夭 爻 卮 氐 囟 胤 馗 毓 睾 鼗 丶 亟 鼐 乜 乩

33~48 亓 芈 孛 啬 嘏 仄 厍 厝 厣 厥 厮 靥 赝 匚 叵 匦

49~64 匮 匾 赜 卦 卣 刂 刈 刎 刭 刳 刿 剀 剌 剞 剡 剜

65~80 蒯 剽 劂 劁 劐 劓 冂 罔 亻 仃 仉 仂 仨 仡 仫 仞

81~94 伛 仳 伢 佤 仵 伥 伧 伉 伫 佞 佧 攸 佚 佝

3汉字编码的辅助集bull 除了GB 2312基本集的 6 763 个简体汉字外国家标

准还给出了汉字编码字符集的多个辅助集bull 第二 四辅助集分别增加了 7 237 7 039 个简体汉字bull 第一和三 五辅助集则分别是与基本集和第二 四辅助集所对应的繁体汉字字符集的国家标准

bull 基本集加上辅助集共有 21 039 个简体汉字和 21 142个繁体汉字

bull 繁体汉字之所以多一些是因为在第一辅助集中有时几个繁体字对应一个简体字因此比基本集多出 103 个汉字

bull 基本集和辅助集的代码页之间靠其编码字节的最高位来区分

编码字符的分页标志

双字节汉字编码的页面结构第二字节 列号

行号 0 middot middot middot 32 33 34 helliphellip 125 126 127 128middot middot 160 161 162 helliphellip 254 255 0 middot middot 32

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

33 34 middot middot middot 126

1 2 middot middot middot 94

第四五辅助集 (7 039个汉字)

127

(兼容ASCII)

128 middot middot 160

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

161 162 middot middot middot 254

1 2 middot middot middot 94

第二三辅助集 (7 237个汉字)

1 2 middot middot middot 94

基本集第一辅助集 (6 763 6 866个汉字) (682个非汉字图符)

第一字节

255

4 Big5

bull 除了中国大陆使用的简体汉字外在台湾香港澳门和海外华侨社区使用的是传统的繁体汉字

bull 简体汉字使用 GB (国标)系列编码标准bull 繁体汉字一般使用的是 Big5内码(大五码)即台湾的ldquo资讯工业策进会rdquo发布的《标准交换码 (Ⅲ码 )》收录汉字 13 053 个

bull Big5内码是 1984年由台湾财团法人资讯工业策进会与宏碁 (Acer) 神通 (MiTAC) 佳佳零壹 (Zero One) 大众 (FIC) 等五大软件公司联合推出故称为大五码

BIG5 的代码空间低位字节

00 hellip 3F 40 hellip 7E 7F hellip A0 A1 hellip FE FF

高位字节

00middot

80

81middot

A0用户定义区 用户定义区

A1A2A3

非汉字图符 非汉字图符

A4middot

C6常用汉字 常用汉字

C7C8

用户定义区 用户定义区

C9middot

F9次常用汉字 次常用汉字

FAmiddot

FE用户定义区 用户定义区

FF

5少数民族文字编码bull 中国共有 56 个民族除了汉回满族一般使用汉语外其他少数民族大多有自己的民族语言

bull 我国各民族使用的 50 多种文字可以分为字母式结构文字和非字母式结构文字两大类ndash 字母式结构的有拉丁文斯拉夫文蒙古文维吾尔文哈萨克文藏文和朝鲜文等字母式

ndash 非字母式结构的有汉字象形文字图画文字和音节文字等bull 各民族文字的书写方向也有不同

ndash 壮文藏文朝鲜文彝文等的字从左到右行从上到下ndash 维吾尔文哈萨克文和柯尔克孜文等的字从右到左行从上

到下ndash 蒙古文和满文的字从上到下行从左到右ndash 汉字的书写方向有两种

bull 大陆的简体汉字的字从左到右行从上到下bull 港台与古旧书的繁体汉字的字从上到下行从右到左

国家标准bull 下面按发布时间列出若干已经公布的我国少数民族文字

编码集的国家标准(这些字符集一般分成两类对字母式结构文字采用八位编码对非字母式结构文字采用双字节编码)ndash GB 8045-87《信息处理交换用蒙古文七位和八位编码图形字

符集》收 82 个蒙古文字母和 12 个其他符号共 94 个字符ndash GB 12050-89《信息处理交换用维吾尔文编码图形字符集》收 32 个维吾尔文字母一个维吾尔文复合字符和 37 个其他符号共 70 个字符

ndash GB 12052-89《信息交换用朝鲜文编码字符集》收 5297 个朝鲜文字和 682 个其他符号(与 GB 2132同)共 5 979 个字符

ndash GB 13134-91《信息交换用彝文编码字符集》收 1165 个彝文字符和 688 个其他符号共 1853 个字符

ndash GB 16959-1997《信息技术 信息交换用藏文编码字符集 基本集》收 41 个藏文字母 36 个藏文主字 13 个元音字符12 个语音字符 10 个藏文数字 10 个半值符一个控制用连接符和 46 个其他藏文图形符号共 169 个字符

6 GB 13000bull GB 13000 是与 ISOIEC 10646 等价的国际通用编码字符集标准收汉字 2万多个但是与 GB 2312 和 GBK 不兼容

bull 1993年 5月 ISO 与 IEC 联合推出了可用于世界各种文字的通用编码字符集的国际标准的第 1部分ndash ISOIEC 10646-11993 Information technology -- Universal Multiple-Octe

t Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane (信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

ndash 该标准收字符 96万个几乎涵盖世界上的所有文字其中包含汉字 21 003 个

bull 1993年底我国推出了等同于国际标准 ISOIEC 1064611993 的强制性国家标准 ndash GB 130001-93《信息技术 通用多八位编码字符集( UCS ) 第一部分

体系结构与基本多文种平面》ndash 该标准于 1993年 12月 24日被国家技术监督局批准 1994年 8月 1日起实施

GB 13000 的主要特点

bull 世界各语言文种字符统一编码避免冲突便于国际交流

bull 编码空间宽阔连续每个图形字符的编码唯一(一字一码)不再存在兼容性问题

bull 按文种而不是按语言编码避免重复和浪费(如中日韩汉字的统一编码 CJK )

bull 与 GB 2312 和 GBK 不兼容

体系结构bull UCS 的体系结构是基于所谓ldquo多八位rdquo的而ldquo八位rdquo就是一个字节ldquo多八位rdquo就是多个字节

bull UCS采用 4 个字节来表征组面行位的四维空间bull 整个 UCS空间包含 128 个组( 0x00组 ~0x7F组)每组有 256 个平面( 0x00 平面 ~0xFF 平面)每个平面有 256 行每行又由 256 个字位构成

bull UCS共有( 128 times 256 = ) 32 768 个平面每个平面有( 256 times 256 = ) 65 536 个字位每个字位对应于一个字符的编码

bull 目前的编码只限于 00组已经定义的平面有 00组的00 平面mdashmdash称之为基本多文种平面 BMP ( Basic Multilingual Plane ) 及若干辅助平面

UCS 的全部编码空间

每个平面256times256 个

字位

00组 00 平面

00组 FF 平面

01组 00 平面

7F组 00 平面00

01组

7F组

UCS 的 00组

BMPbull BMP = Basic Multilingual Plane 基本多文种平面bull BMP 用作双八位编码字符集称之为 UCS-2 它被

分成四个区ndash A- 区(字位 0x0000~0x4DFF 有 19 903 个字位)用于

字母文字音节文字以及各种符号ndash I- 区(字位 0x4E00~0x9FFF 共 20 992 个字位)用于中日韩统一汉字( CJK )

ndash O- 区(字位 0xA000~0xDFFF 共 16 384 个字位)保留未来标准化用

ndash R- 区(字位 0xE000~0xFFFD 共 8 190 个字位)为 BMP 的限制使用区包括专用字符变形显现形式及兼容字符

BMP总貌

A-区

00~33 拼音文字(见下页)

34~3D 朝鲜文

3E~44 朝鲜文补充 -A

45~4D 朝鲜文补充 -B

I-区 4E~9F CJK统一汉字O-区 A0~DF

R-区

E0~F8 专用区

F9~FA CJK兼容汉字FB 拼音文字变形显现形式

FC~FD 阿拉伯文变形显现形式 -A

FE半形组合用标志

CJK兼容形式

小写变体

阿拉伯文变形显现形式 -B

FF 半形及全形字符 特殊字符

BMP 的0x00~0x33

行字母文字区

00 基本拉丁文 拉丁文-1补充

01 拉丁文扩充-A 拉丁文扩充-B

02 拉丁文扩充-B 国际音标扩充 进格修饰字符

03 组合用发音符 基本希腊文 希腊符号及哥普特文

04 西里尔文

05 美亚尼亚文 希伯来文(基本和扩充)

06 基本阿拉伯文 阿拉伯文扩充

07

08

09 梵文 孟加拉文

0A 锡克教文 古吉拉特文

0B 奥利雅文 泰米尔文

0C 泰卢固文 卡纳达文

0D 德拉维族文

0E 泰文 老挝文

0F

10 格鲁吉亚文

11 朝鲜文字母

12~1D

1E 拉丁文扩充增补

1F 希腊文扩充

20 广义标点 上下标 货币符号 符号组合用区分标志

21 类似字母的符号 数字形式 箭头

22 数学运算符

23 零杂技术用符号

24 控制图符 光学识别符 带括号的字母数字

25 制表符 方块元素 几何图形符

26 零杂符号

27 示意符等

28~2F

30 CJK符号和标点 平假名 片假名

31 注音 朝鲜文兼容字母 CJK零杂字符

32 带括号的CJK字母及月份

33 CJK兼容字符

留作将来标准化用

非图形字符

表示形式bull GB 13000提供了字符编码表示的两种替代使用的形式

ndash 双八位 BMP 形式( UCS-2 )mdashmdash允许使用 BMP 中的字符且每个字符用两个字节表示

ndash 肆八位正则形式( UCS-4 )mdashmdash允许使用 GB 13000 中的全部字符且每个字符用四个字节表示

bull 除了 UCS-24外还有另外两种变形的表示形式ndash UTF-8 (单字节 ~ 多字节)ndash UTF-16 (双字节和 4 字节与 UCS-2 等价)ndash 目前在工业上的实现均为 UTF-16 ( UCS-2 )和 UTF-8ndash UTF = Unicode UCS Transformation Format 统一码 UC

S转换格式bull 关于统一码我们会在下一小节详细介绍

7 GBK 与 GB 18030bull 由于 GB 13000 标准与 GB 2312 标准的字符编码不兼容作为过渡在国家信息技术标准化委员会的主持下制定了与 GB 2312兼容的《汉字内码扩展规范( GBK )》( K 为扩展的ldquo扩rdquo字的拼音首字母)并于 1995年 12月 15日由原国家技术监督局标准司联合原电子工业部科技与质量监督司作为指导性技术规范发布实施

bull 2000年 GBK又被国家标准 GB 18030-2000《信息技术 信息交换用汉字编码字符集 基本集的扩充》所代替该标准收汉字 2万 7千个

bull 与 GB 2312 一样 GB 18030 也为中国的强制性国家标准微软公司的 Windows XPVista78 中文版与苹果公司的 Mac OS X 和 iOS 谷歌公司的 Android (安卓)等操作系统已经全面支持 GBK

GB 18030 的码位范围分布

字节数 码位空间 码位数目

单字节 0x00~0x7F 128

双字节第 1字节 第 2字节

23 9400x81~0xFE

0x40~0x7E 0x80~0xFE

四字节第 1字节 第 2字节 第 3字节 第 4字节

1 587 6000x81~0xFE 0x30~0x39 0x81~0xFE 0x30~0x39

GB 18030的

总体结构图

收录字符bull 单字节部分mdashmdash收录了GBT 11383 的 0x00~0x7F 全部 128 个字符(似 ASCI

I )bull 双字节部分mdashmdash收录内容如下 (21 003 个汉字和 884 个符号共 21 887 个字符 )

ndash GB 130001-93 的全部 CJK 统一汉字字符 20 902 个( GB 2312 的编码汉字在双字节 2 区其他 CJK 统一汉字在双字节 34 区)

ndash GB 130001-93 的 CJK兼容区挑选出来的 21 个汉字ldquo郎凉秊helliphellip﨨﨩rdquo( 0xFD9C~0xFDA0 和 0xFE40~0xFE4F )

ndash GB 130001-93 中收录而 GB 2312未收录的台湾地区使用的图形字符 139 个ldquoˊˋ˙helliphelliprdquo( 0xA840~0xA895 和 0xA940~0XA988 )

ndash GB 130001-93收录的其他字符 31 ( 13)个(在双字节 5 区)ndash GB 2312-80 中的非汉字字符 682 个( 0xA1A1~0xA9EF )ndash GB 12345-90 的竖排标点符号 19 ( 29)个ldquo︵︶︹helliphellip︳︴rdquo( 0xA6D9~0xA6

F5 )ndash GB 2312-80未收录的 10 个小写罗马数字ldquoⅰⅱⅲhelliphellipⅸⅹrdquo( 0xA2A1~ 0xA2A

A )ndash GB 2312-80未收录的带音调的汉语拼音字母 5 ( 4)个ldquo ńňǹrdquo 以及 ɑ 和 ɡ ( 0

xA8BB~0xA8C0 )ndash 汉字数字零ldquo〇rdquo (0xA996) 和欧元符ldquoeurordquo (0xA2E3)ndash 表意文字描述符 13 个ldquohelliphelliprdquo( 0xA989~0xA995 )ndash 对 GB 130001-93增补的汉字和部首 构件 80 个ldquohelliphellip䶮rdquo( 0xFE50~ 0x

FEA0 )bull 四字节部分mdashmdash收录了上述双字节字符之外的包括 CJK 统一汉字扩充 A 在内

的 GB 130001-93 中的全部字符

GB 18030双字节部分的码位安排

类别 区名 码位范围 码位数 字符数 内容

符号区双字节 1区 A1A1~A9FE 846 718

GB 2312非汉字字符等

双字节 5区 A840~A9A0 192 166 台湾图符等

汉字区双字节 2区 B0A1~F7FE 6768 6763 GB 2312汉字双字节 3区 8140~A0FE 6080 6080 CJK统一汉字双字节 4区 AA40~FEA0 8160 8160 CJK统一汉字等

用户自定义区双字节用户区 1 AAA1~AFFE 564

用户自定义字符双字节用户区 2 F8A1~FEFE 658

双字节用户区 3 A140~A7A0 672

GB 18030双字节部分的编码空间结构图 尾字节

0x40larr――rarr0x7E 0x80larr――rarr0xA0 0xA1larr――――――――――――rarr0xFE

0x81 uarr darr

0xA0

0xA1 uarr darr

0xA7

0xA8 0xA9

首字节

0xAA uarr | | | | | | | | | | darr

0xFE

双字节 3区

汉字区6 080个码位

双字节用户区 3

用户自定义区672个码位

双字节 5区 图形符号区192个码位

双字节 4区

汉字区8 160个码位

双字节 1区

图形符号区564个码位

双字节 2区

汉字区6 768个码位

双字节用户区 1 用户自定义区564个码位

双字节用户区 2 用户自定义区658个码位

223 国际通用字符编码

bull Unicode (统一码)是由多语言软件制造商组成的统一码协会( httpwwwUnicodeorg)所制定一种国际字符的编码标准

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull 本节主要介绍这两种关系密切的主流国际字符编码标准的来历编码方案各自特点与相互关系

1 Unicode 统一码bull 发展历史

ndash 1987年施乐( Xerox )公司的 Joe Becker 与 Lee Collins 和苹果( Apple )公司的 Mark Davis 等人开始讨论统一编码 1987年 12月 Joe Becker造词 Unicode (统一码)含义为ldquo unique universal and uniform character encodingrdquo (单一通用统一的字符编码) 1989年 2月开始定期召开统一码会议 1989年 9月公布 Unicode草案

ndash 1991年 1月 3 日由 Xerox Apple Sun IBM Aldis Microsoft 等公司出资在美国加州成立了统一码协会( Unicode Consortium )并由协会设立非盈利性的统一码公司( Unicode Inc )后来 HP Adobe Borland Digital Lotus Novell 等公司也纷纷加入 1991年 1月成立统一码技术委员会 UTC 并制定了其规程

ndash 1991年 2月在 Ed Hart 的推动下进行了ldquo统一码对 10464 国际标准草案 1rdquo 的对话Unicode 与 ISOIEC 10646开始走向融合

ndash 1991年 8月发布 Unicode 标准 10版的第 1卷(体系结构非表意字符) 1992年6月发表 Unicode 10版的第 2卷(表意字符) 1993年 6月发布 Unicode 11版与 1993年 5月公布的 ISOIEC 10646-11993 实现了合并

ndash 1996年 7月发布 Unicode 20版ndash 1999年 9月发布 Unicode 30版ndash 2003年 4月发布 Unicode 40版(对应于 ISOIEC 106462003 ) 2004年 3月 31日发布 Unicode 401版 2005年 3月 31日发布 Unicode 410版

ndash 2006年 7月 14日发布 Unicode 50版 2008年 4月 4日发布 Unicode 51版 2009年 12月 22日发布 Unicode 52版

ndash 2010年 10月发布 Unicode 60版 2012年 1月发布 Unicode 61版(对应于 ISOIEC 106462012 ) 2012年 9月推出 Unicode 62版 2013年 9月推出 Unicode 63版

ndash 2014年 6月 16日发布 Unicode 70版 ndash 2015年 6月 17日发布 Unicode 80版

字符集bull Unicode 字符集的空间分成双字节的基本多语言平面 (Basic Multilingual Pla

ne BMP) 和 4 字节的辅助多语言平面 (Supplementary Multilingual Plane SMP) 两种

bull BMPndash Unicode 的基本平面或基本多语言平面 BMP 对应于 ISOIEC 10646-1 的第 00组的 00 平面( BMP )即 Unicode 与 ISOIEC 10646 的 BMP 中的字符编码完全一致

bull SMPndash 鉴于 Unicode 原有的 16位元空间不足以应用从 Unicode 31版本开始设立了 16 个辅助平面使 Unicode 的可使用空间由六万多字增至约一百万字

ndash 原有的 Unicode双字节空间称为基本平面或基本多语言平面 BMP 辅助多语言平面 SMP 字符要用 4 字节来储存

ndash 第一辅助平面摆放拼音文字(主要为现时已不再使用的文字)及符号范围在 U+10000 - U+1FFFD

ndash 第二辅助平面又称为表意文字补充平面 (Supplementary Ideographic Plane 简称 SIP) 现时摆放ldquo中日韩统汉字扩展 B 区rdquo共 43253 个汉字范围在 U+20000 - U+2FFFD

ndash 第三至十三辅助平面尚未使用ndash 第十四辅助平面又称为特殊用途补充平面 (Supplementary Special-purpose Pl

ane 简称 SSP) 摆放 Language tags 和 Variation Selectors 它们都是控制字符范围在 U+E0000 - U+E01FF

ndash 第十五至十六辅助平面都是私人使用区它们的范围是 U+F0000 - U+FFFFD 及 U+100000 - U+1000FD

bull Unicode 字符集的具体编码方式参加第 4小节ldquo 4 UTFrdquo

2 ISOIEC 10646

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull ISOIEC 10646 标准由 ISO 与 IEC 联合成立的 ISOIEC JTC1SC2WG2 制定ndash JTC 1 ( Joint Technical Committee 1 on Information

technology ISOIEC信息技术联合技术委员会 1 )负责信息技术方面标准的制定工作

ndash SC 2 ( SubCommittee 2 on Coded character sets 编码字符集分会 2 )下的 WG 2 ( Working Group 2 on Universal coded character set 通用编码字符集工作组 2 )负责制定国际通用字符编码标准即后来公布的 ISOIEC 10646

发展历史bull 1984年 ISO 的一些会员国发起制定新的国际字符编码标准同年 4月 ISO

与 IEC 联合成立 ISOIEC JTC1SC2WG2 1987年 3月制定出编码架构1992年 6月投票通过第二版国际标准草案

bull 1993年 5月推出 10646 标准时将内容分成两个部分标准首先发布的是其中的第 1 个部分(体系结构与基本多文种平面)的第 1版( Edition 1 ) ISOIEC 10646-11993 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane(信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

bull 2000年 3月推出 10646 标准第一个部分的第 2版( Edition 2 ) ISOIEC 10646-12000 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane

bull 2001年 10月推出 10646 标准第 2版的第二个部分(辅助平面)的第 1版( Edition 1 ) ISOIEC 10646-22001 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 2 Supplementary Planes

bull 2003年 10月推出的 10646新标准(第 1版 Edition 1 )将老标准中的两个部分标准合并成了一个单一的标准 ISOIEC 106462003 Information technology -- Universal Multiple- Octet Coded Character Set (UCS) 后来又于 2010年 2012年和 2014年分别推出了 ISOIEC 106462010 (第 2版)ISOIEC 106462012 (第 3版)和 ISOIEC 106462014 (第 4版)

UCS 通用字符集bull 通用字符集( Universal Character Set UCS )是

ISOIEC 10646 标准所定义的字符编码方式采用 4字节编码又称为 Universal Multiple-Octet Coded Character Set (通用多八位编码字符集)

bull 通用字符集是所有包括了其他字符集它保证了与其他字符集的双向兼容即如果你将任何文本字符串翻译到 UCS 格式然后再翻译回原编码你不会丢失任何信息

bull UCS 包含了已知语言的所有字符除了拉丁语希腊语斯拉夫语希伯来语阿拉伯语亚美尼亚语格鲁吉亚语还包括中文日文韩文这样的象形文字 UCS 还包括大量的图形印刷数学科学符号

名字与组合字符bull UCS 不仅给每个字符分配一个代码而且赋予了

一个正式的名字表示一个 UCS 或 Unicode值的十六进制数通常在前面加上ldquo U+rdquo 例如ldquo U+0041rdquo代表字符ldquo Ardquo

bull UCS里有些编码点分配给了组合字符组合字符机制允许在任何字符后加上重音符或其他指示标记 这在科学符号中特别有用 比如数学方程式和国际音标字母 可能会需要在一个基本字符后组合上一个或多个指示标记

实现级别bull 并不是所有的系统都需要支持像组合字符这样的的先进

机制因此 ISO 10646 指定了如下三种实现级别ndash 级别 1不支持组合字符和韩语 Hangul Jamo 字符 ( 一种特

别的 更加复杂的韩国文的编码 使用两个或三个子字符来编码一个韩文音节 )

ndash 级别 2类似于级别 1 但在某些文字中允许一列固定的组合字符 (例如 希伯来文 阿拉伯文 Devangari 孟加拉语 果鲁穆奇语 Gujarati Oriya 泰米尔语 Telugo 印 埃纳德语 Malayalam 泰国语和老挝语 ) 因为如果没有最起码的几个组合字符 UCS就不能完整地表达这些语言

ndash 级别 3支持所有的 UCS 字符如可以在任意一个字符上加上一个箭头或 和一个 tilde(颚化符号即字母上面的~ )

编码方式bull UCS 有如下两种编码方式

ndash UCS-2与 Unicode 的 2 字节编码基本一样ndash UCS-4 4 字节编码目前是在 UCS-2 前加

上 2 个全零的字节bull UCS 还有 UTF 编码方式参见下面第 4小节ldquo 4 UTFrdquo

3 Unicode 与 ISOIEC 10646bull 关系

ndash 历史上存在两个独立的尝试创立单一字符集的组织即国际标准化组织( ISO )和多语言软件制造商组成的统一码协会组织( Unicodeorg )前者开发的 ISO 10646项目后者开发的 Unicode项目因此最初制定了不同的标准

ndash 1991年前后两个项目的参与者都认识到世界不需要两个不兼容的字符集于是它们开始合并双方的工作成果并为创立一个单一编码表而协同工作

ndash 从 Unicode20开始 Unicode采用了与 ISO 10646-1相同的字库和字码 ISO 也承诺 ISO10646 将不会替超出 U+10FFFF 的 UCS-4 编码赋值以使得两者保持一致

ndash 两个项目仍都存在并独立地公布各自的标准但 Unicode协会和 ISOIEC JTC1SC2 都同意保持两者标准的码表兼容并紧密地共同调整任何未来的扩展

异同bull Unicode协会公布的 Unicode 标准包含了 ISO 10646-1 实现级别

3 的基本多文种平面在两个标准里所有的字符都在相同的位置并且有相同的名字

bull ISO 10646 标准就像 ISO 8859 标准一样只不过是一个简单的字符集表它定义了一些编码的别名指定了一些与标准有关的术语并包括了规范说明指定了怎样使用 UCS连接其他 ISO 标准的实现等

bull Unicode 标准额外定义了许多与字符有关的语义符号学并详细说明了绘制某些语言(如阿拉伯语)表达形式的算法处理双向文字(比如拉丁文和希伯来文的混合文字)的算法排序与字符串比较所需的算法等等

bull 考虑到 Unicode 标准有一个易记的名字既便宜又包括更多的辅助信息因而它使用得更广泛然而

bull 一般认为用于打印 ISO 10646-1 标准的字体在某些方面的质量要高于用于打印 Unicode 20 的专业字体设计者总是被建议说要两个标准都实现但一些提供的样例字形有显著的区别 ISO 10646-1 标准同样使用四种不同的风格变体来显示表意文字如中文日文和韩文 (CJK) 而 Unicode 20 的表里只有中文的变体

4 UTFbull Unicode 和 UCS 都是一个字符集可以看作为内码bull UTF ( UnicodeUCS Transformation Format 统一码

通用字符集转换格式)是一种编码方式它的出现是因为 Unicode 和 UCS 不适宜在某些场合直接传输和处理

bull UCS 和 Unicode 只是分配整数给字符的编码表现在存在好几种将一串字符表示为一串字节的方法(如高或低位字节在前)

bull 最显而易见的两种方法是将 UCS 和 Unicode 文本存储为 2 个 或 4 个字节序列的串这两种方法的正式名称分别为 UCS-2 和 UCS-4

bull 常用的 UTF具体编码方式有 UTF-8 UTF-16 和 UTF-32

UTF-8

bull UTF-8 是 UTF 的一种具体编码方式在 ISO 10646-1 的附录 R 和 IETF 的 RFC 2279 里定义

bull 由于要使文档中的文字与 ASCII兼容故 UTF-8 选择了使用可变长度字节来储存 Unicode 和 UCS 例如ndash ASCII 字母继续使用 1 字节储存ndash 重音文字希腊字母或西里尔字母等使用 2 字节来储存ndash 常用的汉字就要使用 3 字节ndash 辅助平面字符则使用 4 字节ndash 即 ASCII 不作变换其他字符做变长编码每个字符 1~4 字节

bull UTF-8 通常作为外码bull 在 UTF-8 文件的开首很多时都放置一个 U+FEFF 字符

(UTF-8 以 EF BB BF 代表 ) 以显示这个文字档案是以UTF-8 编码

UTF-8 的优点bull 与 CPU 字节顺序无关可以在不同平台之间交流

bull 容错能力高任何一个字节损坏后最多只会导致一个编码码位损失不会链锁错误 ( 如 GB 码错一个字节就会整行乱码 )

UTF-8 的缺点bull UTF-8 使用可变长度字节储存使计算机程序设计变得复杂 (故此在计算机程序或操作系统内部多采用 UCS-2 编码 )

bull 在旧式的中文日文及朝鲜文编码之中每字符都使用 2 字节储存而 UTF-8 须使用 3 字节 (采用 UTF-16 编码则可只使用 2字节储存 )

bull 泰语以往使用的 ISO 8859-11 每字符只使用 1 字节储存而 UTF-8 须使用 3 字节

UTF-8储存的多字节串字符bull U-00000000 - U-0000007F 0xxxxxxx bull U-00000080 - U-000007FF 110xxxxx 10xxxxxx

bull U-00000800 - U-0000FFFF 1110xxxx 10xxxxxx

10xxxxxx bull U-00010000 - U-001FFFFF 11110xxx 10xxxxx

x 10xxxxxx 10xxxxxx bull 在多字节串中第一个字节的开头ldquo 1rdquo 的数目就

是整个串中字节的数目bull 每个使用 UTF-8储存的字符除了第一个字节外其余字节的头两个位元都是以 10 开始使文字处理器能够较快地找出每个字符的开始位置

UTF-16bull UTF-16 是 UTF 的另一种具体编码方式在 ISO 1064

6-1 的附录 Q 和 IETF 的 RFC 2781 里定义bull UTF-16 是变长码( 2 或 4 字节)大致相当于 20位编码值在 0 到 0x10FFFF 之间基本上就是 Unicode 编码的实现 UTF-16 与 CPU 字序有关但因为最省空间常作为网络传输的外码 UTF-16 是 Unicode 的完美编码

bull lt0x10000 的直接用其对应的 16位整数编码位于 0x10000 ~ 0x10FFFF 之间的用 0xD800~0xDBFF 的 16位整数后跟 0xDC00~0xDFFF 的 16位整数的 4 字节编码 gt 0x10FFFF 的不能用 UTF-16 表示

bull 在 Unicode 的 BMP 中定义的字符(无论是拉丁字母汉字或其他文字或符号)一律使用 2 字节存储而在辅助平面定义的字符则以两个 2 字节的值来存储

UTF-16 的特点bull UTF-16比起 UTF-8 的好处在于大部分字符都以固定长

度的 2 字节存储但 UTF-16却无法相容于 ASCII 编码bull UTF-16 有两种编码模式即大尾序( big Endian 高位字节在前)和小尾序( little Endian 高位字节在后)储存形式(一般來說以 Macintosh 制作和存储的文字使用大尾序格式以 Microsoft 或 Linux 制作和存储的文字使用小尾序格式)

bull 为了弄区分 UTF-16 文件的大小尾序在 UTF-16 文件的开头都会放置一个 U+FEFF 字符作为字节顺序标记 (UTF-16LE 以 FF FE代表 UTF-16BE 以 FE FF代表 ) 以显示该文档是以 UTF-16 编码的

UTF-32

bull UTF-32 仅使用了 Unicode范围 (0 到 0x10FFFF) 的 32位编码相当于 UCS-4 的子集

bull 由于 Unicode 和 ISOIEC 10646 的编码和结构与前面讲过的 GB 13000 类似或等价这里就不再做详细的介绍

5支持bull 现在 UnicodeUCS 已经获得了十分广泛的支

持ndash网络与浏览器(如 HTML 4050 XML 与 IE

Safari Netscape Firefox Chrome Opera Edge 等)

ndash操作系统(如 Windows NT2000XPVista7810 Mac OS X iOS Android和 Linux )

ndash 编程语言新版本(如 CC++JavaObjective-CC Swift 等)

Unicode 代码的浏览器显示代码 字符标准名称 (英语 )

浏览器的显示

amp65 大写拉丁字母 A A

amp223 小写拉丁字母 Sharp S szlig

amp254 小写拉丁字母 Thorn thorn

amp916 大写希腊字母 Delta Δ

amp1049 大写斯拉夫字母 Short I Й

amp1511 希伯来字母 Qof ק

amp1605 阿拉伯字母 Meem م

amp3671 泰文数字 7 ๗amp4688 埃塞俄比亚音节文字 Qha ቐ

amp12354 日语平假名 A あamp12450 日语片假名 A アamp21494 简体汉字 叶 叶amp33865 繁体汉字 葉 葉amp50685 韩国音节文字 Yeob 엽

23 文字输出bull 文字输出是指将计算机内的字符编码通过计算机的输出设备(如显示器打印机喇叭)展现出所对应字符的图形或声音供人们阅读或聆听

bull 本节主要介绍文字图示输出的字形技术bull 文字声音输出属于语音合成只在本节的末尾作简单的介绍

231 字形技术bull 文字 = 图形bull 不论是象形文字中的单字还是拼音文字

中的字母都是用图形来表示的bull 在计算机里文字的表示 输出(显示和打

印)涉及ndash 字型ndash 字体ndash 字库

1字型bull 字型指构造和生成字形的方法一般可分为

ndash 点阵字 DOS 显卡 ROM 金山 科印特点似位图显示快占空间(字库大)放大后有马赛克效应

bull 显示字母 88 汉字 1616bull 打印 2424 4848 6464

ndash 矢量字单线条用于笔式绘图仪特点字库小算法简单难看

ndash 轮廓字用曲线描绘字的轮廓输出效果好所见即所得(WYSWYG) 可无级放大易实现空心 阴影 填充 变形等各种特效功能轮廓曲线一般采用样条曲线如 TrueType (Apple 1991 Mac OS Microsoft 1992 Windows 31)用的是二次 B 样条 Bezier曲线中文之星 RichWin采用的是三次 B 样条 Bezier曲线

字型种类

2字体bull 字体指字的形状风格如

ndash 汉字的

ndash 英文的

宋体楷体黑体仿宋

行楷隶书新魏幼圆

Times New Roman Arial Narrow Courier New

常用汉字字体bull 宋体mdashmdash宋体来自于北宋时雕版刻书所采用的欧体字(唐朝欧阳询体)宋体字的横顿拉捺挑钩别具特色间架平正疏密适中字体秀丽遒劲但笔画横细竖粗适合于刀刻不宜于手写现在宋体广泛用于印刷常来表现文档的正文

bull 仿宋体mdashmdash 1920年钱塘的丁辅之与丁善之等人将明代以后盛行的方廓形字体加以改造创造出长形和方形的聚珍仿宋后来演化为现在的仿宋体仿宋体比较接近于手写体为宋体和楷体的折中是采用的宋体的结构和楷体的笔法而成现常来表现打印文件以及文档的摘要和注释等

bull 黑体mdashmdash黑体是适应工艺美术的发展而出现的一种等线体是从日本引进的黑体的结构与宋体没有什么差别只是其笔画粗细一致健实粗壮主要用于文档的标题和重点及标语广告等方面

bull 楷体mdashmdash楷体源于楷书楷体的笔画圆浑笔调灵活结构端正美观但不宜于木板雕刻所以直到清末西洋的石板印刷术传入后才开始广泛用于印刷现代的楷体创造于 20世纪的二三十年代主要用于文档的正文(多用于中小学教材)也可用于工艺美术等方面

3字库bull 字库为一种文字的某一字体的所有字符的集合一般存放在一个磁盘文件中

bull 由于象形文字中单字的数量大(成千上万)而拼音文字中字母的数量小(不到一百个)所以字库的大小有很大的差别

bull 为了使文档界面丰富多彩常见的字处理软件都支持多种字体带有众多字库

4点阵字型的国家标准bull 我国已经公布了若干字体的点阵字型之国家标准

ndash GB 50071-19852001 信息技术 汉字编码字符集(基本集) 24 点阵字型

ndash GB 50072-19852001 信息技术 汉字编码字符集(辅助集) 24 点阵字型

ndash GB 5199-19862001 信息技术 汉字编码字符集(基本集) 16 点阵字型 宋体

ndash GB 6345-19862001 信息技术 汉字编码字符集(基本集) 32 点阵字型 宋体

ndash GB 12041-2001 信息技术 汉字编码字符集(基本集) 48点阵字型 宋体

ndash GB 17698-1999 信息技术 通用多八位编码字符集( I 区) 汉字 16 点阵字型

232 语音合成bull 文字的声音输出主要使用的是语音合成的技术bull 语音合成功能是ldquo文rarr语rdquo转换bull 文语转换 TTS (Text-To-Speech) 是将文本形式的信息转换成自然语音的一种技术其最终目标是使计算机输出清晰而又自然的声音

bull 英语的语音合成在上世纪 80年代就早已成熟而中文 汉语的合成现在也趋于成熟并有了广泛的应用(如汽车导航仪智能手机等)

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 18: 第一篇  媒体

1 ASCII

bull ASCII ( American Standard Code for Information Interchange 美国信息交换标准码)是 ANSI于 1963年提出 1968年确定的一种英文字符编码标准( ANSI X34-1986 )广泛应用于计算机网络和信息产业

bull ANSI = American National Standards Institute 美国国家标准协会

bull ASCII采用 7位二进制数的(共计 128 个)代码来表示字符(包括图示符和控制符)加上奇偶校验位(或最高位置 0 )则每个字符由 8位(一个字节)组成

ASCII 字符集

0 1 2 3 4 5 6 7

0 NUL DLE SP 0 P ` p

1 SOH DC1 1 A Q a q

2 STX DC2 ldquo 2 B R b r

3 ETX DC3 3 C S c s

4 EOT DC4 $ 4 D T d t

5 ENQ NAK 5 E U e u

6 ACK SYN amp 6 F V f v

7 BEL ETB lsquo 7 G W g w

8 BS CAN ( 8 H X h x

9 HT EM ) 9 I Y i y

A LF SUB J Z j z

B VT ESC + K [ k

C FF FS lt L l |

D CR GS - = M ] m

E SO RS gt N ^ n ~

F SI US O _ o DEL

bull ASCII 字符集以 32 个字符为一组bull 第一组( 0x00~0x1F )为控制符

(非打印符)用于数据处理 通信系统及其相应设备中的信息交换

bull 后面的除了第一个字符( SP空格符 0x20 )和最后一个字符( DEL删除符 0x7F )外全都是可打印(显示)的图示符包括ndash 第二组( 0x20 ~0x6F )的数字空格

和常用标点符号ndash 第三组( 0x40~0x5F )的大写拉丁字

母(即英文字母)与少数标点符号ndash 第四组( 0x60~0x7F )的小写拉丁字

母与少数标点符号

ASCII 的国际标准bull 1972年美国的国家标准 ASCII 与其若干拉丁语系国家的变体一起成为国际标准 ISO 6461972 ( Information processing -- ISO 7-bit coded character set for information interchange 信息处理mdashmdash ISO 用于信息交换的七位编码字符集)

bull 这些变体主要是将 ASCII 字符集中不常用的符号ldquo $ [ ] ^ ` | ~rdquo替换为他们各自语言的重音符号

bull 1987年 ISO 646 中的 ASCII部分成为 646 的国际参考版( IRV = International Reference Version ) ISO 646IRV1987 但是其中的美元符 $被替换为国际通用货币符 curren

bull 1991年推出的修订版 ISOIEC 646IRV1991 还原成原始的美国 ASCII 所以又被称为 ISO 646-US 或 US-ASCII

替代标准bull 由于 ISO 646 中各国的变体存在明显的兼容和统一问题现在已经作废

bull 有关编码已经被新的国际标准 ISOIEC 8859-1~16 19871998 ( Information processingtechnology -- 8-bit single-byte coded graphic character sets 信息处理 技术mdashmdash 8位单字节编码的图形字符集)所替代

bull 后来 ISO 646 与 ISOIEC 8859 标准又都被纳入 ISOIEC 1064619932003 ( Information technology -- Universal Multiple-Octet Coded Character Set (UCS) 信息技术mdashmdash通用多八位编码字符集 (UCS) )标准之中

bull 其中的标准编号 ISO 10646 = ISO 646 + 10000

标准化组织bull ANSI = American National Standards Institute 美

国国家标准协会bull ISO = International Organization for Standardization

国际标准化组织是由 153 个国家的国家标准协会联合组成的一个非政府国际组织总部(中央秘书处)设在瑞士的日内瓦负责制定适应商业和广泛社会需要的各种国际标准网址为 httpwwwisoorg

bull IEC = International Electrotechnical Commission 国际电工技术委员会是一个成立于 1906年 6月的国际标准化权威组织属于联合国的甲级咨询机构负责制定关于电工电子各方面的标准有 42 个会员国总部也设在瑞士的日内瓦网址为httpwwwiecch我国于 1958年 8月参加

2 EBCDIC

bull 西文的字符编码方案除了通用的 ASCII外还有 IBM公司于 1960年代初提出的 EBCDIC ( Extended Binary-Coded Decimal Interchange Code扩充的二进制编码的十进制交换码)

bull EBCDIC 现在仍然(仅)在 IBM 的 OS390 与 TPF 以及富士通 - 西门子的 BS2000OSD 等大型机的操作系统中使用

bull EBCDIC 是一种八位编码其字符的编码方案与ASCII 的完全不同

EBCDIC 字符集 0 1 2 3 4 5 6 7 8 9 A B C D E F

0 NUL DLE DS SP amp - 0

1 SOH DC1 SOS a j ~ A J 1

2 STX DC2 FS SYN b k s B K S 2

3 ETX TM c l t C L T 3

4 PF RES BYP PN d m u D M U 4

5 HT NL LF RS e n v E N V 5

6 LC BS ETB UC f o w F O W 6

7 DEL IL ESC EOT g p x G P X 7

8 GE CAN h q y H Q Y 8

9 RLF EM ` i r z I R Z 9

A SMM CC SM cent | |

B VT CU1 CU2 CU3 $

C FF IFS DC4 gt

D CR IGS ENQ NAK ( ) _ lsquo

E SO IRS ACK + lt =

F SI IUS BEL SUB | ldquo EO

3扩展 ASCII 显示字符bull ( 1 ) IBM PC

ndash IBM PC 的扩展 ASCII 显示字符由 IBM公司为其 PC 机制定可以由原始的 IBM PC 显示器在 DOS状态下显示

bull ( 2 ) Microsoft Windows ndash Microsoft Windows 的扩展 ASCII 显示字符由

微软公司为其Windows操作系统制定可以在Windows环境的西文状态下被显示

IBM PC 的扩展 ASCII 显示字符表

Microsoft Windows 的扩展 ASCII 显示字符表

222 中文编码bull 1 GB 1988 与 GB 2311

bull 2 GB 2312

bull 3汉字编码的辅助集bull 4 Big5

bull 5少数民族文字编码bull 6 GB 13000

bull 7 GBK 与 GB 18030

汉字编码bull 为了计算机处理汉字必须先对汉字进行编码由于汉

字数量大(《康熙字典》收字 47 035 个《汉语大字典》收字 54 678 个据统计在形成楷体后出现的汉字约有 9万个左右)显然不能像 ASCII那样用 7位或单字节来进行编码至少需要两个字节(最多可表示 6万5千多个字符)

bull 1980年我国制定了著名的 GB 2312-80双字节汉字编码标准(其中 GB 为ldquo国标rdquo这两个汉字的拼音首字母)收汉字 6 763 个

bull 1993年底又推出了等同于国际通用字符编码标准 ISOIEC 106461-1993 的国家标准 GB 130001-93 收汉字 20 902 个

bull 由于 GB 13000 与 GB 2312 的编码不兼容作为过渡2000年又公布了 GB 18030-2000 ( GBK )收汉字2万 7千个

1 GB 1988 与 GB 2311

bull 为了能够同时表示和处理汉字和英文实现中外文混排汉字编码必须兼容通用的 ASCII 编码因此1980年我国制定了与国际标准 ISO 6461972 (即ASCII )对应的国家标准 GB 1988-80《信息处理交换用的七位编码字符集》

bull 汉字成千上万不可能像 ASCII 一样只用单字节的七位来表示必须扩展到八位和多字节但是不能随意扩充而应该符合国际规范因此我国于 1980年又制定了与七位代码扩充到八位编码的国际标准 ISO 2022兼容的国家标准 GB 2311-80《信息处理交换用七位编码字符集的扩充办法》

GB 1988-80 ( ASCII )的代码结构图

行 0 1 2 3 4 5 6 7

0 SP

1 helliphellip

15

16

32个

控制符

94个

图形字符

DEL

GB 2311-80 的八位编码结构图列

行 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0 SP 100

1

helliphellip

14

15

C0

32个

控制符

GL

94或 96个

图形字符

DEL

C1

32个

控制符

GR

94或 96个

图形字符

1515

2 GB 2312

bull GB 2312-80《信息交换用汉字编码字符集 middot基本集》是我国制定的一个使用最广泛的汉字编码的强制性国家标准由原第四机械工业部的华北计算机研究所(后改名为电子工业部第十五研究所)起草1980年批准 1981年 5月 1日起实施

bull GB 2312-80 是在已有的国家标准 GB 1988-80(对应于 ISO 646 )和 GB 2311-80 (对应于 ISO 2022 )的基础上制定的采用与 ISO 2022兼容的GB 2311 之 7位到八位的代码扩充办法用双字节编码表示汉字与 ASCII兼容

收录的字符bull GB 2312 对应的是汉字的基本集共收汉字 6 763 个

可达到 9999 的使用频率因此除了极少数生僻的人名地名和古文外 GB 2312 中的汉字已经能基本满足平时的使用了

bull 除了汉字外 GB 2312 还收录了 682 个非汉字图形符号包括 202 个一般符号(含间隔符标点运算符和制表符) 60 个序号符 22 个数字符 52 个英文字母 169 个日文假名 48 个希腊字母 66 个俄文字母 26 个汉语拼音符号和 37 个汉语注音字母

bull 所以在 GB 2312-80 标准中共收录了( 6 763 汉字 + 682 非汉字图符 = ) 7 445 图形字符

两级汉字bull GB 2312 将其收录的六千多个汉字分成两个级别bull 一级汉字有 3 755 个都为使用频率高的常用汉

字为便于检索像字典那样将这些汉字按拼音字母顺序排列(同音字再按笔顺的横竖撇捺点折序排列)

bull 二级汉字有 3 008 个大部分较生僻不易掌握读音所以按部首顺序排列(同部首的字按笔画数排列同笔画数的字再按笔顺排列)

编码方案bull GB 2312 对所有图形字符(包括汉字和非汉字图符)都采用两个字节表示每个字节的低七位用于编码最高位全为 1 这样可以兼容 ASCII 编码(字节的最高位全为 0 )

bull 虽然在一个字节中最高位为 1 的符号位置有 128 个但从前面 GB 2311 的分析可知为了与 ASCII 的代码结构兼容保留了( 32 + 2 = ) 34 个控制符位置最后只有( 128 ndash 34 = ) 94 个符号位可供图形字符编码使用

bull 图形字符在代码表中的位置用区位码表示将码表分成94 个区对应于编码的第一个字节取值 0x21~0x7E 每个区又分成 94 个位对应于编码的第二个字节取值 0x21~0x7E (参见表 2-6 )

bull 例如ldquo中山大学rdquo的编码为中 (0xD6D0) 山 (0xC9BD) 大 (0xB4F3) 学 (0xD1A7)

GB 2312-80 字符集结构 20 21 22 helliphellip 7D 7E 7F

位号

区号

1 2 helliphellip 93 94

20

21~29 1~9 非汉字图符(682个)

2A~2F 10~15 空白区

30~57 16~55 一级汉字(3 755个)

58~77 56~87 二级汉字(3 008个)

78~7E 88~94 空白区

7F

第 1 区的部分非汉字图符

1区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 middot ˉ ˇ uml 々 mdash ~ hellip lsquo rsquo ldquo

17~32 rdquo 〔 〕 〈 〉 《 》 「 」 『 』 〖 〗 【 】 plusmn

33~48 times divide ∶ and or sum prod cup cap isin ∷ radic perp ∥ ang

49~64 ⊙ int ∮ equiv ≌ asymp ∽ prop ne ltu gtu le ge infin ∵ there4

65~80 deg prime Prime $ curren ¢ £ permil sect

81~94 rarr larr uarr darr

第 16 区的部分一级汉字

16区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 啊 阿 埃 挨 哎 唉 哀 皑 癌 蔼 矮 艾 碍 爱 隘 鞍

17~32 氨 安 俺 按 暗 岸 胺 案 肮 昂 盎 凹 敖 熬 翱 袄

33~48 傲 奥 懊 澳 芭 捌 扒 叭 吧 笆 八 疤 巴 拔 跋 靶

49~64 把 耙 坝 霸 罢 爸 白 柏 百 摆 佰 败 拜 稗 斑 班

65~80 搬 扳 般 颁 板 版 扮 拌 伴 瓣 半 办 绊 邦 帮 梆

81~94 榜 膀 绑 棒 磅 蚌 镑 傍 谤 苞 胞 包 褒 剥

第 56 区的部分二级汉字

56区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 亍 丌 兀 丐 廿 卅 丕 亘 丞 鬲 孬 噩 丨 禺 丿 匕

17~32 乇 夭 爻 卮 氐 囟 胤 馗 毓 睾 鼗 丶 亟 鼐 乜 乩

33~48 亓 芈 孛 啬 嘏 仄 厍 厝 厣 厥 厮 靥 赝 匚 叵 匦

49~64 匮 匾 赜 卦 卣 刂 刈 刎 刭 刳 刿 剀 剌 剞 剡 剜

65~80 蒯 剽 劂 劁 劐 劓 冂 罔 亻 仃 仉 仂 仨 仡 仫 仞

81~94 伛 仳 伢 佤 仵 伥 伧 伉 伫 佞 佧 攸 佚 佝

3汉字编码的辅助集bull 除了GB 2312基本集的 6 763 个简体汉字外国家标

准还给出了汉字编码字符集的多个辅助集bull 第二 四辅助集分别增加了 7 237 7 039 个简体汉字bull 第一和三 五辅助集则分别是与基本集和第二 四辅助集所对应的繁体汉字字符集的国家标准

bull 基本集加上辅助集共有 21 039 个简体汉字和 21 142个繁体汉字

bull 繁体汉字之所以多一些是因为在第一辅助集中有时几个繁体字对应一个简体字因此比基本集多出 103 个汉字

bull 基本集和辅助集的代码页之间靠其编码字节的最高位来区分

编码字符的分页标志

双字节汉字编码的页面结构第二字节 列号

行号 0 middot middot middot 32 33 34 helliphellip 125 126 127 128middot middot 160 161 162 helliphellip 254 255 0 middot middot 32

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

33 34 middot middot middot 126

1 2 middot middot middot 94

第四五辅助集 (7 039个汉字)

127

(兼容ASCII)

128 middot middot 160

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

161 162 middot middot middot 254

1 2 middot middot middot 94

第二三辅助集 (7 237个汉字)

1 2 middot middot middot 94

基本集第一辅助集 (6 763 6 866个汉字) (682个非汉字图符)

第一字节

255

4 Big5

bull 除了中国大陆使用的简体汉字外在台湾香港澳门和海外华侨社区使用的是传统的繁体汉字

bull 简体汉字使用 GB (国标)系列编码标准bull 繁体汉字一般使用的是 Big5内码(大五码)即台湾的ldquo资讯工业策进会rdquo发布的《标准交换码 (Ⅲ码 )》收录汉字 13 053 个

bull Big5内码是 1984年由台湾财团法人资讯工业策进会与宏碁 (Acer) 神通 (MiTAC) 佳佳零壹 (Zero One) 大众 (FIC) 等五大软件公司联合推出故称为大五码

BIG5 的代码空间低位字节

00 hellip 3F 40 hellip 7E 7F hellip A0 A1 hellip FE FF

高位字节

00middot

80

81middot

A0用户定义区 用户定义区

A1A2A3

非汉字图符 非汉字图符

A4middot

C6常用汉字 常用汉字

C7C8

用户定义区 用户定义区

C9middot

F9次常用汉字 次常用汉字

FAmiddot

FE用户定义区 用户定义区

FF

5少数民族文字编码bull 中国共有 56 个民族除了汉回满族一般使用汉语外其他少数民族大多有自己的民族语言

bull 我国各民族使用的 50 多种文字可以分为字母式结构文字和非字母式结构文字两大类ndash 字母式结构的有拉丁文斯拉夫文蒙古文维吾尔文哈萨克文藏文和朝鲜文等字母式

ndash 非字母式结构的有汉字象形文字图画文字和音节文字等bull 各民族文字的书写方向也有不同

ndash 壮文藏文朝鲜文彝文等的字从左到右行从上到下ndash 维吾尔文哈萨克文和柯尔克孜文等的字从右到左行从上

到下ndash 蒙古文和满文的字从上到下行从左到右ndash 汉字的书写方向有两种

bull 大陆的简体汉字的字从左到右行从上到下bull 港台与古旧书的繁体汉字的字从上到下行从右到左

国家标准bull 下面按发布时间列出若干已经公布的我国少数民族文字

编码集的国家标准(这些字符集一般分成两类对字母式结构文字采用八位编码对非字母式结构文字采用双字节编码)ndash GB 8045-87《信息处理交换用蒙古文七位和八位编码图形字

符集》收 82 个蒙古文字母和 12 个其他符号共 94 个字符ndash GB 12050-89《信息处理交换用维吾尔文编码图形字符集》收 32 个维吾尔文字母一个维吾尔文复合字符和 37 个其他符号共 70 个字符

ndash GB 12052-89《信息交换用朝鲜文编码字符集》收 5297 个朝鲜文字和 682 个其他符号(与 GB 2132同)共 5 979 个字符

ndash GB 13134-91《信息交换用彝文编码字符集》收 1165 个彝文字符和 688 个其他符号共 1853 个字符

ndash GB 16959-1997《信息技术 信息交换用藏文编码字符集 基本集》收 41 个藏文字母 36 个藏文主字 13 个元音字符12 个语音字符 10 个藏文数字 10 个半值符一个控制用连接符和 46 个其他藏文图形符号共 169 个字符

6 GB 13000bull GB 13000 是与 ISOIEC 10646 等价的国际通用编码字符集标准收汉字 2万多个但是与 GB 2312 和 GBK 不兼容

bull 1993年 5月 ISO 与 IEC 联合推出了可用于世界各种文字的通用编码字符集的国际标准的第 1部分ndash ISOIEC 10646-11993 Information technology -- Universal Multiple-Octe

t Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane (信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

ndash 该标准收字符 96万个几乎涵盖世界上的所有文字其中包含汉字 21 003 个

bull 1993年底我国推出了等同于国际标准 ISOIEC 1064611993 的强制性国家标准 ndash GB 130001-93《信息技术 通用多八位编码字符集( UCS ) 第一部分

体系结构与基本多文种平面》ndash 该标准于 1993年 12月 24日被国家技术监督局批准 1994年 8月 1日起实施

GB 13000 的主要特点

bull 世界各语言文种字符统一编码避免冲突便于国际交流

bull 编码空间宽阔连续每个图形字符的编码唯一(一字一码)不再存在兼容性问题

bull 按文种而不是按语言编码避免重复和浪费(如中日韩汉字的统一编码 CJK )

bull 与 GB 2312 和 GBK 不兼容

体系结构bull UCS 的体系结构是基于所谓ldquo多八位rdquo的而ldquo八位rdquo就是一个字节ldquo多八位rdquo就是多个字节

bull UCS采用 4 个字节来表征组面行位的四维空间bull 整个 UCS空间包含 128 个组( 0x00组 ~0x7F组)每组有 256 个平面( 0x00 平面 ~0xFF 平面)每个平面有 256 行每行又由 256 个字位构成

bull UCS共有( 128 times 256 = ) 32 768 个平面每个平面有( 256 times 256 = ) 65 536 个字位每个字位对应于一个字符的编码

bull 目前的编码只限于 00组已经定义的平面有 00组的00 平面mdashmdash称之为基本多文种平面 BMP ( Basic Multilingual Plane ) 及若干辅助平面

UCS 的全部编码空间

每个平面256times256 个

字位

00组 00 平面

00组 FF 平面

01组 00 平面

7F组 00 平面00

01组

7F组

UCS 的 00组

BMPbull BMP = Basic Multilingual Plane 基本多文种平面bull BMP 用作双八位编码字符集称之为 UCS-2 它被

分成四个区ndash A- 区(字位 0x0000~0x4DFF 有 19 903 个字位)用于

字母文字音节文字以及各种符号ndash I- 区(字位 0x4E00~0x9FFF 共 20 992 个字位)用于中日韩统一汉字( CJK )

ndash O- 区(字位 0xA000~0xDFFF 共 16 384 个字位)保留未来标准化用

ndash R- 区(字位 0xE000~0xFFFD 共 8 190 个字位)为 BMP 的限制使用区包括专用字符变形显现形式及兼容字符

BMP总貌

A-区

00~33 拼音文字(见下页)

34~3D 朝鲜文

3E~44 朝鲜文补充 -A

45~4D 朝鲜文补充 -B

I-区 4E~9F CJK统一汉字O-区 A0~DF

R-区

E0~F8 专用区

F9~FA CJK兼容汉字FB 拼音文字变形显现形式

FC~FD 阿拉伯文变形显现形式 -A

FE半形组合用标志

CJK兼容形式

小写变体

阿拉伯文变形显现形式 -B

FF 半形及全形字符 特殊字符

BMP 的0x00~0x33

行字母文字区

00 基本拉丁文 拉丁文-1补充

01 拉丁文扩充-A 拉丁文扩充-B

02 拉丁文扩充-B 国际音标扩充 进格修饰字符

03 组合用发音符 基本希腊文 希腊符号及哥普特文

04 西里尔文

05 美亚尼亚文 希伯来文(基本和扩充)

06 基本阿拉伯文 阿拉伯文扩充

07

08

09 梵文 孟加拉文

0A 锡克教文 古吉拉特文

0B 奥利雅文 泰米尔文

0C 泰卢固文 卡纳达文

0D 德拉维族文

0E 泰文 老挝文

0F

10 格鲁吉亚文

11 朝鲜文字母

12~1D

1E 拉丁文扩充增补

1F 希腊文扩充

20 广义标点 上下标 货币符号 符号组合用区分标志

21 类似字母的符号 数字形式 箭头

22 数学运算符

23 零杂技术用符号

24 控制图符 光学识别符 带括号的字母数字

25 制表符 方块元素 几何图形符

26 零杂符号

27 示意符等

28~2F

30 CJK符号和标点 平假名 片假名

31 注音 朝鲜文兼容字母 CJK零杂字符

32 带括号的CJK字母及月份

33 CJK兼容字符

留作将来标准化用

非图形字符

表示形式bull GB 13000提供了字符编码表示的两种替代使用的形式

ndash 双八位 BMP 形式( UCS-2 )mdashmdash允许使用 BMP 中的字符且每个字符用两个字节表示

ndash 肆八位正则形式( UCS-4 )mdashmdash允许使用 GB 13000 中的全部字符且每个字符用四个字节表示

bull 除了 UCS-24外还有另外两种变形的表示形式ndash UTF-8 (单字节 ~ 多字节)ndash UTF-16 (双字节和 4 字节与 UCS-2 等价)ndash 目前在工业上的实现均为 UTF-16 ( UCS-2 )和 UTF-8ndash UTF = Unicode UCS Transformation Format 统一码 UC

S转换格式bull 关于统一码我们会在下一小节详细介绍

7 GBK 与 GB 18030bull 由于 GB 13000 标准与 GB 2312 标准的字符编码不兼容作为过渡在国家信息技术标准化委员会的主持下制定了与 GB 2312兼容的《汉字内码扩展规范( GBK )》( K 为扩展的ldquo扩rdquo字的拼音首字母)并于 1995年 12月 15日由原国家技术监督局标准司联合原电子工业部科技与质量监督司作为指导性技术规范发布实施

bull 2000年 GBK又被国家标准 GB 18030-2000《信息技术 信息交换用汉字编码字符集 基本集的扩充》所代替该标准收汉字 2万 7千个

bull 与 GB 2312 一样 GB 18030 也为中国的强制性国家标准微软公司的 Windows XPVista78 中文版与苹果公司的 Mac OS X 和 iOS 谷歌公司的 Android (安卓)等操作系统已经全面支持 GBK

GB 18030 的码位范围分布

字节数 码位空间 码位数目

单字节 0x00~0x7F 128

双字节第 1字节 第 2字节

23 9400x81~0xFE

0x40~0x7E 0x80~0xFE

四字节第 1字节 第 2字节 第 3字节 第 4字节

1 587 6000x81~0xFE 0x30~0x39 0x81~0xFE 0x30~0x39

GB 18030的

总体结构图

收录字符bull 单字节部分mdashmdash收录了GBT 11383 的 0x00~0x7F 全部 128 个字符(似 ASCI

I )bull 双字节部分mdashmdash收录内容如下 (21 003 个汉字和 884 个符号共 21 887 个字符 )

ndash GB 130001-93 的全部 CJK 统一汉字字符 20 902 个( GB 2312 的编码汉字在双字节 2 区其他 CJK 统一汉字在双字节 34 区)

ndash GB 130001-93 的 CJK兼容区挑选出来的 21 个汉字ldquo郎凉秊helliphellip﨨﨩rdquo( 0xFD9C~0xFDA0 和 0xFE40~0xFE4F )

ndash GB 130001-93 中收录而 GB 2312未收录的台湾地区使用的图形字符 139 个ldquoˊˋ˙helliphelliprdquo( 0xA840~0xA895 和 0xA940~0XA988 )

ndash GB 130001-93收录的其他字符 31 ( 13)个(在双字节 5 区)ndash GB 2312-80 中的非汉字字符 682 个( 0xA1A1~0xA9EF )ndash GB 12345-90 的竖排标点符号 19 ( 29)个ldquo︵︶︹helliphellip︳︴rdquo( 0xA6D9~0xA6

F5 )ndash GB 2312-80未收录的 10 个小写罗马数字ldquoⅰⅱⅲhelliphellipⅸⅹrdquo( 0xA2A1~ 0xA2A

A )ndash GB 2312-80未收录的带音调的汉语拼音字母 5 ( 4)个ldquo ńňǹrdquo 以及 ɑ 和 ɡ ( 0

xA8BB~0xA8C0 )ndash 汉字数字零ldquo〇rdquo (0xA996) 和欧元符ldquoeurordquo (0xA2E3)ndash 表意文字描述符 13 个ldquohelliphelliprdquo( 0xA989~0xA995 )ndash 对 GB 130001-93增补的汉字和部首 构件 80 个ldquohelliphellip䶮rdquo( 0xFE50~ 0x

FEA0 )bull 四字节部分mdashmdash收录了上述双字节字符之外的包括 CJK 统一汉字扩充 A 在内

的 GB 130001-93 中的全部字符

GB 18030双字节部分的码位安排

类别 区名 码位范围 码位数 字符数 内容

符号区双字节 1区 A1A1~A9FE 846 718

GB 2312非汉字字符等

双字节 5区 A840~A9A0 192 166 台湾图符等

汉字区双字节 2区 B0A1~F7FE 6768 6763 GB 2312汉字双字节 3区 8140~A0FE 6080 6080 CJK统一汉字双字节 4区 AA40~FEA0 8160 8160 CJK统一汉字等

用户自定义区双字节用户区 1 AAA1~AFFE 564

用户自定义字符双字节用户区 2 F8A1~FEFE 658

双字节用户区 3 A140~A7A0 672

GB 18030双字节部分的编码空间结构图 尾字节

0x40larr――rarr0x7E 0x80larr――rarr0xA0 0xA1larr――――――――――――rarr0xFE

0x81 uarr darr

0xA0

0xA1 uarr darr

0xA7

0xA8 0xA9

首字节

0xAA uarr | | | | | | | | | | darr

0xFE

双字节 3区

汉字区6 080个码位

双字节用户区 3

用户自定义区672个码位

双字节 5区 图形符号区192个码位

双字节 4区

汉字区8 160个码位

双字节 1区

图形符号区564个码位

双字节 2区

汉字区6 768个码位

双字节用户区 1 用户自定义区564个码位

双字节用户区 2 用户自定义区658个码位

223 国际通用字符编码

bull Unicode (统一码)是由多语言软件制造商组成的统一码协会( httpwwwUnicodeorg)所制定一种国际字符的编码标准

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull 本节主要介绍这两种关系密切的主流国际字符编码标准的来历编码方案各自特点与相互关系

1 Unicode 统一码bull 发展历史

ndash 1987年施乐( Xerox )公司的 Joe Becker 与 Lee Collins 和苹果( Apple )公司的 Mark Davis 等人开始讨论统一编码 1987年 12月 Joe Becker造词 Unicode (统一码)含义为ldquo unique universal and uniform character encodingrdquo (单一通用统一的字符编码) 1989年 2月开始定期召开统一码会议 1989年 9月公布 Unicode草案

ndash 1991年 1月 3 日由 Xerox Apple Sun IBM Aldis Microsoft 等公司出资在美国加州成立了统一码协会( Unicode Consortium )并由协会设立非盈利性的统一码公司( Unicode Inc )后来 HP Adobe Borland Digital Lotus Novell 等公司也纷纷加入 1991年 1月成立统一码技术委员会 UTC 并制定了其规程

ndash 1991年 2月在 Ed Hart 的推动下进行了ldquo统一码对 10464 国际标准草案 1rdquo 的对话Unicode 与 ISOIEC 10646开始走向融合

ndash 1991年 8月发布 Unicode 标准 10版的第 1卷(体系结构非表意字符) 1992年6月发表 Unicode 10版的第 2卷(表意字符) 1993年 6月发布 Unicode 11版与 1993年 5月公布的 ISOIEC 10646-11993 实现了合并

ndash 1996年 7月发布 Unicode 20版ndash 1999年 9月发布 Unicode 30版ndash 2003年 4月发布 Unicode 40版(对应于 ISOIEC 106462003 ) 2004年 3月 31日发布 Unicode 401版 2005年 3月 31日发布 Unicode 410版

ndash 2006年 7月 14日发布 Unicode 50版 2008年 4月 4日发布 Unicode 51版 2009年 12月 22日发布 Unicode 52版

ndash 2010年 10月发布 Unicode 60版 2012年 1月发布 Unicode 61版(对应于 ISOIEC 106462012 ) 2012年 9月推出 Unicode 62版 2013年 9月推出 Unicode 63版

ndash 2014年 6月 16日发布 Unicode 70版 ndash 2015年 6月 17日发布 Unicode 80版

字符集bull Unicode 字符集的空间分成双字节的基本多语言平面 (Basic Multilingual Pla

ne BMP) 和 4 字节的辅助多语言平面 (Supplementary Multilingual Plane SMP) 两种

bull BMPndash Unicode 的基本平面或基本多语言平面 BMP 对应于 ISOIEC 10646-1 的第 00组的 00 平面( BMP )即 Unicode 与 ISOIEC 10646 的 BMP 中的字符编码完全一致

bull SMPndash 鉴于 Unicode 原有的 16位元空间不足以应用从 Unicode 31版本开始设立了 16 个辅助平面使 Unicode 的可使用空间由六万多字增至约一百万字

ndash 原有的 Unicode双字节空间称为基本平面或基本多语言平面 BMP 辅助多语言平面 SMP 字符要用 4 字节来储存

ndash 第一辅助平面摆放拼音文字(主要为现时已不再使用的文字)及符号范围在 U+10000 - U+1FFFD

ndash 第二辅助平面又称为表意文字补充平面 (Supplementary Ideographic Plane 简称 SIP) 现时摆放ldquo中日韩统汉字扩展 B 区rdquo共 43253 个汉字范围在 U+20000 - U+2FFFD

ndash 第三至十三辅助平面尚未使用ndash 第十四辅助平面又称为特殊用途补充平面 (Supplementary Special-purpose Pl

ane 简称 SSP) 摆放 Language tags 和 Variation Selectors 它们都是控制字符范围在 U+E0000 - U+E01FF

ndash 第十五至十六辅助平面都是私人使用区它们的范围是 U+F0000 - U+FFFFD 及 U+100000 - U+1000FD

bull Unicode 字符集的具体编码方式参加第 4小节ldquo 4 UTFrdquo

2 ISOIEC 10646

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull ISOIEC 10646 标准由 ISO 与 IEC 联合成立的 ISOIEC JTC1SC2WG2 制定ndash JTC 1 ( Joint Technical Committee 1 on Information

technology ISOIEC信息技术联合技术委员会 1 )负责信息技术方面标准的制定工作

ndash SC 2 ( SubCommittee 2 on Coded character sets 编码字符集分会 2 )下的 WG 2 ( Working Group 2 on Universal coded character set 通用编码字符集工作组 2 )负责制定国际通用字符编码标准即后来公布的 ISOIEC 10646

发展历史bull 1984年 ISO 的一些会员国发起制定新的国际字符编码标准同年 4月 ISO

与 IEC 联合成立 ISOIEC JTC1SC2WG2 1987年 3月制定出编码架构1992年 6月投票通过第二版国际标准草案

bull 1993年 5月推出 10646 标准时将内容分成两个部分标准首先发布的是其中的第 1 个部分(体系结构与基本多文种平面)的第 1版( Edition 1 ) ISOIEC 10646-11993 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane(信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

bull 2000年 3月推出 10646 标准第一个部分的第 2版( Edition 2 ) ISOIEC 10646-12000 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane

bull 2001年 10月推出 10646 标准第 2版的第二个部分(辅助平面)的第 1版( Edition 1 ) ISOIEC 10646-22001 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 2 Supplementary Planes

bull 2003年 10月推出的 10646新标准(第 1版 Edition 1 )将老标准中的两个部分标准合并成了一个单一的标准 ISOIEC 106462003 Information technology -- Universal Multiple- Octet Coded Character Set (UCS) 后来又于 2010年 2012年和 2014年分别推出了 ISOIEC 106462010 (第 2版)ISOIEC 106462012 (第 3版)和 ISOIEC 106462014 (第 4版)

UCS 通用字符集bull 通用字符集( Universal Character Set UCS )是

ISOIEC 10646 标准所定义的字符编码方式采用 4字节编码又称为 Universal Multiple-Octet Coded Character Set (通用多八位编码字符集)

bull 通用字符集是所有包括了其他字符集它保证了与其他字符集的双向兼容即如果你将任何文本字符串翻译到 UCS 格式然后再翻译回原编码你不会丢失任何信息

bull UCS 包含了已知语言的所有字符除了拉丁语希腊语斯拉夫语希伯来语阿拉伯语亚美尼亚语格鲁吉亚语还包括中文日文韩文这样的象形文字 UCS 还包括大量的图形印刷数学科学符号

名字与组合字符bull UCS 不仅给每个字符分配一个代码而且赋予了

一个正式的名字表示一个 UCS 或 Unicode值的十六进制数通常在前面加上ldquo U+rdquo 例如ldquo U+0041rdquo代表字符ldquo Ardquo

bull UCS里有些编码点分配给了组合字符组合字符机制允许在任何字符后加上重音符或其他指示标记 这在科学符号中特别有用 比如数学方程式和国际音标字母 可能会需要在一个基本字符后组合上一个或多个指示标记

实现级别bull 并不是所有的系统都需要支持像组合字符这样的的先进

机制因此 ISO 10646 指定了如下三种实现级别ndash 级别 1不支持组合字符和韩语 Hangul Jamo 字符 ( 一种特

别的 更加复杂的韩国文的编码 使用两个或三个子字符来编码一个韩文音节 )

ndash 级别 2类似于级别 1 但在某些文字中允许一列固定的组合字符 (例如 希伯来文 阿拉伯文 Devangari 孟加拉语 果鲁穆奇语 Gujarati Oriya 泰米尔语 Telugo 印 埃纳德语 Malayalam 泰国语和老挝语 ) 因为如果没有最起码的几个组合字符 UCS就不能完整地表达这些语言

ndash 级别 3支持所有的 UCS 字符如可以在任意一个字符上加上一个箭头或 和一个 tilde(颚化符号即字母上面的~ )

编码方式bull UCS 有如下两种编码方式

ndash UCS-2与 Unicode 的 2 字节编码基本一样ndash UCS-4 4 字节编码目前是在 UCS-2 前加

上 2 个全零的字节bull UCS 还有 UTF 编码方式参见下面第 4小节ldquo 4 UTFrdquo

3 Unicode 与 ISOIEC 10646bull 关系

ndash 历史上存在两个独立的尝试创立单一字符集的组织即国际标准化组织( ISO )和多语言软件制造商组成的统一码协会组织( Unicodeorg )前者开发的 ISO 10646项目后者开发的 Unicode项目因此最初制定了不同的标准

ndash 1991年前后两个项目的参与者都认识到世界不需要两个不兼容的字符集于是它们开始合并双方的工作成果并为创立一个单一编码表而协同工作

ndash 从 Unicode20开始 Unicode采用了与 ISO 10646-1相同的字库和字码 ISO 也承诺 ISO10646 将不会替超出 U+10FFFF 的 UCS-4 编码赋值以使得两者保持一致

ndash 两个项目仍都存在并独立地公布各自的标准但 Unicode协会和 ISOIEC JTC1SC2 都同意保持两者标准的码表兼容并紧密地共同调整任何未来的扩展

异同bull Unicode协会公布的 Unicode 标准包含了 ISO 10646-1 实现级别

3 的基本多文种平面在两个标准里所有的字符都在相同的位置并且有相同的名字

bull ISO 10646 标准就像 ISO 8859 标准一样只不过是一个简单的字符集表它定义了一些编码的别名指定了一些与标准有关的术语并包括了规范说明指定了怎样使用 UCS连接其他 ISO 标准的实现等

bull Unicode 标准额外定义了许多与字符有关的语义符号学并详细说明了绘制某些语言(如阿拉伯语)表达形式的算法处理双向文字(比如拉丁文和希伯来文的混合文字)的算法排序与字符串比较所需的算法等等

bull 考虑到 Unicode 标准有一个易记的名字既便宜又包括更多的辅助信息因而它使用得更广泛然而

bull 一般认为用于打印 ISO 10646-1 标准的字体在某些方面的质量要高于用于打印 Unicode 20 的专业字体设计者总是被建议说要两个标准都实现但一些提供的样例字形有显著的区别 ISO 10646-1 标准同样使用四种不同的风格变体来显示表意文字如中文日文和韩文 (CJK) 而 Unicode 20 的表里只有中文的变体

4 UTFbull Unicode 和 UCS 都是一个字符集可以看作为内码bull UTF ( UnicodeUCS Transformation Format 统一码

通用字符集转换格式)是一种编码方式它的出现是因为 Unicode 和 UCS 不适宜在某些场合直接传输和处理

bull UCS 和 Unicode 只是分配整数给字符的编码表现在存在好几种将一串字符表示为一串字节的方法(如高或低位字节在前)

bull 最显而易见的两种方法是将 UCS 和 Unicode 文本存储为 2 个 或 4 个字节序列的串这两种方法的正式名称分别为 UCS-2 和 UCS-4

bull 常用的 UTF具体编码方式有 UTF-8 UTF-16 和 UTF-32

UTF-8

bull UTF-8 是 UTF 的一种具体编码方式在 ISO 10646-1 的附录 R 和 IETF 的 RFC 2279 里定义

bull 由于要使文档中的文字与 ASCII兼容故 UTF-8 选择了使用可变长度字节来储存 Unicode 和 UCS 例如ndash ASCII 字母继续使用 1 字节储存ndash 重音文字希腊字母或西里尔字母等使用 2 字节来储存ndash 常用的汉字就要使用 3 字节ndash 辅助平面字符则使用 4 字节ndash 即 ASCII 不作变换其他字符做变长编码每个字符 1~4 字节

bull UTF-8 通常作为外码bull 在 UTF-8 文件的开首很多时都放置一个 U+FEFF 字符

(UTF-8 以 EF BB BF 代表 ) 以显示这个文字档案是以UTF-8 编码

UTF-8 的优点bull 与 CPU 字节顺序无关可以在不同平台之间交流

bull 容错能力高任何一个字节损坏后最多只会导致一个编码码位损失不会链锁错误 ( 如 GB 码错一个字节就会整行乱码 )

UTF-8 的缺点bull UTF-8 使用可变长度字节储存使计算机程序设计变得复杂 (故此在计算机程序或操作系统内部多采用 UCS-2 编码 )

bull 在旧式的中文日文及朝鲜文编码之中每字符都使用 2 字节储存而 UTF-8 须使用 3 字节 (采用 UTF-16 编码则可只使用 2字节储存 )

bull 泰语以往使用的 ISO 8859-11 每字符只使用 1 字节储存而 UTF-8 须使用 3 字节

UTF-8储存的多字节串字符bull U-00000000 - U-0000007F 0xxxxxxx bull U-00000080 - U-000007FF 110xxxxx 10xxxxxx

bull U-00000800 - U-0000FFFF 1110xxxx 10xxxxxx

10xxxxxx bull U-00010000 - U-001FFFFF 11110xxx 10xxxxx

x 10xxxxxx 10xxxxxx bull 在多字节串中第一个字节的开头ldquo 1rdquo 的数目就

是整个串中字节的数目bull 每个使用 UTF-8储存的字符除了第一个字节外其余字节的头两个位元都是以 10 开始使文字处理器能够较快地找出每个字符的开始位置

UTF-16bull UTF-16 是 UTF 的另一种具体编码方式在 ISO 1064

6-1 的附录 Q 和 IETF 的 RFC 2781 里定义bull UTF-16 是变长码( 2 或 4 字节)大致相当于 20位编码值在 0 到 0x10FFFF 之间基本上就是 Unicode 编码的实现 UTF-16 与 CPU 字序有关但因为最省空间常作为网络传输的外码 UTF-16 是 Unicode 的完美编码

bull lt0x10000 的直接用其对应的 16位整数编码位于 0x10000 ~ 0x10FFFF 之间的用 0xD800~0xDBFF 的 16位整数后跟 0xDC00~0xDFFF 的 16位整数的 4 字节编码 gt 0x10FFFF 的不能用 UTF-16 表示

bull 在 Unicode 的 BMP 中定义的字符(无论是拉丁字母汉字或其他文字或符号)一律使用 2 字节存储而在辅助平面定义的字符则以两个 2 字节的值来存储

UTF-16 的特点bull UTF-16比起 UTF-8 的好处在于大部分字符都以固定长

度的 2 字节存储但 UTF-16却无法相容于 ASCII 编码bull UTF-16 有两种编码模式即大尾序( big Endian 高位字节在前)和小尾序( little Endian 高位字节在后)储存形式(一般來說以 Macintosh 制作和存储的文字使用大尾序格式以 Microsoft 或 Linux 制作和存储的文字使用小尾序格式)

bull 为了弄区分 UTF-16 文件的大小尾序在 UTF-16 文件的开头都会放置一个 U+FEFF 字符作为字节顺序标记 (UTF-16LE 以 FF FE代表 UTF-16BE 以 FE FF代表 ) 以显示该文档是以 UTF-16 编码的

UTF-32

bull UTF-32 仅使用了 Unicode范围 (0 到 0x10FFFF) 的 32位编码相当于 UCS-4 的子集

bull 由于 Unicode 和 ISOIEC 10646 的编码和结构与前面讲过的 GB 13000 类似或等价这里就不再做详细的介绍

5支持bull 现在 UnicodeUCS 已经获得了十分广泛的支

持ndash网络与浏览器(如 HTML 4050 XML 与 IE

Safari Netscape Firefox Chrome Opera Edge 等)

ndash操作系统(如 Windows NT2000XPVista7810 Mac OS X iOS Android和 Linux )

ndash 编程语言新版本(如 CC++JavaObjective-CC Swift 等)

Unicode 代码的浏览器显示代码 字符标准名称 (英语 )

浏览器的显示

amp65 大写拉丁字母 A A

amp223 小写拉丁字母 Sharp S szlig

amp254 小写拉丁字母 Thorn thorn

amp916 大写希腊字母 Delta Δ

amp1049 大写斯拉夫字母 Short I Й

amp1511 希伯来字母 Qof ק

amp1605 阿拉伯字母 Meem م

amp3671 泰文数字 7 ๗amp4688 埃塞俄比亚音节文字 Qha ቐ

amp12354 日语平假名 A あamp12450 日语片假名 A アamp21494 简体汉字 叶 叶amp33865 繁体汉字 葉 葉amp50685 韩国音节文字 Yeob 엽

23 文字输出bull 文字输出是指将计算机内的字符编码通过计算机的输出设备(如显示器打印机喇叭)展现出所对应字符的图形或声音供人们阅读或聆听

bull 本节主要介绍文字图示输出的字形技术bull 文字声音输出属于语音合成只在本节的末尾作简单的介绍

231 字形技术bull 文字 = 图形bull 不论是象形文字中的单字还是拼音文字

中的字母都是用图形来表示的bull 在计算机里文字的表示 输出(显示和打

印)涉及ndash 字型ndash 字体ndash 字库

1字型bull 字型指构造和生成字形的方法一般可分为

ndash 点阵字 DOS 显卡 ROM 金山 科印特点似位图显示快占空间(字库大)放大后有马赛克效应

bull 显示字母 88 汉字 1616bull 打印 2424 4848 6464

ndash 矢量字单线条用于笔式绘图仪特点字库小算法简单难看

ndash 轮廓字用曲线描绘字的轮廓输出效果好所见即所得(WYSWYG) 可无级放大易实现空心 阴影 填充 变形等各种特效功能轮廓曲线一般采用样条曲线如 TrueType (Apple 1991 Mac OS Microsoft 1992 Windows 31)用的是二次 B 样条 Bezier曲线中文之星 RichWin采用的是三次 B 样条 Bezier曲线

字型种类

2字体bull 字体指字的形状风格如

ndash 汉字的

ndash 英文的

宋体楷体黑体仿宋

行楷隶书新魏幼圆

Times New Roman Arial Narrow Courier New

常用汉字字体bull 宋体mdashmdash宋体来自于北宋时雕版刻书所采用的欧体字(唐朝欧阳询体)宋体字的横顿拉捺挑钩别具特色间架平正疏密适中字体秀丽遒劲但笔画横细竖粗适合于刀刻不宜于手写现在宋体广泛用于印刷常来表现文档的正文

bull 仿宋体mdashmdash 1920年钱塘的丁辅之与丁善之等人将明代以后盛行的方廓形字体加以改造创造出长形和方形的聚珍仿宋后来演化为现在的仿宋体仿宋体比较接近于手写体为宋体和楷体的折中是采用的宋体的结构和楷体的笔法而成现常来表现打印文件以及文档的摘要和注释等

bull 黑体mdashmdash黑体是适应工艺美术的发展而出现的一种等线体是从日本引进的黑体的结构与宋体没有什么差别只是其笔画粗细一致健实粗壮主要用于文档的标题和重点及标语广告等方面

bull 楷体mdashmdash楷体源于楷书楷体的笔画圆浑笔调灵活结构端正美观但不宜于木板雕刻所以直到清末西洋的石板印刷术传入后才开始广泛用于印刷现代的楷体创造于 20世纪的二三十年代主要用于文档的正文(多用于中小学教材)也可用于工艺美术等方面

3字库bull 字库为一种文字的某一字体的所有字符的集合一般存放在一个磁盘文件中

bull 由于象形文字中单字的数量大(成千上万)而拼音文字中字母的数量小(不到一百个)所以字库的大小有很大的差别

bull 为了使文档界面丰富多彩常见的字处理软件都支持多种字体带有众多字库

4点阵字型的国家标准bull 我国已经公布了若干字体的点阵字型之国家标准

ndash GB 50071-19852001 信息技术 汉字编码字符集(基本集) 24 点阵字型

ndash GB 50072-19852001 信息技术 汉字编码字符集(辅助集) 24 点阵字型

ndash GB 5199-19862001 信息技术 汉字编码字符集(基本集) 16 点阵字型 宋体

ndash GB 6345-19862001 信息技术 汉字编码字符集(基本集) 32 点阵字型 宋体

ndash GB 12041-2001 信息技术 汉字编码字符集(基本集) 48点阵字型 宋体

ndash GB 17698-1999 信息技术 通用多八位编码字符集( I 区) 汉字 16 点阵字型

232 语音合成bull 文字的声音输出主要使用的是语音合成的技术bull 语音合成功能是ldquo文rarr语rdquo转换bull 文语转换 TTS (Text-To-Speech) 是将文本形式的信息转换成自然语音的一种技术其最终目标是使计算机输出清晰而又自然的声音

bull 英语的语音合成在上世纪 80年代就早已成熟而中文 汉语的合成现在也趋于成熟并有了广泛的应用(如汽车导航仪智能手机等)

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 19: 第一篇  媒体

ASCII 字符集

0 1 2 3 4 5 6 7

0 NUL DLE SP 0 P ` p

1 SOH DC1 1 A Q a q

2 STX DC2 ldquo 2 B R b r

3 ETX DC3 3 C S c s

4 EOT DC4 $ 4 D T d t

5 ENQ NAK 5 E U e u

6 ACK SYN amp 6 F V f v

7 BEL ETB lsquo 7 G W g w

8 BS CAN ( 8 H X h x

9 HT EM ) 9 I Y i y

A LF SUB J Z j z

B VT ESC + K [ k

C FF FS lt L l |

D CR GS - = M ] m

E SO RS gt N ^ n ~

F SI US O _ o DEL

bull ASCII 字符集以 32 个字符为一组bull 第一组( 0x00~0x1F )为控制符

(非打印符)用于数据处理 通信系统及其相应设备中的信息交换

bull 后面的除了第一个字符( SP空格符 0x20 )和最后一个字符( DEL删除符 0x7F )外全都是可打印(显示)的图示符包括ndash 第二组( 0x20 ~0x6F )的数字空格

和常用标点符号ndash 第三组( 0x40~0x5F )的大写拉丁字

母(即英文字母)与少数标点符号ndash 第四组( 0x60~0x7F )的小写拉丁字

母与少数标点符号

ASCII 的国际标准bull 1972年美国的国家标准 ASCII 与其若干拉丁语系国家的变体一起成为国际标准 ISO 6461972 ( Information processing -- ISO 7-bit coded character set for information interchange 信息处理mdashmdash ISO 用于信息交换的七位编码字符集)

bull 这些变体主要是将 ASCII 字符集中不常用的符号ldquo $ [ ] ^ ` | ~rdquo替换为他们各自语言的重音符号

bull 1987年 ISO 646 中的 ASCII部分成为 646 的国际参考版( IRV = International Reference Version ) ISO 646IRV1987 但是其中的美元符 $被替换为国际通用货币符 curren

bull 1991年推出的修订版 ISOIEC 646IRV1991 还原成原始的美国 ASCII 所以又被称为 ISO 646-US 或 US-ASCII

替代标准bull 由于 ISO 646 中各国的变体存在明显的兼容和统一问题现在已经作废

bull 有关编码已经被新的国际标准 ISOIEC 8859-1~16 19871998 ( Information processingtechnology -- 8-bit single-byte coded graphic character sets 信息处理 技术mdashmdash 8位单字节编码的图形字符集)所替代

bull 后来 ISO 646 与 ISOIEC 8859 标准又都被纳入 ISOIEC 1064619932003 ( Information technology -- Universal Multiple-Octet Coded Character Set (UCS) 信息技术mdashmdash通用多八位编码字符集 (UCS) )标准之中

bull 其中的标准编号 ISO 10646 = ISO 646 + 10000

标准化组织bull ANSI = American National Standards Institute 美

国国家标准协会bull ISO = International Organization for Standardization

国际标准化组织是由 153 个国家的国家标准协会联合组成的一个非政府国际组织总部(中央秘书处)设在瑞士的日内瓦负责制定适应商业和广泛社会需要的各种国际标准网址为 httpwwwisoorg

bull IEC = International Electrotechnical Commission 国际电工技术委员会是一个成立于 1906年 6月的国际标准化权威组织属于联合国的甲级咨询机构负责制定关于电工电子各方面的标准有 42 个会员国总部也设在瑞士的日内瓦网址为httpwwwiecch我国于 1958年 8月参加

2 EBCDIC

bull 西文的字符编码方案除了通用的 ASCII外还有 IBM公司于 1960年代初提出的 EBCDIC ( Extended Binary-Coded Decimal Interchange Code扩充的二进制编码的十进制交换码)

bull EBCDIC 现在仍然(仅)在 IBM 的 OS390 与 TPF 以及富士通 - 西门子的 BS2000OSD 等大型机的操作系统中使用

bull EBCDIC 是一种八位编码其字符的编码方案与ASCII 的完全不同

EBCDIC 字符集 0 1 2 3 4 5 6 7 8 9 A B C D E F

0 NUL DLE DS SP amp - 0

1 SOH DC1 SOS a j ~ A J 1

2 STX DC2 FS SYN b k s B K S 2

3 ETX TM c l t C L T 3

4 PF RES BYP PN d m u D M U 4

5 HT NL LF RS e n v E N V 5

6 LC BS ETB UC f o w F O W 6

7 DEL IL ESC EOT g p x G P X 7

8 GE CAN h q y H Q Y 8

9 RLF EM ` i r z I R Z 9

A SMM CC SM cent | |

B VT CU1 CU2 CU3 $

C FF IFS DC4 gt

D CR IGS ENQ NAK ( ) _ lsquo

E SO IRS ACK + lt =

F SI IUS BEL SUB | ldquo EO

3扩展 ASCII 显示字符bull ( 1 ) IBM PC

ndash IBM PC 的扩展 ASCII 显示字符由 IBM公司为其 PC 机制定可以由原始的 IBM PC 显示器在 DOS状态下显示

bull ( 2 ) Microsoft Windows ndash Microsoft Windows 的扩展 ASCII 显示字符由

微软公司为其Windows操作系统制定可以在Windows环境的西文状态下被显示

IBM PC 的扩展 ASCII 显示字符表

Microsoft Windows 的扩展 ASCII 显示字符表

222 中文编码bull 1 GB 1988 与 GB 2311

bull 2 GB 2312

bull 3汉字编码的辅助集bull 4 Big5

bull 5少数民族文字编码bull 6 GB 13000

bull 7 GBK 与 GB 18030

汉字编码bull 为了计算机处理汉字必须先对汉字进行编码由于汉

字数量大(《康熙字典》收字 47 035 个《汉语大字典》收字 54 678 个据统计在形成楷体后出现的汉字约有 9万个左右)显然不能像 ASCII那样用 7位或单字节来进行编码至少需要两个字节(最多可表示 6万5千多个字符)

bull 1980年我国制定了著名的 GB 2312-80双字节汉字编码标准(其中 GB 为ldquo国标rdquo这两个汉字的拼音首字母)收汉字 6 763 个

bull 1993年底又推出了等同于国际通用字符编码标准 ISOIEC 106461-1993 的国家标准 GB 130001-93 收汉字 20 902 个

bull 由于 GB 13000 与 GB 2312 的编码不兼容作为过渡2000年又公布了 GB 18030-2000 ( GBK )收汉字2万 7千个

1 GB 1988 与 GB 2311

bull 为了能够同时表示和处理汉字和英文实现中外文混排汉字编码必须兼容通用的 ASCII 编码因此1980年我国制定了与国际标准 ISO 6461972 (即ASCII )对应的国家标准 GB 1988-80《信息处理交换用的七位编码字符集》

bull 汉字成千上万不可能像 ASCII 一样只用单字节的七位来表示必须扩展到八位和多字节但是不能随意扩充而应该符合国际规范因此我国于 1980年又制定了与七位代码扩充到八位编码的国际标准 ISO 2022兼容的国家标准 GB 2311-80《信息处理交换用七位编码字符集的扩充办法》

GB 1988-80 ( ASCII )的代码结构图

行 0 1 2 3 4 5 6 7

0 SP

1 helliphellip

15

16

32个

控制符

94个

图形字符

DEL

GB 2311-80 的八位编码结构图列

行 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0 SP 100

1

helliphellip

14

15

C0

32个

控制符

GL

94或 96个

图形字符

DEL

C1

32个

控制符

GR

94或 96个

图形字符

1515

2 GB 2312

bull GB 2312-80《信息交换用汉字编码字符集 middot基本集》是我国制定的一个使用最广泛的汉字编码的强制性国家标准由原第四机械工业部的华北计算机研究所(后改名为电子工业部第十五研究所)起草1980年批准 1981年 5月 1日起实施

bull GB 2312-80 是在已有的国家标准 GB 1988-80(对应于 ISO 646 )和 GB 2311-80 (对应于 ISO 2022 )的基础上制定的采用与 ISO 2022兼容的GB 2311 之 7位到八位的代码扩充办法用双字节编码表示汉字与 ASCII兼容

收录的字符bull GB 2312 对应的是汉字的基本集共收汉字 6 763 个

可达到 9999 的使用频率因此除了极少数生僻的人名地名和古文外 GB 2312 中的汉字已经能基本满足平时的使用了

bull 除了汉字外 GB 2312 还收录了 682 个非汉字图形符号包括 202 个一般符号(含间隔符标点运算符和制表符) 60 个序号符 22 个数字符 52 个英文字母 169 个日文假名 48 个希腊字母 66 个俄文字母 26 个汉语拼音符号和 37 个汉语注音字母

bull 所以在 GB 2312-80 标准中共收录了( 6 763 汉字 + 682 非汉字图符 = ) 7 445 图形字符

两级汉字bull GB 2312 将其收录的六千多个汉字分成两个级别bull 一级汉字有 3 755 个都为使用频率高的常用汉

字为便于检索像字典那样将这些汉字按拼音字母顺序排列(同音字再按笔顺的横竖撇捺点折序排列)

bull 二级汉字有 3 008 个大部分较生僻不易掌握读音所以按部首顺序排列(同部首的字按笔画数排列同笔画数的字再按笔顺排列)

编码方案bull GB 2312 对所有图形字符(包括汉字和非汉字图符)都采用两个字节表示每个字节的低七位用于编码最高位全为 1 这样可以兼容 ASCII 编码(字节的最高位全为 0 )

bull 虽然在一个字节中最高位为 1 的符号位置有 128 个但从前面 GB 2311 的分析可知为了与 ASCII 的代码结构兼容保留了( 32 + 2 = ) 34 个控制符位置最后只有( 128 ndash 34 = ) 94 个符号位可供图形字符编码使用

bull 图形字符在代码表中的位置用区位码表示将码表分成94 个区对应于编码的第一个字节取值 0x21~0x7E 每个区又分成 94 个位对应于编码的第二个字节取值 0x21~0x7E (参见表 2-6 )

bull 例如ldquo中山大学rdquo的编码为中 (0xD6D0) 山 (0xC9BD) 大 (0xB4F3) 学 (0xD1A7)

GB 2312-80 字符集结构 20 21 22 helliphellip 7D 7E 7F

位号

区号

1 2 helliphellip 93 94

20

21~29 1~9 非汉字图符(682个)

2A~2F 10~15 空白区

30~57 16~55 一级汉字(3 755个)

58~77 56~87 二级汉字(3 008个)

78~7E 88~94 空白区

7F

第 1 区的部分非汉字图符

1区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 middot ˉ ˇ uml 々 mdash ~ hellip lsquo rsquo ldquo

17~32 rdquo 〔 〕 〈 〉 《 》 「 」 『 』 〖 〗 【 】 plusmn

33~48 times divide ∶ and or sum prod cup cap isin ∷ radic perp ∥ ang

49~64 ⊙ int ∮ equiv ≌ asymp ∽ prop ne ltu gtu le ge infin ∵ there4

65~80 deg prime Prime $ curren ¢ £ permil sect

81~94 rarr larr uarr darr

第 16 区的部分一级汉字

16区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 啊 阿 埃 挨 哎 唉 哀 皑 癌 蔼 矮 艾 碍 爱 隘 鞍

17~32 氨 安 俺 按 暗 岸 胺 案 肮 昂 盎 凹 敖 熬 翱 袄

33~48 傲 奥 懊 澳 芭 捌 扒 叭 吧 笆 八 疤 巴 拔 跋 靶

49~64 把 耙 坝 霸 罢 爸 白 柏 百 摆 佰 败 拜 稗 斑 班

65~80 搬 扳 般 颁 板 版 扮 拌 伴 瓣 半 办 绊 邦 帮 梆

81~94 榜 膀 绑 棒 磅 蚌 镑 傍 谤 苞 胞 包 褒 剥

第 56 区的部分二级汉字

56区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 亍 丌 兀 丐 廿 卅 丕 亘 丞 鬲 孬 噩 丨 禺 丿 匕

17~32 乇 夭 爻 卮 氐 囟 胤 馗 毓 睾 鼗 丶 亟 鼐 乜 乩

33~48 亓 芈 孛 啬 嘏 仄 厍 厝 厣 厥 厮 靥 赝 匚 叵 匦

49~64 匮 匾 赜 卦 卣 刂 刈 刎 刭 刳 刿 剀 剌 剞 剡 剜

65~80 蒯 剽 劂 劁 劐 劓 冂 罔 亻 仃 仉 仂 仨 仡 仫 仞

81~94 伛 仳 伢 佤 仵 伥 伧 伉 伫 佞 佧 攸 佚 佝

3汉字编码的辅助集bull 除了GB 2312基本集的 6 763 个简体汉字外国家标

准还给出了汉字编码字符集的多个辅助集bull 第二 四辅助集分别增加了 7 237 7 039 个简体汉字bull 第一和三 五辅助集则分别是与基本集和第二 四辅助集所对应的繁体汉字字符集的国家标准

bull 基本集加上辅助集共有 21 039 个简体汉字和 21 142个繁体汉字

bull 繁体汉字之所以多一些是因为在第一辅助集中有时几个繁体字对应一个简体字因此比基本集多出 103 个汉字

bull 基本集和辅助集的代码页之间靠其编码字节的最高位来区分

编码字符的分页标志

双字节汉字编码的页面结构第二字节 列号

行号 0 middot middot middot 32 33 34 helliphellip 125 126 127 128middot middot 160 161 162 helliphellip 254 255 0 middot middot 32

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

33 34 middot middot middot 126

1 2 middot middot middot 94

第四五辅助集 (7 039个汉字)

127

(兼容ASCII)

128 middot middot 160

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

161 162 middot middot middot 254

1 2 middot middot middot 94

第二三辅助集 (7 237个汉字)

1 2 middot middot middot 94

基本集第一辅助集 (6 763 6 866个汉字) (682个非汉字图符)

第一字节

255

4 Big5

bull 除了中国大陆使用的简体汉字外在台湾香港澳门和海外华侨社区使用的是传统的繁体汉字

bull 简体汉字使用 GB (国标)系列编码标准bull 繁体汉字一般使用的是 Big5内码(大五码)即台湾的ldquo资讯工业策进会rdquo发布的《标准交换码 (Ⅲ码 )》收录汉字 13 053 个

bull Big5内码是 1984年由台湾财团法人资讯工业策进会与宏碁 (Acer) 神通 (MiTAC) 佳佳零壹 (Zero One) 大众 (FIC) 等五大软件公司联合推出故称为大五码

BIG5 的代码空间低位字节

00 hellip 3F 40 hellip 7E 7F hellip A0 A1 hellip FE FF

高位字节

00middot

80

81middot

A0用户定义区 用户定义区

A1A2A3

非汉字图符 非汉字图符

A4middot

C6常用汉字 常用汉字

C7C8

用户定义区 用户定义区

C9middot

F9次常用汉字 次常用汉字

FAmiddot

FE用户定义区 用户定义区

FF

5少数民族文字编码bull 中国共有 56 个民族除了汉回满族一般使用汉语外其他少数民族大多有自己的民族语言

bull 我国各民族使用的 50 多种文字可以分为字母式结构文字和非字母式结构文字两大类ndash 字母式结构的有拉丁文斯拉夫文蒙古文维吾尔文哈萨克文藏文和朝鲜文等字母式

ndash 非字母式结构的有汉字象形文字图画文字和音节文字等bull 各民族文字的书写方向也有不同

ndash 壮文藏文朝鲜文彝文等的字从左到右行从上到下ndash 维吾尔文哈萨克文和柯尔克孜文等的字从右到左行从上

到下ndash 蒙古文和满文的字从上到下行从左到右ndash 汉字的书写方向有两种

bull 大陆的简体汉字的字从左到右行从上到下bull 港台与古旧书的繁体汉字的字从上到下行从右到左

国家标准bull 下面按发布时间列出若干已经公布的我国少数民族文字

编码集的国家标准(这些字符集一般分成两类对字母式结构文字采用八位编码对非字母式结构文字采用双字节编码)ndash GB 8045-87《信息处理交换用蒙古文七位和八位编码图形字

符集》收 82 个蒙古文字母和 12 个其他符号共 94 个字符ndash GB 12050-89《信息处理交换用维吾尔文编码图形字符集》收 32 个维吾尔文字母一个维吾尔文复合字符和 37 个其他符号共 70 个字符

ndash GB 12052-89《信息交换用朝鲜文编码字符集》收 5297 个朝鲜文字和 682 个其他符号(与 GB 2132同)共 5 979 个字符

ndash GB 13134-91《信息交换用彝文编码字符集》收 1165 个彝文字符和 688 个其他符号共 1853 个字符

ndash GB 16959-1997《信息技术 信息交换用藏文编码字符集 基本集》收 41 个藏文字母 36 个藏文主字 13 个元音字符12 个语音字符 10 个藏文数字 10 个半值符一个控制用连接符和 46 个其他藏文图形符号共 169 个字符

6 GB 13000bull GB 13000 是与 ISOIEC 10646 等价的国际通用编码字符集标准收汉字 2万多个但是与 GB 2312 和 GBK 不兼容

bull 1993年 5月 ISO 与 IEC 联合推出了可用于世界各种文字的通用编码字符集的国际标准的第 1部分ndash ISOIEC 10646-11993 Information technology -- Universal Multiple-Octe

t Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane (信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

ndash 该标准收字符 96万个几乎涵盖世界上的所有文字其中包含汉字 21 003 个

bull 1993年底我国推出了等同于国际标准 ISOIEC 1064611993 的强制性国家标准 ndash GB 130001-93《信息技术 通用多八位编码字符集( UCS ) 第一部分

体系结构与基本多文种平面》ndash 该标准于 1993年 12月 24日被国家技术监督局批准 1994年 8月 1日起实施

GB 13000 的主要特点

bull 世界各语言文种字符统一编码避免冲突便于国际交流

bull 编码空间宽阔连续每个图形字符的编码唯一(一字一码)不再存在兼容性问题

bull 按文种而不是按语言编码避免重复和浪费(如中日韩汉字的统一编码 CJK )

bull 与 GB 2312 和 GBK 不兼容

体系结构bull UCS 的体系结构是基于所谓ldquo多八位rdquo的而ldquo八位rdquo就是一个字节ldquo多八位rdquo就是多个字节

bull UCS采用 4 个字节来表征组面行位的四维空间bull 整个 UCS空间包含 128 个组( 0x00组 ~0x7F组)每组有 256 个平面( 0x00 平面 ~0xFF 平面)每个平面有 256 行每行又由 256 个字位构成

bull UCS共有( 128 times 256 = ) 32 768 个平面每个平面有( 256 times 256 = ) 65 536 个字位每个字位对应于一个字符的编码

bull 目前的编码只限于 00组已经定义的平面有 00组的00 平面mdashmdash称之为基本多文种平面 BMP ( Basic Multilingual Plane ) 及若干辅助平面

UCS 的全部编码空间

每个平面256times256 个

字位

00组 00 平面

00组 FF 平面

01组 00 平面

7F组 00 平面00

01组

7F组

UCS 的 00组

BMPbull BMP = Basic Multilingual Plane 基本多文种平面bull BMP 用作双八位编码字符集称之为 UCS-2 它被

分成四个区ndash A- 区(字位 0x0000~0x4DFF 有 19 903 个字位)用于

字母文字音节文字以及各种符号ndash I- 区(字位 0x4E00~0x9FFF 共 20 992 个字位)用于中日韩统一汉字( CJK )

ndash O- 区(字位 0xA000~0xDFFF 共 16 384 个字位)保留未来标准化用

ndash R- 区(字位 0xE000~0xFFFD 共 8 190 个字位)为 BMP 的限制使用区包括专用字符变形显现形式及兼容字符

BMP总貌

A-区

00~33 拼音文字(见下页)

34~3D 朝鲜文

3E~44 朝鲜文补充 -A

45~4D 朝鲜文补充 -B

I-区 4E~9F CJK统一汉字O-区 A0~DF

R-区

E0~F8 专用区

F9~FA CJK兼容汉字FB 拼音文字变形显现形式

FC~FD 阿拉伯文变形显现形式 -A

FE半形组合用标志

CJK兼容形式

小写变体

阿拉伯文变形显现形式 -B

FF 半形及全形字符 特殊字符

BMP 的0x00~0x33

行字母文字区

00 基本拉丁文 拉丁文-1补充

01 拉丁文扩充-A 拉丁文扩充-B

02 拉丁文扩充-B 国际音标扩充 进格修饰字符

03 组合用发音符 基本希腊文 希腊符号及哥普特文

04 西里尔文

05 美亚尼亚文 希伯来文(基本和扩充)

06 基本阿拉伯文 阿拉伯文扩充

07

08

09 梵文 孟加拉文

0A 锡克教文 古吉拉特文

0B 奥利雅文 泰米尔文

0C 泰卢固文 卡纳达文

0D 德拉维族文

0E 泰文 老挝文

0F

10 格鲁吉亚文

11 朝鲜文字母

12~1D

1E 拉丁文扩充增补

1F 希腊文扩充

20 广义标点 上下标 货币符号 符号组合用区分标志

21 类似字母的符号 数字形式 箭头

22 数学运算符

23 零杂技术用符号

24 控制图符 光学识别符 带括号的字母数字

25 制表符 方块元素 几何图形符

26 零杂符号

27 示意符等

28~2F

30 CJK符号和标点 平假名 片假名

31 注音 朝鲜文兼容字母 CJK零杂字符

32 带括号的CJK字母及月份

33 CJK兼容字符

留作将来标准化用

非图形字符

表示形式bull GB 13000提供了字符编码表示的两种替代使用的形式

ndash 双八位 BMP 形式( UCS-2 )mdashmdash允许使用 BMP 中的字符且每个字符用两个字节表示

ndash 肆八位正则形式( UCS-4 )mdashmdash允许使用 GB 13000 中的全部字符且每个字符用四个字节表示

bull 除了 UCS-24外还有另外两种变形的表示形式ndash UTF-8 (单字节 ~ 多字节)ndash UTF-16 (双字节和 4 字节与 UCS-2 等价)ndash 目前在工业上的实现均为 UTF-16 ( UCS-2 )和 UTF-8ndash UTF = Unicode UCS Transformation Format 统一码 UC

S转换格式bull 关于统一码我们会在下一小节详细介绍

7 GBK 与 GB 18030bull 由于 GB 13000 标准与 GB 2312 标准的字符编码不兼容作为过渡在国家信息技术标准化委员会的主持下制定了与 GB 2312兼容的《汉字内码扩展规范( GBK )》( K 为扩展的ldquo扩rdquo字的拼音首字母)并于 1995年 12月 15日由原国家技术监督局标准司联合原电子工业部科技与质量监督司作为指导性技术规范发布实施

bull 2000年 GBK又被国家标准 GB 18030-2000《信息技术 信息交换用汉字编码字符集 基本集的扩充》所代替该标准收汉字 2万 7千个

bull 与 GB 2312 一样 GB 18030 也为中国的强制性国家标准微软公司的 Windows XPVista78 中文版与苹果公司的 Mac OS X 和 iOS 谷歌公司的 Android (安卓)等操作系统已经全面支持 GBK

GB 18030 的码位范围分布

字节数 码位空间 码位数目

单字节 0x00~0x7F 128

双字节第 1字节 第 2字节

23 9400x81~0xFE

0x40~0x7E 0x80~0xFE

四字节第 1字节 第 2字节 第 3字节 第 4字节

1 587 6000x81~0xFE 0x30~0x39 0x81~0xFE 0x30~0x39

GB 18030的

总体结构图

收录字符bull 单字节部分mdashmdash收录了GBT 11383 的 0x00~0x7F 全部 128 个字符(似 ASCI

I )bull 双字节部分mdashmdash收录内容如下 (21 003 个汉字和 884 个符号共 21 887 个字符 )

ndash GB 130001-93 的全部 CJK 统一汉字字符 20 902 个( GB 2312 的编码汉字在双字节 2 区其他 CJK 统一汉字在双字节 34 区)

ndash GB 130001-93 的 CJK兼容区挑选出来的 21 个汉字ldquo郎凉秊helliphellip﨨﨩rdquo( 0xFD9C~0xFDA0 和 0xFE40~0xFE4F )

ndash GB 130001-93 中收录而 GB 2312未收录的台湾地区使用的图形字符 139 个ldquoˊˋ˙helliphelliprdquo( 0xA840~0xA895 和 0xA940~0XA988 )

ndash GB 130001-93收录的其他字符 31 ( 13)个(在双字节 5 区)ndash GB 2312-80 中的非汉字字符 682 个( 0xA1A1~0xA9EF )ndash GB 12345-90 的竖排标点符号 19 ( 29)个ldquo︵︶︹helliphellip︳︴rdquo( 0xA6D9~0xA6

F5 )ndash GB 2312-80未收录的 10 个小写罗马数字ldquoⅰⅱⅲhelliphellipⅸⅹrdquo( 0xA2A1~ 0xA2A

A )ndash GB 2312-80未收录的带音调的汉语拼音字母 5 ( 4)个ldquo ńňǹrdquo 以及 ɑ 和 ɡ ( 0

xA8BB~0xA8C0 )ndash 汉字数字零ldquo〇rdquo (0xA996) 和欧元符ldquoeurordquo (0xA2E3)ndash 表意文字描述符 13 个ldquohelliphelliprdquo( 0xA989~0xA995 )ndash 对 GB 130001-93增补的汉字和部首 构件 80 个ldquohelliphellip䶮rdquo( 0xFE50~ 0x

FEA0 )bull 四字节部分mdashmdash收录了上述双字节字符之外的包括 CJK 统一汉字扩充 A 在内

的 GB 130001-93 中的全部字符

GB 18030双字节部分的码位安排

类别 区名 码位范围 码位数 字符数 内容

符号区双字节 1区 A1A1~A9FE 846 718

GB 2312非汉字字符等

双字节 5区 A840~A9A0 192 166 台湾图符等

汉字区双字节 2区 B0A1~F7FE 6768 6763 GB 2312汉字双字节 3区 8140~A0FE 6080 6080 CJK统一汉字双字节 4区 AA40~FEA0 8160 8160 CJK统一汉字等

用户自定义区双字节用户区 1 AAA1~AFFE 564

用户自定义字符双字节用户区 2 F8A1~FEFE 658

双字节用户区 3 A140~A7A0 672

GB 18030双字节部分的编码空间结构图 尾字节

0x40larr――rarr0x7E 0x80larr――rarr0xA0 0xA1larr――――――――――――rarr0xFE

0x81 uarr darr

0xA0

0xA1 uarr darr

0xA7

0xA8 0xA9

首字节

0xAA uarr | | | | | | | | | | darr

0xFE

双字节 3区

汉字区6 080个码位

双字节用户区 3

用户自定义区672个码位

双字节 5区 图形符号区192个码位

双字节 4区

汉字区8 160个码位

双字节 1区

图形符号区564个码位

双字节 2区

汉字区6 768个码位

双字节用户区 1 用户自定义区564个码位

双字节用户区 2 用户自定义区658个码位

223 国际通用字符编码

bull Unicode (统一码)是由多语言软件制造商组成的统一码协会( httpwwwUnicodeorg)所制定一种国际字符的编码标准

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull 本节主要介绍这两种关系密切的主流国际字符编码标准的来历编码方案各自特点与相互关系

1 Unicode 统一码bull 发展历史

ndash 1987年施乐( Xerox )公司的 Joe Becker 与 Lee Collins 和苹果( Apple )公司的 Mark Davis 等人开始讨论统一编码 1987年 12月 Joe Becker造词 Unicode (统一码)含义为ldquo unique universal and uniform character encodingrdquo (单一通用统一的字符编码) 1989年 2月开始定期召开统一码会议 1989年 9月公布 Unicode草案

ndash 1991年 1月 3 日由 Xerox Apple Sun IBM Aldis Microsoft 等公司出资在美国加州成立了统一码协会( Unicode Consortium )并由协会设立非盈利性的统一码公司( Unicode Inc )后来 HP Adobe Borland Digital Lotus Novell 等公司也纷纷加入 1991年 1月成立统一码技术委员会 UTC 并制定了其规程

ndash 1991年 2月在 Ed Hart 的推动下进行了ldquo统一码对 10464 国际标准草案 1rdquo 的对话Unicode 与 ISOIEC 10646开始走向融合

ndash 1991年 8月发布 Unicode 标准 10版的第 1卷(体系结构非表意字符) 1992年6月发表 Unicode 10版的第 2卷(表意字符) 1993年 6月发布 Unicode 11版与 1993年 5月公布的 ISOIEC 10646-11993 实现了合并

ndash 1996年 7月发布 Unicode 20版ndash 1999年 9月发布 Unicode 30版ndash 2003年 4月发布 Unicode 40版(对应于 ISOIEC 106462003 ) 2004年 3月 31日发布 Unicode 401版 2005年 3月 31日发布 Unicode 410版

ndash 2006年 7月 14日发布 Unicode 50版 2008年 4月 4日发布 Unicode 51版 2009年 12月 22日发布 Unicode 52版

ndash 2010年 10月发布 Unicode 60版 2012年 1月发布 Unicode 61版(对应于 ISOIEC 106462012 ) 2012年 9月推出 Unicode 62版 2013年 9月推出 Unicode 63版

ndash 2014年 6月 16日发布 Unicode 70版 ndash 2015年 6月 17日发布 Unicode 80版

字符集bull Unicode 字符集的空间分成双字节的基本多语言平面 (Basic Multilingual Pla

ne BMP) 和 4 字节的辅助多语言平面 (Supplementary Multilingual Plane SMP) 两种

bull BMPndash Unicode 的基本平面或基本多语言平面 BMP 对应于 ISOIEC 10646-1 的第 00组的 00 平面( BMP )即 Unicode 与 ISOIEC 10646 的 BMP 中的字符编码完全一致

bull SMPndash 鉴于 Unicode 原有的 16位元空间不足以应用从 Unicode 31版本开始设立了 16 个辅助平面使 Unicode 的可使用空间由六万多字增至约一百万字

ndash 原有的 Unicode双字节空间称为基本平面或基本多语言平面 BMP 辅助多语言平面 SMP 字符要用 4 字节来储存

ndash 第一辅助平面摆放拼音文字(主要为现时已不再使用的文字)及符号范围在 U+10000 - U+1FFFD

ndash 第二辅助平面又称为表意文字补充平面 (Supplementary Ideographic Plane 简称 SIP) 现时摆放ldquo中日韩统汉字扩展 B 区rdquo共 43253 个汉字范围在 U+20000 - U+2FFFD

ndash 第三至十三辅助平面尚未使用ndash 第十四辅助平面又称为特殊用途补充平面 (Supplementary Special-purpose Pl

ane 简称 SSP) 摆放 Language tags 和 Variation Selectors 它们都是控制字符范围在 U+E0000 - U+E01FF

ndash 第十五至十六辅助平面都是私人使用区它们的范围是 U+F0000 - U+FFFFD 及 U+100000 - U+1000FD

bull Unicode 字符集的具体编码方式参加第 4小节ldquo 4 UTFrdquo

2 ISOIEC 10646

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull ISOIEC 10646 标准由 ISO 与 IEC 联合成立的 ISOIEC JTC1SC2WG2 制定ndash JTC 1 ( Joint Technical Committee 1 on Information

technology ISOIEC信息技术联合技术委员会 1 )负责信息技术方面标准的制定工作

ndash SC 2 ( SubCommittee 2 on Coded character sets 编码字符集分会 2 )下的 WG 2 ( Working Group 2 on Universal coded character set 通用编码字符集工作组 2 )负责制定国际通用字符编码标准即后来公布的 ISOIEC 10646

发展历史bull 1984年 ISO 的一些会员国发起制定新的国际字符编码标准同年 4月 ISO

与 IEC 联合成立 ISOIEC JTC1SC2WG2 1987年 3月制定出编码架构1992年 6月投票通过第二版国际标准草案

bull 1993年 5月推出 10646 标准时将内容分成两个部分标准首先发布的是其中的第 1 个部分(体系结构与基本多文种平面)的第 1版( Edition 1 ) ISOIEC 10646-11993 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane(信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

bull 2000年 3月推出 10646 标准第一个部分的第 2版( Edition 2 ) ISOIEC 10646-12000 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane

bull 2001年 10月推出 10646 标准第 2版的第二个部分(辅助平面)的第 1版( Edition 1 ) ISOIEC 10646-22001 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 2 Supplementary Planes

bull 2003年 10月推出的 10646新标准(第 1版 Edition 1 )将老标准中的两个部分标准合并成了一个单一的标准 ISOIEC 106462003 Information technology -- Universal Multiple- Octet Coded Character Set (UCS) 后来又于 2010年 2012年和 2014年分别推出了 ISOIEC 106462010 (第 2版)ISOIEC 106462012 (第 3版)和 ISOIEC 106462014 (第 4版)

UCS 通用字符集bull 通用字符集( Universal Character Set UCS )是

ISOIEC 10646 标准所定义的字符编码方式采用 4字节编码又称为 Universal Multiple-Octet Coded Character Set (通用多八位编码字符集)

bull 通用字符集是所有包括了其他字符集它保证了与其他字符集的双向兼容即如果你将任何文本字符串翻译到 UCS 格式然后再翻译回原编码你不会丢失任何信息

bull UCS 包含了已知语言的所有字符除了拉丁语希腊语斯拉夫语希伯来语阿拉伯语亚美尼亚语格鲁吉亚语还包括中文日文韩文这样的象形文字 UCS 还包括大量的图形印刷数学科学符号

名字与组合字符bull UCS 不仅给每个字符分配一个代码而且赋予了

一个正式的名字表示一个 UCS 或 Unicode值的十六进制数通常在前面加上ldquo U+rdquo 例如ldquo U+0041rdquo代表字符ldquo Ardquo

bull UCS里有些编码点分配给了组合字符组合字符机制允许在任何字符后加上重音符或其他指示标记 这在科学符号中特别有用 比如数学方程式和国际音标字母 可能会需要在一个基本字符后组合上一个或多个指示标记

实现级别bull 并不是所有的系统都需要支持像组合字符这样的的先进

机制因此 ISO 10646 指定了如下三种实现级别ndash 级别 1不支持组合字符和韩语 Hangul Jamo 字符 ( 一种特

别的 更加复杂的韩国文的编码 使用两个或三个子字符来编码一个韩文音节 )

ndash 级别 2类似于级别 1 但在某些文字中允许一列固定的组合字符 (例如 希伯来文 阿拉伯文 Devangari 孟加拉语 果鲁穆奇语 Gujarati Oriya 泰米尔语 Telugo 印 埃纳德语 Malayalam 泰国语和老挝语 ) 因为如果没有最起码的几个组合字符 UCS就不能完整地表达这些语言

ndash 级别 3支持所有的 UCS 字符如可以在任意一个字符上加上一个箭头或 和一个 tilde(颚化符号即字母上面的~ )

编码方式bull UCS 有如下两种编码方式

ndash UCS-2与 Unicode 的 2 字节编码基本一样ndash UCS-4 4 字节编码目前是在 UCS-2 前加

上 2 个全零的字节bull UCS 还有 UTF 编码方式参见下面第 4小节ldquo 4 UTFrdquo

3 Unicode 与 ISOIEC 10646bull 关系

ndash 历史上存在两个独立的尝试创立单一字符集的组织即国际标准化组织( ISO )和多语言软件制造商组成的统一码协会组织( Unicodeorg )前者开发的 ISO 10646项目后者开发的 Unicode项目因此最初制定了不同的标准

ndash 1991年前后两个项目的参与者都认识到世界不需要两个不兼容的字符集于是它们开始合并双方的工作成果并为创立一个单一编码表而协同工作

ndash 从 Unicode20开始 Unicode采用了与 ISO 10646-1相同的字库和字码 ISO 也承诺 ISO10646 将不会替超出 U+10FFFF 的 UCS-4 编码赋值以使得两者保持一致

ndash 两个项目仍都存在并独立地公布各自的标准但 Unicode协会和 ISOIEC JTC1SC2 都同意保持两者标准的码表兼容并紧密地共同调整任何未来的扩展

异同bull Unicode协会公布的 Unicode 标准包含了 ISO 10646-1 实现级别

3 的基本多文种平面在两个标准里所有的字符都在相同的位置并且有相同的名字

bull ISO 10646 标准就像 ISO 8859 标准一样只不过是一个简单的字符集表它定义了一些编码的别名指定了一些与标准有关的术语并包括了规范说明指定了怎样使用 UCS连接其他 ISO 标准的实现等

bull Unicode 标准额外定义了许多与字符有关的语义符号学并详细说明了绘制某些语言(如阿拉伯语)表达形式的算法处理双向文字(比如拉丁文和希伯来文的混合文字)的算法排序与字符串比较所需的算法等等

bull 考虑到 Unicode 标准有一个易记的名字既便宜又包括更多的辅助信息因而它使用得更广泛然而

bull 一般认为用于打印 ISO 10646-1 标准的字体在某些方面的质量要高于用于打印 Unicode 20 的专业字体设计者总是被建议说要两个标准都实现但一些提供的样例字形有显著的区别 ISO 10646-1 标准同样使用四种不同的风格变体来显示表意文字如中文日文和韩文 (CJK) 而 Unicode 20 的表里只有中文的变体

4 UTFbull Unicode 和 UCS 都是一个字符集可以看作为内码bull UTF ( UnicodeUCS Transformation Format 统一码

通用字符集转换格式)是一种编码方式它的出现是因为 Unicode 和 UCS 不适宜在某些场合直接传输和处理

bull UCS 和 Unicode 只是分配整数给字符的编码表现在存在好几种将一串字符表示为一串字节的方法(如高或低位字节在前)

bull 最显而易见的两种方法是将 UCS 和 Unicode 文本存储为 2 个 或 4 个字节序列的串这两种方法的正式名称分别为 UCS-2 和 UCS-4

bull 常用的 UTF具体编码方式有 UTF-8 UTF-16 和 UTF-32

UTF-8

bull UTF-8 是 UTF 的一种具体编码方式在 ISO 10646-1 的附录 R 和 IETF 的 RFC 2279 里定义

bull 由于要使文档中的文字与 ASCII兼容故 UTF-8 选择了使用可变长度字节来储存 Unicode 和 UCS 例如ndash ASCII 字母继续使用 1 字节储存ndash 重音文字希腊字母或西里尔字母等使用 2 字节来储存ndash 常用的汉字就要使用 3 字节ndash 辅助平面字符则使用 4 字节ndash 即 ASCII 不作变换其他字符做变长编码每个字符 1~4 字节

bull UTF-8 通常作为外码bull 在 UTF-8 文件的开首很多时都放置一个 U+FEFF 字符

(UTF-8 以 EF BB BF 代表 ) 以显示这个文字档案是以UTF-8 编码

UTF-8 的优点bull 与 CPU 字节顺序无关可以在不同平台之间交流

bull 容错能力高任何一个字节损坏后最多只会导致一个编码码位损失不会链锁错误 ( 如 GB 码错一个字节就会整行乱码 )

UTF-8 的缺点bull UTF-8 使用可变长度字节储存使计算机程序设计变得复杂 (故此在计算机程序或操作系统内部多采用 UCS-2 编码 )

bull 在旧式的中文日文及朝鲜文编码之中每字符都使用 2 字节储存而 UTF-8 须使用 3 字节 (采用 UTF-16 编码则可只使用 2字节储存 )

bull 泰语以往使用的 ISO 8859-11 每字符只使用 1 字节储存而 UTF-8 须使用 3 字节

UTF-8储存的多字节串字符bull U-00000000 - U-0000007F 0xxxxxxx bull U-00000080 - U-000007FF 110xxxxx 10xxxxxx

bull U-00000800 - U-0000FFFF 1110xxxx 10xxxxxx

10xxxxxx bull U-00010000 - U-001FFFFF 11110xxx 10xxxxx

x 10xxxxxx 10xxxxxx bull 在多字节串中第一个字节的开头ldquo 1rdquo 的数目就

是整个串中字节的数目bull 每个使用 UTF-8储存的字符除了第一个字节外其余字节的头两个位元都是以 10 开始使文字处理器能够较快地找出每个字符的开始位置

UTF-16bull UTF-16 是 UTF 的另一种具体编码方式在 ISO 1064

6-1 的附录 Q 和 IETF 的 RFC 2781 里定义bull UTF-16 是变长码( 2 或 4 字节)大致相当于 20位编码值在 0 到 0x10FFFF 之间基本上就是 Unicode 编码的实现 UTF-16 与 CPU 字序有关但因为最省空间常作为网络传输的外码 UTF-16 是 Unicode 的完美编码

bull lt0x10000 的直接用其对应的 16位整数编码位于 0x10000 ~ 0x10FFFF 之间的用 0xD800~0xDBFF 的 16位整数后跟 0xDC00~0xDFFF 的 16位整数的 4 字节编码 gt 0x10FFFF 的不能用 UTF-16 表示

bull 在 Unicode 的 BMP 中定义的字符(无论是拉丁字母汉字或其他文字或符号)一律使用 2 字节存储而在辅助平面定义的字符则以两个 2 字节的值来存储

UTF-16 的特点bull UTF-16比起 UTF-8 的好处在于大部分字符都以固定长

度的 2 字节存储但 UTF-16却无法相容于 ASCII 编码bull UTF-16 有两种编码模式即大尾序( big Endian 高位字节在前)和小尾序( little Endian 高位字节在后)储存形式(一般來說以 Macintosh 制作和存储的文字使用大尾序格式以 Microsoft 或 Linux 制作和存储的文字使用小尾序格式)

bull 为了弄区分 UTF-16 文件的大小尾序在 UTF-16 文件的开头都会放置一个 U+FEFF 字符作为字节顺序标记 (UTF-16LE 以 FF FE代表 UTF-16BE 以 FE FF代表 ) 以显示该文档是以 UTF-16 编码的

UTF-32

bull UTF-32 仅使用了 Unicode范围 (0 到 0x10FFFF) 的 32位编码相当于 UCS-4 的子集

bull 由于 Unicode 和 ISOIEC 10646 的编码和结构与前面讲过的 GB 13000 类似或等价这里就不再做详细的介绍

5支持bull 现在 UnicodeUCS 已经获得了十分广泛的支

持ndash网络与浏览器(如 HTML 4050 XML 与 IE

Safari Netscape Firefox Chrome Opera Edge 等)

ndash操作系统(如 Windows NT2000XPVista7810 Mac OS X iOS Android和 Linux )

ndash 编程语言新版本(如 CC++JavaObjective-CC Swift 等)

Unicode 代码的浏览器显示代码 字符标准名称 (英语 )

浏览器的显示

amp65 大写拉丁字母 A A

amp223 小写拉丁字母 Sharp S szlig

amp254 小写拉丁字母 Thorn thorn

amp916 大写希腊字母 Delta Δ

amp1049 大写斯拉夫字母 Short I Й

amp1511 希伯来字母 Qof ק

amp1605 阿拉伯字母 Meem م

amp3671 泰文数字 7 ๗amp4688 埃塞俄比亚音节文字 Qha ቐ

amp12354 日语平假名 A あamp12450 日语片假名 A アamp21494 简体汉字 叶 叶amp33865 繁体汉字 葉 葉amp50685 韩国音节文字 Yeob 엽

23 文字输出bull 文字输出是指将计算机内的字符编码通过计算机的输出设备(如显示器打印机喇叭)展现出所对应字符的图形或声音供人们阅读或聆听

bull 本节主要介绍文字图示输出的字形技术bull 文字声音输出属于语音合成只在本节的末尾作简单的介绍

231 字形技术bull 文字 = 图形bull 不论是象形文字中的单字还是拼音文字

中的字母都是用图形来表示的bull 在计算机里文字的表示 输出(显示和打

印)涉及ndash 字型ndash 字体ndash 字库

1字型bull 字型指构造和生成字形的方法一般可分为

ndash 点阵字 DOS 显卡 ROM 金山 科印特点似位图显示快占空间(字库大)放大后有马赛克效应

bull 显示字母 88 汉字 1616bull 打印 2424 4848 6464

ndash 矢量字单线条用于笔式绘图仪特点字库小算法简单难看

ndash 轮廓字用曲线描绘字的轮廓输出效果好所见即所得(WYSWYG) 可无级放大易实现空心 阴影 填充 变形等各种特效功能轮廓曲线一般采用样条曲线如 TrueType (Apple 1991 Mac OS Microsoft 1992 Windows 31)用的是二次 B 样条 Bezier曲线中文之星 RichWin采用的是三次 B 样条 Bezier曲线

字型种类

2字体bull 字体指字的形状风格如

ndash 汉字的

ndash 英文的

宋体楷体黑体仿宋

行楷隶书新魏幼圆

Times New Roman Arial Narrow Courier New

常用汉字字体bull 宋体mdashmdash宋体来自于北宋时雕版刻书所采用的欧体字(唐朝欧阳询体)宋体字的横顿拉捺挑钩别具特色间架平正疏密适中字体秀丽遒劲但笔画横细竖粗适合于刀刻不宜于手写现在宋体广泛用于印刷常来表现文档的正文

bull 仿宋体mdashmdash 1920年钱塘的丁辅之与丁善之等人将明代以后盛行的方廓形字体加以改造创造出长形和方形的聚珍仿宋后来演化为现在的仿宋体仿宋体比较接近于手写体为宋体和楷体的折中是采用的宋体的结构和楷体的笔法而成现常来表现打印文件以及文档的摘要和注释等

bull 黑体mdashmdash黑体是适应工艺美术的发展而出现的一种等线体是从日本引进的黑体的结构与宋体没有什么差别只是其笔画粗细一致健实粗壮主要用于文档的标题和重点及标语广告等方面

bull 楷体mdashmdash楷体源于楷书楷体的笔画圆浑笔调灵活结构端正美观但不宜于木板雕刻所以直到清末西洋的石板印刷术传入后才开始广泛用于印刷现代的楷体创造于 20世纪的二三十年代主要用于文档的正文(多用于中小学教材)也可用于工艺美术等方面

3字库bull 字库为一种文字的某一字体的所有字符的集合一般存放在一个磁盘文件中

bull 由于象形文字中单字的数量大(成千上万)而拼音文字中字母的数量小(不到一百个)所以字库的大小有很大的差别

bull 为了使文档界面丰富多彩常见的字处理软件都支持多种字体带有众多字库

4点阵字型的国家标准bull 我国已经公布了若干字体的点阵字型之国家标准

ndash GB 50071-19852001 信息技术 汉字编码字符集(基本集) 24 点阵字型

ndash GB 50072-19852001 信息技术 汉字编码字符集(辅助集) 24 点阵字型

ndash GB 5199-19862001 信息技术 汉字编码字符集(基本集) 16 点阵字型 宋体

ndash GB 6345-19862001 信息技术 汉字编码字符集(基本集) 32 点阵字型 宋体

ndash GB 12041-2001 信息技术 汉字编码字符集(基本集) 48点阵字型 宋体

ndash GB 17698-1999 信息技术 通用多八位编码字符集( I 区) 汉字 16 点阵字型

232 语音合成bull 文字的声音输出主要使用的是语音合成的技术bull 语音合成功能是ldquo文rarr语rdquo转换bull 文语转换 TTS (Text-To-Speech) 是将文本形式的信息转换成自然语音的一种技术其最终目标是使计算机输出清晰而又自然的声音

bull 英语的语音合成在上世纪 80年代就早已成熟而中文 汉语的合成现在也趋于成熟并有了广泛的应用(如汽车导航仪智能手机等)

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 20: 第一篇  媒体

ASCII 的国际标准bull 1972年美国的国家标准 ASCII 与其若干拉丁语系国家的变体一起成为国际标准 ISO 6461972 ( Information processing -- ISO 7-bit coded character set for information interchange 信息处理mdashmdash ISO 用于信息交换的七位编码字符集)

bull 这些变体主要是将 ASCII 字符集中不常用的符号ldquo $ [ ] ^ ` | ~rdquo替换为他们各自语言的重音符号

bull 1987年 ISO 646 中的 ASCII部分成为 646 的国际参考版( IRV = International Reference Version ) ISO 646IRV1987 但是其中的美元符 $被替换为国际通用货币符 curren

bull 1991年推出的修订版 ISOIEC 646IRV1991 还原成原始的美国 ASCII 所以又被称为 ISO 646-US 或 US-ASCII

替代标准bull 由于 ISO 646 中各国的变体存在明显的兼容和统一问题现在已经作废

bull 有关编码已经被新的国际标准 ISOIEC 8859-1~16 19871998 ( Information processingtechnology -- 8-bit single-byte coded graphic character sets 信息处理 技术mdashmdash 8位单字节编码的图形字符集)所替代

bull 后来 ISO 646 与 ISOIEC 8859 标准又都被纳入 ISOIEC 1064619932003 ( Information technology -- Universal Multiple-Octet Coded Character Set (UCS) 信息技术mdashmdash通用多八位编码字符集 (UCS) )标准之中

bull 其中的标准编号 ISO 10646 = ISO 646 + 10000

标准化组织bull ANSI = American National Standards Institute 美

国国家标准协会bull ISO = International Organization for Standardization

国际标准化组织是由 153 个国家的国家标准协会联合组成的一个非政府国际组织总部(中央秘书处)设在瑞士的日内瓦负责制定适应商业和广泛社会需要的各种国际标准网址为 httpwwwisoorg

bull IEC = International Electrotechnical Commission 国际电工技术委员会是一个成立于 1906年 6月的国际标准化权威组织属于联合国的甲级咨询机构负责制定关于电工电子各方面的标准有 42 个会员国总部也设在瑞士的日内瓦网址为httpwwwiecch我国于 1958年 8月参加

2 EBCDIC

bull 西文的字符编码方案除了通用的 ASCII外还有 IBM公司于 1960年代初提出的 EBCDIC ( Extended Binary-Coded Decimal Interchange Code扩充的二进制编码的十进制交换码)

bull EBCDIC 现在仍然(仅)在 IBM 的 OS390 与 TPF 以及富士通 - 西门子的 BS2000OSD 等大型机的操作系统中使用

bull EBCDIC 是一种八位编码其字符的编码方案与ASCII 的完全不同

EBCDIC 字符集 0 1 2 3 4 5 6 7 8 9 A B C D E F

0 NUL DLE DS SP amp - 0

1 SOH DC1 SOS a j ~ A J 1

2 STX DC2 FS SYN b k s B K S 2

3 ETX TM c l t C L T 3

4 PF RES BYP PN d m u D M U 4

5 HT NL LF RS e n v E N V 5

6 LC BS ETB UC f o w F O W 6

7 DEL IL ESC EOT g p x G P X 7

8 GE CAN h q y H Q Y 8

9 RLF EM ` i r z I R Z 9

A SMM CC SM cent | |

B VT CU1 CU2 CU3 $

C FF IFS DC4 gt

D CR IGS ENQ NAK ( ) _ lsquo

E SO IRS ACK + lt =

F SI IUS BEL SUB | ldquo EO

3扩展 ASCII 显示字符bull ( 1 ) IBM PC

ndash IBM PC 的扩展 ASCII 显示字符由 IBM公司为其 PC 机制定可以由原始的 IBM PC 显示器在 DOS状态下显示

bull ( 2 ) Microsoft Windows ndash Microsoft Windows 的扩展 ASCII 显示字符由

微软公司为其Windows操作系统制定可以在Windows环境的西文状态下被显示

IBM PC 的扩展 ASCII 显示字符表

Microsoft Windows 的扩展 ASCII 显示字符表

222 中文编码bull 1 GB 1988 与 GB 2311

bull 2 GB 2312

bull 3汉字编码的辅助集bull 4 Big5

bull 5少数民族文字编码bull 6 GB 13000

bull 7 GBK 与 GB 18030

汉字编码bull 为了计算机处理汉字必须先对汉字进行编码由于汉

字数量大(《康熙字典》收字 47 035 个《汉语大字典》收字 54 678 个据统计在形成楷体后出现的汉字约有 9万个左右)显然不能像 ASCII那样用 7位或单字节来进行编码至少需要两个字节(最多可表示 6万5千多个字符)

bull 1980年我国制定了著名的 GB 2312-80双字节汉字编码标准(其中 GB 为ldquo国标rdquo这两个汉字的拼音首字母)收汉字 6 763 个

bull 1993年底又推出了等同于国际通用字符编码标准 ISOIEC 106461-1993 的国家标准 GB 130001-93 收汉字 20 902 个

bull 由于 GB 13000 与 GB 2312 的编码不兼容作为过渡2000年又公布了 GB 18030-2000 ( GBK )收汉字2万 7千个

1 GB 1988 与 GB 2311

bull 为了能够同时表示和处理汉字和英文实现中外文混排汉字编码必须兼容通用的 ASCII 编码因此1980年我国制定了与国际标准 ISO 6461972 (即ASCII )对应的国家标准 GB 1988-80《信息处理交换用的七位编码字符集》

bull 汉字成千上万不可能像 ASCII 一样只用单字节的七位来表示必须扩展到八位和多字节但是不能随意扩充而应该符合国际规范因此我国于 1980年又制定了与七位代码扩充到八位编码的国际标准 ISO 2022兼容的国家标准 GB 2311-80《信息处理交换用七位编码字符集的扩充办法》

GB 1988-80 ( ASCII )的代码结构图

行 0 1 2 3 4 5 6 7

0 SP

1 helliphellip

15

16

32个

控制符

94个

图形字符

DEL

GB 2311-80 的八位编码结构图列

行 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0 SP 100

1

helliphellip

14

15

C0

32个

控制符

GL

94或 96个

图形字符

DEL

C1

32个

控制符

GR

94或 96个

图形字符

1515

2 GB 2312

bull GB 2312-80《信息交换用汉字编码字符集 middot基本集》是我国制定的一个使用最广泛的汉字编码的强制性国家标准由原第四机械工业部的华北计算机研究所(后改名为电子工业部第十五研究所)起草1980年批准 1981年 5月 1日起实施

bull GB 2312-80 是在已有的国家标准 GB 1988-80(对应于 ISO 646 )和 GB 2311-80 (对应于 ISO 2022 )的基础上制定的采用与 ISO 2022兼容的GB 2311 之 7位到八位的代码扩充办法用双字节编码表示汉字与 ASCII兼容

收录的字符bull GB 2312 对应的是汉字的基本集共收汉字 6 763 个

可达到 9999 的使用频率因此除了极少数生僻的人名地名和古文外 GB 2312 中的汉字已经能基本满足平时的使用了

bull 除了汉字外 GB 2312 还收录了 682 个非汉字图形符号包括 202 个一般符号(含间隔符标点运算符和制表符) 60 个序号符 22 个数字符 52 个英文字母 169 个日文假名 48 个希腊字母 66 个俄文字母 26 个汉语拼音符号和 37 个汉语注音字母

bull 所以在 GB 2312-80 标准中共收录了( 6 763 汉字 + 682 非汉字图符 = ) 7 445 图形字符

两级汉字bull GB 2312 将其收录的六千多个汉字分成两个级别bull 一级汉字有 3 755 个都为使用频率高的常用汉

字为便于检索像字典那样将这些汉字按拼音字母顺序排列(同音字再按笔顺的横竖撇捺点折序排列)

bull 二级汉字有 3 008 个大部分较生僻不易掌握读音所以按部首顺序排列(同部首的字按笔画数排列同笔画数的字再按笔顺排列)

编码方案bull GB 2312 对所有图形字符(包括汉字和非汉字图符)都采用两个字节表示每个字节的低七位用于编码最高位全为 1 这样可以兼容 ASCII 编码(字节的最高位全为 0 )

bull 虽然在一个字节中最高位为 1 的符号位置有 128 个但从前面 GB 2311 的分析可知为了与 ASCII 的代码结构兼容保留了( 32 + 2 = ) 34 个控制符位置最后只有( 128 ndash 34 = ) 94 个符号位可供图形字符编码使用

bull 图形字符在代码表中的位置用区位码表示将码表分成94 个区对应于编码的第一个字节取值 0x21~0x7E 每个区又分成 94 个位对应于编码的第二个字节取值 0x21~0x7E (参见表 2-6 )

bull 例如ldquo中山大学rdquo的编码为中 (0xD6D0) 山 (0xC9BD) 大 (0xB4F3) 学 (0xD1A7)

GB 2312-80 字符集结构 20 21 22 helliphellip 7D 7E 7F

位号

区号

1 2 helliphellip 93 94

20

21~29 1~9 非汉字图符(682个)

2A~2F 10~15 空白区

30~57 16~55 一级汉字(3 755个)

58~77 56~87 二级汉字(3 008个)

78~7E 88~94 空白区

7F

第 1 区的部分非汉字图符

1区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 middot ˉ ˇ uml 々 mdash ~ hellip lsquo rsquo ldquo

17~32 rdquo 〔 〕 〈 〉 《 》 「 」 『 』 〖 〗 【 】 plusmn

33~48 times divide ∶ and or sum prod cup cap isin ∷ radic perp ∥ ang

49~64 ⊙ int ∮ equiv ≌ asymp ∽ prop ne ltu gtu le ge infin ∵ there4

65~80 deg prime Prime $ curren ¢ £ permil sect

81~94 rarr larr uarr darr

第 16 区的部分一级汉字

16区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 啊 阿 埃 挨 哎 唉 哀 皑 癌 蔼 矮 艾 碍 爱 隘 鞍

17~32 氨 安 俺 按 暗 岸 胺 案 肮 昂 盎 凹 敖 熬 翱 袄

33~48 傲 奥 懊 澳 芭 捌 扒 叭 吧 笆 八 疤 巴 拔 跋 靶

49~64 把 耙 坝 霸 罢 爸 白 柏 百 摆 佰 败 拜 稗 斑 班

65~80 搬 扳 般 颁 板 版 扮 拌 伴 瓣 半 办 绊 邦 帮 梆

81~94 榜 膀 绑 棒 磅 蚌 镑 傍 谤 苞 胞 包 褒 剥

第 56 区的部分二级汉字

56区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 亍 丌 兀 丐 廿 卅 丕 亘 丞 鬲 孬 噩 丨 禺 丿 匕

17~32 乇 夭 爻 卮 氐 囟 胤 馗 毓 睾 鼗 丶 亟 鼐 乜 乩

33~48 亓 芈 孛 啬 嘏 仄 厍 厝 厣 厥 厮 靥 赝 匚 叵 匦

49~64 匮 匾 赜 卦 卣 刂 刈 刎 刭 刳 刿 剀 剌 剞 剡 剜

65~80 蒯 剽 劂 劁 劐 劓 冂 罔 亻 仃 仉 仂 仨 仡 仫 仞

81~94 伛 仳 伢 佤 仵 伥 伧 伉 伫 佞 佧 攸 佚 佝

3汉字编码的辅助集bull 除了GB 2312基本集的 6 763 个简体汉字外国家标

准还给出了汉字编码字符集的多个辅助集bull 第二 四辅助集分别增加了 7 237 7 039 个简体汉字bull 第一和三 五辅助集则分别是与基本集和第二 四辅助集所对应的繁体汉字字符集的国家标准

bull 基本集加上辅助集共有 21 039 个简体汉字和 21 142个繁体汉字

bull 繁体汉字之所以多一些是因为在第一辅助集中有时几个繁体字对应一个简体字因此比基本集多出 103 个汉字

bull 基本集和辅助集的代码页之间靠其编码字节的最高位来区分

编码字符的分页标志

双字节汉字编码的页面结构第二字节 列号

行号 0 middot middot middot 32 33 34 helliphellip 125 126 127 128middot middot 160 161 162 helliphellip 254 255 0 middot middot 32

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

33 34 middot middot middot 126

1 2 middot middot middot 94

第四五辅助集 (7 039个汉字)

127

(兼容ASCII)

128 middot middot 160

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

161 162 middot middot middot 254

1 2 middot middot middot 94

第二三辅助集 (7 237个汉字)

1 2 middot middot middot 94

基本集第一辅助集 (6 763 6 866个汉字) (682个非汉字图符)

第一字节

255

4 Big5

bull 除了中国大陆使用的简体汉字外在台湾香港澳门和海外华侨社区使用的是传统的繁体汉字

bull 简体汉字使用 GB (国标)系列编码标准bull 繁体汉字一般使用的是 Big5内码(大五码)即台湾的ldquo资讯工业策进会rdquo发布的《标准交换码 (Ⅲ码 )》收录汉字 13 053 个

bull Big5内码是 1984年由台湾财团法人资讯工业策进会与宏碁 (Acer) 神通 (MiTAC) 佳佳零壹 (Zero One) 大众 (FIC) 等五大软件公司联合推出故称为大五码

BIG5 的代码空间低位字节

00 hellip 3F 40 hellip 7E 7F hellip A0 A1 hellip FE FF

高位字节

00middot

80

81middot

A0用户定义区 用户定义区

A1A2A3

非汉字图符 非汉字图符

A4middot

C6常用汉字 常用汉字

C7C8

用户定义区 用户定义区

C9middot

F9次常用汉字 次常用汉字

FAmiddot

FE用户定义区 用户定义区

FF

5少数民族文字编码bull 中国共有 56 个民族除了汉回满族一般使用汉语外其他少数民族大多有自己的民族语言

bull 我国各民族使用的 50 多种文字可以分为字母式结构文字和非字母式结构文字两大类ndash 字母式结构的有拉丁文斯拉夫文蒙古文维吾尔文哈萨克文藏文和朝鲜文等字母式

ndash 非字母式结构的有汉字象形文字图画文字和音节文字等bull 各民族文字的书写方向也有不同

ndash 壮文藏文朝鲜文彝文等的字从左到右行从上到下ndash 维吾尔文哈萨克文和柯尔克孜文等的字从右到左行从上

到下ndash 蒙古文和满文的字从上到下行从左到右ndash 汉字的书写方向有两种

bull 大陆的简体汉字的字从左到右行从上到下bull 港台与古旧书的繁体汉字的字从上到下行从右到左

国家标准bull 下面按发布时间列出若干已经公布的我国少数民族文字

编码集的国家标准(这些字符集一般分成两类对字母式结构文字采用八位编码对非字母式结构文字采用双字节编码)ndash GB 8045-87《信息处理交换用蒙古文七位和八位编码图形字

符集》收 82 个蒙古文字母和 12 个其他符号共 94 个字符ndash GB 12050-89《信息处理交换用维吾尔文编码图形字符集》收 32 个维吾尔文字母一个维吾尔文复合字符和 37 个其他符号共 70 个字符

ndash GB 12052-89《信息交换用朝鲜文编码字符集》收 5297 个朝鲜文字和 682 个其他符号(与 GB 2132同)共 5 979 个字符

ndash GB 13134-91《信息交换用彝文编码字符集》收 1165 个彝文字符和 688 个其他符号共 1853 个字符

ndash GB 16959-1997《信息技术 信息交换用藏文编码字符集 基本集》收 41 个藏文字母 36 个藏文主字 13 个元音字符12 个语音字符 10 个藏文数字 10 个半值符一个控制用连接符和 46 个其他藏文图形符号共 169 个字符

6 GB 13000bull GB 13000 是与 ISOIEC 10646 等价的国际通用编码字符集标准收汉字 2万多个但是与 GB 2312 和 GBK 不兼容

bull 1993年 5月 ISO 与 IEC 联合推出了可用于世界各种文字的通用编码字符集的国际标准的第 1部分ndash ISOIEC 10646-11993 Information technology -- Universal Multiple-Octe

t Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane (信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

ndash 该标准收字符 96万个几乎涵盖世界上的所有文字其中包含汉字 21 003 个

bull 1993年底我国推出了等同于国际标准 ISOIEC 1064611993 的强制性国家标准 ndash GB 130001-93《信息技术 通用多八位编码字符集( UCS ) 第一部分

体系结构与基本多文种平面》ndash 该标准于 1993年 12月 24日被国家技术监督局批准 1994年 8月 1日起实施

GB 13000 的主要特点

bull 世界各语言文种字符统一编码避免冲突便于国际交流

bull 编码空间宽阔连续每个图形字符的编码唯一(一字一码)不再存在兼容性问题

bull 按文种而不是按语言编码避免重复和浪费(如中日韩汉字的统一编码 CJK )

bull 与 GB 2312 和 GBK 不兼容

体系结构bull UCS 的体系结构是基于所谓ldquo多八位rdquo的而ldquo八位rdquo就是一个字节ldquo多八位rdquo就是多个字节

bull UCS采用 4 个字节来表征组面行位的四维空间bull 整个 UCS空间包含 128 个组( 0x00组 ~0x7F组)每组有 256 个平面( 0x00 平面 ~0xFF 平面)每个平面有 256 行每行又由 256 个字位构成

bull UCS共有( 128 times 256 = ) 32 768 个平面每个平面有( 256 times 256 = ) 65 536 个字位每个字位对应于一个字符的编码

bull 目前的编码只限于 00组已经定义的平面有 00组的00 平面mdashmdash称之为基本多文种平面 BMP ( Basic Multilingual Plane ) 及若干辅助平面

UCS 的全部编码空间

每个平面256times256 个

字位

00组 00 平面

00组 FF 平面

01组 00 平面

7F组 00 平面00

01组

7F组

UCS 的 00组

BMPbull BMP = Basic Multilingual Plane 基本多文种平面bull BMP 用作双八位编码字符集称之为 UCS-2 它被

分成四个区ndash A- 区(字位 0x0000~0x4DFF 有 19 903 个字位)用于

字母文字音节文字以及各种符号ndash I- 区(字位 0x4E00~0x9FFF 共 20 992 个字位)用于中日韩统一汉字( CJK )

ndash O- 区(字位 0xA000~0xDFFF 共 16 384 个字位)保留未来标准化用

ndash R- 区(字位 0xE000~0xFFFD 共 8 190 个字位)为 BMP 的限制使用区包括专用字符变形显现形式及兼容字符

BMP总貌

A-区

00~33 拼音文字(见下页)

34~3D 朝鲜文

3E~44 朝鲜文补充 -A

45~4D 朝鲜文补充 -B

I-区 4E~9F CJK统一汉字O-区 A0~DF

R-区

E0~F8 专用区

F9~FA CJK兼容汉字FB 拼音文字变形显现形式

FC~FD 阿拉伯文变形显现形式 -A

FE半形组合用标志

CJK兼容形式

小写变体

阿拉伯文变形显现形式 -B

FF 半形及全形字符 特殊字符

BMP 的0x00~0x33

行字母文字区

00 基本拉丁文 拉丁文-1补充

01 拉丁文扩充-A 拉丁文扩充-B

02 拉丁文扩充-B 国际音标扩充 进格修饰字符

03 组合用发音符 基本希腊文 希腊符号及哥普特文

04 西里尔文

05 美亚尼亚文 希伯来文(基本和扩充)

06 基本阿拉伯文 阿拉伯文扩充

07

08

09 梵文 孟加拉文

0A 锡克教文 古吉拉特文

0B 奥利雅文 泰米尔文

0C 泰卢固文 卡纳达文

0D 德拉维族文

0E 泰文 老挝文

0F

10 格鲁吉亚文

11 朝鲜文字母

12~1D

1E 拉丁文扩充增补

1F 希腊文扩充

20 广义标点 上下标 货币符号 符号组合用区分标志

21 类似字母的符号 数字形式 箭头

22 数学运算符

23 零杂技术用符号

24 控制图符 光学识别符 带括号的字母数字

25 制表符 方块元素 几何图形符

26 零杂符号

27 示意符等

28~2F

30 CJK符号和标点 平假名 片假名

31 注音 朝鲜文兼容字母 CJK零杂字符

32 带括号的CJK字母及月份

33 CJK兼容字符

留作将来标准化用

非图形字符

表示形式bull GB 13000提供了字符编码表示的两种替代使用的形式

ndash 双八位 BMP 形式( UCS-2 )mdashmdash允许使用 BMP 中的字符且每个字符用两个字节表示

ndash 肆八位正则形式( UCS-4 )mdashmdash允许使用 GB 13000 中的全部字符且每个字符用四个字节表示

bull 除了 UCS-24外还有另外两种变形的表示形式ndash UTF-8 (单字节 ~ 多字节)ndash UTF-16 (双字节和 4 字节与 UCS-2 等价)ndash 目前在工业上的实现均为 UTF-16 ( UCS-2 )和 UTF-8ndash UTF = Unicode UCS Transformation Format 统一码 UC

S转换格式bull 关于统一码我们会在下一小节详细介绍

7 GBK 与 GB 18030bull 由于 GB 13000 标准与 GB 2312 标准的字符编码不兼容作为过渡在国家信息技术标准化委员会的主持下制定了与 GB 2312兼容的《汉字内码扩展规范( GBK )》( K 为扩展的ldquo扩rdquo字的拼音首字母)并于 1995年 12月 15日由原国家技术监督局标准司联合原电子工业部科技与质量监督司作为指导性技术规范发布实施

bull 2000年 GBK又被国家标准 GB 18030-2000《信息技术 信息交换用汉字编码字符集 基本集的扩充》所代替该标准收汉字 2万 7千个

bull 与 GB 2312 一样 GB 18030 也为中国的强制性国家标准微软公司的 Windows XPVista78 中文版与苹果公司的 Mac OS X 和 iOS 谷歌公司的 Android (安卓)等操作系统已经全面支持 GBK

GB 18030 的码位范围分布

字节数 码位空间 码位数目

单字节 0x00~0x7F 128

双字节第 1字节 第 2字节

23 9400x81~0xFE

0x40~0x7E 0x80~0xFE

四字节第 1字节 第 2字节 第 3字节 第 4字节

1 587 6000x81~0xFE 0x30~0x39 0x81~0xFE 0x30~0x39

GB 18030的

总体结构图

收录字符bull 单字节部分mdashmdash收录了GBT 11383 的 0x00~0x7F 全部 128 个字符(似 ASCI

I )bull 双字节部分mdashmdash收录内容如下 (21 003 个汉字和 884 个符号共 21 887 个字符 )

ndash GB 130001-93 的全部 CJK 统一汉字字符 20 902 个( GB 2312 的编码汉字在双字节 2 区其他 CJK 统一汉字在双字节 34 区)

ndash GB 130001-93 的 CJK兼容区挑选出来的 21 个汉字ldquo郎凉秊helliphellip﨨﨩rdquo( 0xFD9C~0xFDA0 和 0xFE40~0xFE4F )

ndash GB 130001-93 中收录而 GB 2312未收录的台湾地区使用的图形字符 139 个ldquoˊˋ˙helliphelliprdquo( 0xA840~0xA895 和 0xA940~0XA988 )

ndash GB 130001-93收录的其他字符 31 ( 13)个(在双字节 5 区)ndash GB 2312-80 中的非汉字字符 682 个( 0xA1A1~0xA9EF )ndash GB 12345-90 的竖排标点符号 19 ( 29)个ldquo︵︶︹helliphellip︳︴rdquo( 0xA6D9~0xA6

F5 )ndash GB 2312-80未收录的 10 个小写罗马数字ldquoⅰⅱⅲhelliphellipⅸⅹrdquo( 0xA2A1~ 0xA2A

A )ndash GB 2312-80未收录的带音调的汉语拼音字母 5 ( 4)个ldquo ńňǹrdquo 以及 ɑ 和 ɡ ( 0

xA8BB~0xA8C0 )ndash 汉字数字零ldquo〇rdquo (0xA996) 和欧元符ldquoeurordquo (0xA2E3)ndash 表意文字描述符 13 个ldquohelliphelliprdquo( 0xA989~0xA995 )ndash 对 GB 130001-93增补的汉字和部首 构件 80 个ldquohelliphellip䶮rdquo( 0xFE50~ 0x

FEA0 )bull 四字节部分mdashmdash收录了上述双字节字符之外的包括 CJK 统一汉字扩充 A 在内

的 GB 130001-93 中的全部字符

GB 18030双字节部分的码位安排

类别 区名 码位范围 码位数 字符数 内容

符号区双字节 1区 A1A1~A9FE 846 718

GB 2312非汉字字符等

双字节 5区 A840~A9A0 192 166 台湾图符等

汉字区双字节 2区 B0A1~F7FE 6768 6763 GB 2312汉字双字节 3区 8140~A0FE 6080 6080 CJK统一汉字双字节 4区 AA40~FEA0 8160 8160 CJK统一汉字等

用户自定义区双字节用户区 1 AAA1~AFFE 564

用户自定义字符双字节用户区 2 F8A1~FEFE 658

双字节用户区 3 A140~A7A0 672

GB 18030双字节部分的编码空间结构图 尾字节

0x40larr――rarr0x7E 0x80larr――rarr0xA0 0xA1larr――――――――――――rarr0xFE

0x81 uarr darr

0xA0

0xA1 uarr darr

0xA7

0xA8 0xA9

首字节

0xAA uarr | | | | | | | | | | darr

0xFE

双字节 3区

汉字区6 080个码位

双字节用户区 3

用户自定义区672个码位

双字节 5区 图形符号区192个码位

双字节 4区

汉字区8 160个码位

双字节 1区

图形符号区564个码位

双字节 2区

汉字区6 768个码位

双字节用户区 1 用户自定义区564个码位

双字节用户区 2 用户自定义区658个码位

223 国际通用字符编码

bull Unicode (统一码)是由多语言软件制造商组成的统一码协会( httpwwwUnicodeorg)所制定一种国际字符的编码标准

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull 本节主要介绍这两种关系密切的主流国际字符编码标准的来历编码方案各自特点与相互关系

1 Unicode 统一码bull 发展历史

ndash 1987年施乐( Xerox )公司的 Joe Becker 与 Lee Collins 和苹果( Apple )公司的 Mark Davis 等人开始讨论统一编码 1987年 12月 Joe Becker造词 Unicode (统一码)含义为ldquo unique universal and uniform character encodingrdquo (单一通用统一的字符编码) 1989年 2月开始定期召开统一码会议 1989年 9月公布 Unicode草案

ndash 1991年 1月 3 日由 Xerox Apple Sun IBM Aldis Microsoft 等公司出资在美国加州成立了统一码协会( Unicode Consortium )并由协会设立非盈利性的统一码公司( Unicode Inc )后来 HP Adobe Borland Digital Lotus Novell 等公司也纷纷加入 1991年 1月成立统一码技术委员会 UTC 并制定了其规程

ndash 1991年 2月在 Ed Hart 的推动下进行了ldquo统一码对 10464 国际标准草案 1rdquo 的对话Unicode 与 ISOIEC 10646开始走向融合

ndash 1991年 8月发布 Unicode 标准 10版的第 1卷(体系结构非表意字符) 1992年6月发表 Unicode 10版的第 2卷(表意字符) 1993年 6月发布 Unicode 11版与 1993年 5月公布的 ISOIEC 10646-11993 实现了合并

ndash 1996年 7月发布 Unicode 20版ndash 1999年 9月发布 Unicode 30版ndash 2003年 4月发布 Unicode 40版(对应于 ISOIEC 106462003 ) 2004年 3月 31日发布 Unicode 401版 2005年 3月 31日发布 Unicode 410版

ndash 2006年 7月 14日发布 Unicode 50版 2008年 4月 4日发布 Unicode 51版 2009年 12月 22日发布 Unicode 52版

ndash 2010年 10月发布 Unicode 60版 2012年 1月发布 Unicode 61版(对应于 ISOIEC 106462012 ) 2012年 9月推出 Unicode 62版 2013年 9月推出 Unicode 63版

ndash 2014年 6月 16日发布 Unicode 70版 ndash 2015年 6月 17日发布 Unicode 80版

字符集bull Unicode 字符集的空间分成双字节的基本多语言平面 (Basic Multilingual Pla

ne BMP) 和 4 字节的辅助多语言平面 (Supplementary Multilingual Plane SMP) 两种

bull BMPndash Unicode 的基本平面或基本多语言平面 BMP 对应于 ISOIEC 10646-1 的第 00组的 00 平面( BMP )即 Unicode 与 ISOIEC 10646 的 BMP 中的字符编码完全一致

bull SMPndash 鉴于 Unicode 原有的 16位元空间不足以应用从 Unicode 31版本开始设立了 16 个辅助平面使 Unicode 的可使用空间由六万多字增至约一百万字

ndash 原有的 Unicode双字节空间称为基本平面或基本多语言平面 BMP 辅助多语言平面 SMP 字符要用 4 字节来储存

ndash 第一辅助平面摆放拼音文字(主要为现时已不再使用的文字)及符号范围在 U+10000 - U+1FFFD

ndash 第二辅助平面又称为表意文字补充平面 (Supplementary Ideographic Plane 简称 SIP) 现时摆放ldquo中日韩统汉字扩展 B 区rdquo共 43253 个汉字范围在 U+20000 - U+2FFFD

ndash 第三至十三辅助平面尚未使用ndash 第十四辅助平面又称为特殊用途补充平面 (Supplementary Special-purpose Pl

ane 简称 SSP) 摆放 Language tags 和 Variation Selectors 它们都是控制字符范围在 U+E0000 - U+E01FF

ndash 第十五至十六辅助平面都是私人使用区它们的范围是 U+F0000 - U+FFFFD 及 U+100000 - U+1000FD

bull Unicode 字符集的具体编码方式参加第 4小节ldquo 4 UTFrdquo

2 ISOIEC 10646

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull ISOIEC 10646 标准由 ISO 与 IEC 联合成立的 ISOIEC JTC1SC2WG2 制定ndash JTC 1 ( Joint Technical Committee 1 on Information

technology ISOIEC信息技术联合技术委员会 1 )负责信息技术方面标准的制定工作

ndash SC 2 ( SubCommittee 2 on Coded character sets 编码字符集分会 2 )下的 WG 2 ( Working Group 2 on Universal coded character set 通用编码字符集工作组 2 )负责制定国际通用字符编码标准即后来公布的 ISOIEC 10646

发展历史bull 1984年 ISO 的一些会员国发起制定新的国际字符编码标准同年 4月 ISO

与 IEC 联合成立 ISOIEC JTC1SC2WG2 1987年 3月制定出编码架构1992年 6月投票通过第二版国际标准草案

bull 1993年 5月推出 10646 标准时将内容分成两个部分标准首先发布的是其中的第 1 个部分(体系结构与基本多文种平面)的第 1版( Edition 1 ) ISOIEC 10646-11993 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane(信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

bull 2000年 3月推出 10646 标准第一个部分的第 2版( Edition 2 ) ISOIEC 10646-12000 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane

bull 2001年 10月推出 10646 标准第 2版的第二个部分(辅助平面)的第 1版( Edition 1 ) ISOIEC 10646-22001 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 2 Supplementary Planes

bull 2003年 10月推出的 10646新标准(第 1版 Edition 1 )将老标准中的两个部分标准合并成了一个单一的标准 ISOIEC 106462003 Information technology -- Universal Multiple- Octet Coded Character Set (UCS) 后来又于 2010年 2012年和 2014年分别推出了 ISOIEC 106462010 (第 2版)ISOIEC 106462012 (第 3版)和 ISOIEC 106462014 (第 4版)

UCS 通用字符集bull 通用字符集( Universal Character Set UCS )是

ISOIEC 10646 标准所定义的字符编码方式采用 4字节编码又称为 Universal Multiple-Octet Coded Character Set (通用多八位编码字符集)

bull 通用字符集是所有包括了其他字符集它保证了与其他字符集的双向兼容即如果你将任何文本字符串翻译到 UCS 格式然后再翻译回原编码你不会丢失任何信息

bull UCS 包含了已知语言的所有字符除了拉丁语希腊语斯拉夫语希伯来语阿拉伯语亚美尼亚语格鲁吉亚语还包括中文日文韩文这样的象形文字 UCS 还包括大量的图形印刷数学科学符号

名字与组合字符bull UCS 不仅给每个字符分配一个代码而且赋予了

一个正式的名字表示一个 UCS 或 Unicode值的十六进制数通常在前面加上ldquo U+rdquo 例如ldquo U+0041rdquo代表字符ldquo Ardquo

bull UCS里有些编码点分配给了组合字符组合字符机制允许在任何字符后加上重音符或其他指示标记 这在科学符号中特别有用 比如数学方程式和国际音标字母 可能会需要在一个基本字符后组合上一个或多个指示标记

实现级别bull 并不是所有的系统都需要支持像组合字符这样的的先进

机制因此 ISO 10646 指定了如下三种实现级别ndash 级别 1不支持组合字符和韩语 Hangul Jamo 字符 ( 一种特

别的 更加复杂的韩国文的编码 使用两个或三个子字符来编码一个韩文音节 )

ndash 级别 2类似于级别 1 但在某些文字中允许一列固定的组合字符 (例如 希伯来文 阿拉伯文 Devangari 孟加拉语 果鲁穆奇语 Gujarati Oriya 泰米尔语 Telugo 印 埃纳德语 Malayalam 泰国语和老挝语 ) 因为如果没有最起码的几个组合字符 UCS就不能完整地表达这些语言

ndash 级别 3支持所有的 UCS 字符如可以在任意一个字符上加上一个箭头或 和一个 tilde(颚化符号即字母上面的~ )

编码方式bull UCS 有如下两种编码方式

ndash UCS-2与 Unicode 的 2 字节编码基本一样ndash UCS-4 4 字节编码目前是在 UCS-2 前加

上 2 个全零的字节bull UCS 还有 UTF 编码方式参见下面第 4小节ldquo 4 UTFrdquo

3 Unicode 与 ISOIEC 10646bull 关系

ndash 历史上存在两个独立的尝试创立单一字符集的组织即国际标准化组织( ISO )和多语言软件制造商组成的统一码协会组织( Unicodeorg )前者开发的 ISO 10646项目后者开发的 Unicode项目因此最初制定了不同的标准

ndash 1991年前后两个项目的参与者都认识到世界不需要两个不兼容的字符集于是它们开始合并双方的工作成果并为创立一个单一编码表而协同工作

ndash 从 Unicode20开始 Unicode采用了与 ISO 10646-1相同的字库和字码 ISO 也承诺 ISO10646 将不会替超出 U+10FFFF 的 UCS-4 编码赋值以使得两者保持一致

ndash 两个项目仍都存在并独立地公布各自的标准但 Unicode协会和 ISOIEC JTC1SC2 都同意保持两者标准的码表兼容并紧密地共同调整任何未来的扩展

异同bull Unicode协会公布的 Unicode 标准包含了 ISO 10646-1 实现级别

3 的基本多文种平面在两个标准里所有的字符都在相同的位置并且有相同的名字

bull ISO 10646 标准就像 ISO 8859 标准一样只不过是一个简单的字符集表它定义了一些编码的别名指定了一些与标准有关的术语并包括了规范说明指定了怎样使用 UCS连接其他 ISO 标准的实现等

bull Unicode 标准额外定义了许多与字符有关的语义符号学并详细说明了绘制某些语言(如阿拉伯语)表达形式的算法处理双向文字(比如拉丁文和希伯来文的混合文字)的算法排序与字符串比较所需的算法等等

bull 考虑到 Unicode 标准有一个易记的名字既便宜又包括更多的辅助信息因而它使用得更广泛然而

bull 一般认为用于打印 ISO 10646-1 标准的字体在某些方面的质量要高于用于打印 Unicode 20 的专业字体设计者总是被建议说要两个标准都实现但一些提供的样例字形有显著的区别 ISO 10646-1 标准同样使用四种不同的风格变体来显示表意文字如中文日文和韩文 (CJK) 而 Unicode 20 的表里只有中文的变体

4 UTFbull Unicode 和 UCS 都是一个字符集可以看作为内码bull UTF ( UnicodeUCS Transformation Format 统一码

通用字符集转换格式)是一种编码方式它的出现是因为 Unicode 和 UCS 不适宜在某些场合直接传输和处理

bull UCS 和 Unicode 只是分配整数给字符的编码表现在存在好几种将一串字符表示为一串字节的方法(如高或低位字节在前)

bull 最显而易见的两种方法是将 UCS 和 Unicode 文本存储为 2 个 或 4 个字节序列的串这两种方法的正式名称分别为 UCS-2 和 UCS-4

bull 常用的 UTF具体编码方式有 UTF-8 UTF-16 和 UTF-32

UTF-8

bull UTF-8 是 UTF 的一种具体编码方式在 ISO 10646-1 的附录 R 和 IETF 的 RFC 2279 里定义

bull 由于要使文档中的文字与 ASCII兼容故 UTF-8 选择了使用可变长度字节来储存 Unicode 和 UCS 例如ndash ASCII 字母继续使用 1 字节储存ndash 重音文字希腊字母或西里尔字母等使用 2 字节来储存ndash 常用的汉字就要使用 3 字节ndash 辅助平面字符则使用 4 字节ndash 即 ASCII 不作变换其他字符做变长编码每个字符 1~4 字节

bull UTF-8 通常作为外码bull 在 UTF-8 文件的开首很多时都放置一个 U+FEFF 字符

(UTF-8 以 EF BB BF 代表 ) 以显示这个文字档案是以UTF-8 编码

UTF-8 的优点bull 与 CPU 字节顺序无关可以在不同平台之间交流

bull 容错能力高任何一个字节损坏后最多只会导致一个编码码位损失不会链锁错误 ( 如 GB 码错一个字节就会整行乱码 )

UTF-8 的缺点bull UTF-8 使用可变长度字节储存使计算机程序设计变得复杂 (故此在计算机程序或操作系统内部多采用 UCS-2 编码 )

bull 在旧式的中文日文及朝鲜文编码之中每字符都使用 2 字节储存而 UTF-8 须使用 3 字节 (采用 UTF-16 编码则可只使用 2字节储存 )

bull 泰语以往使用的 ISO 8859-11 每字符只使用 1 字节储存而 UTF-8 须使用 3 字节

UTF-8储存的多字节串字符bull U-00000000 - U-0000007F 0xxxxxxx bull U-00000080 - U-000007FF 110xxxxx 10xxxxxx

bull U-00000800 - U-0000FFFF 1110xxxx 10xxxxxx

10xxxxxx bull U-00010000 - U-001FFFFF 11110xxx 10xxxxx

x 10xxxxxx 10xxxxxx bull 在多字节串中第一个字节的开头ldquo 1rdquo 的数目就

是整个串中字节的数目bull 每个使用 UTF-8储存的字符除了第一个字节外其余字节的头两个位元都是以 10 开始使文字处理器能够较快地找出每个字符的开始位置

UTF-16bull UTF-16 是 UTF 的另一种具体编码方式在 ISO 1064

6-1 的附录 Q 和 IETF 的 RFC 2781 里定义bull UTF-16 是变长码( 2 或 4 字节)大致相当于 20位编码值在 0 到 0x10FFFF 之间基本上就是 Unicode 编码的实现 UTF-16 与 CPU 字序有关但因为最省空间常作为网络传输的外码 UTF-16 是 Unicode 的完美编码

bull lt0x10000 的直接用其对应的 16位整数编码位于 0x10000 ~ 0x10FFFF 之间的用 0xD800~0xDBFF 的 16位整数后跟 0xDC00~0xDFFF 的 16位整数的 4 字节编码 gt 0x10FFFF 的不能用 UTF-16 表示

bull 在 Unicode 的 BMP 中定义的字符(无论是拉丁字母汉字或其他文字或符号)一律使用 2 字节存储而在辅助平面定义的字符则以两个 2 字节的值来存储

UTF-16 的特点bull UTF-16比起 UTF-8 的好处在于大部分字符都以固定长

度的 2 字节存储但 UTF-16却无法相容于 ASCII 编码bull UTF-16 有两种编码模式即大尾序( big Endian 高位字节在前)和小尾序( little Endian 高位字节在后)储存形式(一般來說以 Macintosh 制作和存储的文字使用大尾序格式以 Microsoft 或 Linux 制作和存储的文字使用小尾序格式)

bull 为了弄区分 UTF-16 文件的大小尾序在 UTF-16 文件的开头都会放置一个 U+FEFF 字符作为字节顺序标记 (UTF-16LE 以 FF FE代表 UTF-16BE 以 FE FF代表 ) 以显示该文档是以 UTF-16 编码的

UTF-32

bull UTF-32 仅使用了 Unicode范围 (0 到 0x10FFFF) 的 32位编码相当于 UCS-4 的子集

bull 由于 Unicode 和 ISOIEC 10646 的编码和结构与前面讲过的 GB 13000 类似或等价这里就不再做详细的介绍

5支持bull 现在 UnicodeUCS 已经获得了十分广泛的支

持ndash网络与浏览器(如 HTML 4050 XML 与 IE

Safari Netscape Firefox Chrome Opera Edge 等)

ndash操作系统(如 Windows NT2000XPVista7810 Mac OS X iOS Android和 Linux )

ndash 编程语言新版本(如 CC++JavaObjective-CC Swift 等)

Unicode 代码的浏览器显示代码 字符标准名称 (英语 )

浏览器的显示

amp65 大写拉丁字母 A A

amp223 小写拉丁字母 Sharp S szlig

amp254 小写拉丁字母 Thorn thorn

amp916 大写希腊字母 Delta Δ

amp1049 大写斯拉夫字母 Short I Й

amp1511 希伯来字母 Qof ק

amp1605 阿拉伯字母 Meem م

amp3671 泰文数字 7 ๗amp4688 埃塞俄比亚音节文字 Qha ቐ

amp12354 日语平假名 A あamp12450 日语片假名 A アamp21494 简体汉字 叶 叶amp33865 繁体汉字 葉 葉amp50685 韩国音节文字 Yeob 엽

23 文字输出bull 文字输出是指将计算机内的字符编码通过计算机的输出设备(如显示器打印机喇叭)展现出所对应字符的图形或声音供人们阅读或聆听

bull 本节主要介绍文字图示输出的字形技术bull 文字声音输出属于语音合成只在本节的末尾作简单的介绍

231 字形技术bull 文字 = 图形bull 不论是象形文字中的单字还是拼音文字

中的字母都是用图形来表示的bull 在计算机里文字的表示 输出(显示和打

印)涉及ndash 字型ndash 字体ndash 字库

1字型bull 字型指构造和生成字形的方法一般可分为

ndash 点阵字 DOS 显卡 ROM 金山 科印特点似位图显示快占空间(字库大)放大后有马赛克效应

bull 显示字母 88 汉字 1616bull 打印 2424 4848 6464

ndash 矢量字单线条用于笔式绘图仪特点字库小算法简单难看

ndash 轮廓字用曲线描绘字的轮廓输出效果好所见即所得(WYSWYG) 可无级放大易实现空心 阴影 填充 变形等各种特效功能轮廓曲线一般采用样条曲线如 TrueType (Apple 1991 Mac OS Microsoft 1992 Windows 31)用的是二次 B 样条 Bezier曲线中文之星 RichWin采用的是三次 B 样条 Bezier曲线

字型种类

2字体bull 字体指字的形状风格如

ndash 汉字的

ndash 英文的

宋体楷体黑体仿宋

行楷隶书新魏幼圆

Times New Roman Arial Narrow Courier New

常用汉字字体bull 宋体mdashmdash宋体来自于北宋时雕版刻书所采用的欧体字(唐朝欧阳询体)宋体字的横顿拉捺挑钩别具特色间架平正疏密适中字体秀丽遒劲但笔画横细竖粗适合于刀刻不宜于手写现在宋体广泛用于印刷常来表现文档的正文

bull 仿宋体mdashmdash 1920年钱塘的丁辅之与丁善之等人将明代以后盛行的方廓形字体加以改造创造出长形和方形的聚珍仿宋后来演化为现在的仿宋体仿宋体比较接近于手写体为宋体和楷体的折中是采用的宋体的结构和楷体的笔法而成现常来表现打印文件以及文档的摘要和注释等

bull 黑体mdashmdash黑体是适应工艺美术的发展而出现的一种等线体是从日本引进的黑体的结构与宋体没有什么差别只是其笔画粗细一致健实粗壮主要用于文档的标题和重点及标语广告等方面

bull 楷体mdashmdash楷体源于楷书楷体的笔画圆浑笔调灵活结构端正美观但不宜于木板雕刻所以直到清末西洋的石板印刷术传入后才开始广泛用于印刷现代的楷体创造于 20世纪的二三十年代主要用于文档的正文(多用于中小学教材)也可用于工艺美术等方面

3字库bull 字库为一种文字的某一字体的所有字符的集合一般存放在一个磁盘文件中

bull 由于象形文字中单字的数量大(成千上万)而拼音文字中字母的数量小(不到一百个)所以字库的大小有很大的差别

bull 为了使文档界面丰富多彩常见的字处理软件都支持多种字体带有众多字库

4点阵字型的国家标准bull 我国已经公布了若干字体的点阵字型之国家标准

ndash GB 50071-19852001 信息技术 汉字编码字符集(基本集) 24 点阵字型

ndash GB 50072-19852001 信息技术 汉字编码字符集(辅助集) 24 点阵字型

ndash GB 5199-19862001 信息技术 汉字编码字符集(基本集) 16 点阵字型 宋体

ndash GB 6345-19862001 信息技术 汉字编码字符集(基本集) 32 点阵字型 宋体

ndash GB 12041-2001 信息技术 汉字编码字符集(基本集) 48点阵字型 宋体

ndash GB 17698-1999 信息技术 通用多八位编码字符集( I 区) 汉字 16 点阵字型

232 语音合成bull 文字的声音输出主要使用的是语音合成的技术bull 语音合成功能是ldquo文rarr语rdquo转换bull 文语转换 TTS (Text-To-Speech) 是将文本形式的信息转换成自然语音的一种技术其最终目标是使计算机输出清晰而又自然的声音

bull 英语的语音合成在上世纪 80年代就早已成熟而中文 汉语的合成现在也趋于成熟并有了广泛的应用(如汽车导航仪智能手机等)

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 21: 第一篇  媒体

替代标准bull 由于 ISO 646 中各国的变体存在明显的兼容和统一问题现在已经作废

bull 有关编码已经被新的国际标准 ISOIEC 8859-1~16 19871998 ( Information processingtechnology -- 8-bit single-byte coded graphic character sets 信息处理 技术mdashmdash 8位单字节编码的图形字符集)所替代

bull 后来 ISO 646 与 ISOIEC 8859 标准又都被纳入 ISOIEC 1064619932003 ( Information technology -- Universal Multiple-Octet Coded Character Set (UCS) 信息技术mdashmdash通用多八位编码字符集 (UCS) )标准之中

bull 其中的标准编号 ISO 10646 = ISO 646 + 10000

标准化组织bull ANSI = American National Standards Institute 美

国国家标准协会bull ISO = International Organization for Standardization

国际标准化组织是由 153 个国家的国家标准协会联合组成的一个非政府国际组织总部(中央秘书处)设在瑞士的日内瓦负责制定适应商业和广泛社会需要的各种国际标准网址为 httpwwwisoorg

bull IEC = International Electrotechnical Commission 国际电工技术委员会是一个成立于 1906年 6月的国际标准化权威组织属于联合国的甲级咨询机构负责制定关于电工电子各方面的标准有 42 个会员国总部也设在瑞士的日内瓦网址为httpwwwiecch我国于 1958年 8月参加

2 EBCDIC

bull 西文的字符编码方案除了通用的 ASCII外还有 IBM公司于 1960年代初提出的 EBCDIC ( Extended Binary-Coded Decimal Interchange Code扩充的二进制编码的十进制交换码)

bull EBCDIC 现在仍然(仅)在 IBM 的 OS390 与 TPF 以及富士通 - 西门子的 BS2000OSD 等大型机的操作系统中使用

bull EBCDIC 是一种八位编码其字符的编码方案与ASCII 的完全不同

EBCDIC 字符集 0 1 2 3 4 5 6 7 8 9 A B C D E F

0 NUL DLE DS SP amp - 0

1 SOH DC1 SOS a j ~ A J 1

2 STX DC2 FS SYN b k s B K S 2

3 ETX TM c l t C L T 3

4 PF RES BYP PN d m u D M U 4

5 HT NL LF RS e n v E N V 5

6 LC BS ETB UC f o w F O W 6

7 DEL IL ESC EOT g p x G P X 7

8 GE CAN h q y H Q Y 8

9 RLF EM ` i r z I R Z 9

A SMM CC SM cent | |

B VT CU1 CU2 CU3 $

C FF IFS DC4 gt

D CR IGS ENQ NAK ( ) _ lsquo

E SO IRS ACK + lt =

F SI IUS BEL SUB | ldquo EO

3扩展 ASCII 显示字符bull ( 1 ) IBM PC

ndash IBM PC 的扩展 ASCII 显示字符由 IBM公司为其 PC 机制定可以由原始的 IBM PC 显示器在 DOS状态下显示

bull ( 2 ) Microsoft Windows ndash Microsoft Windows 的扩展 ASCII 显示字符由

微软公司为其Windows操作系统制定可以在Windows环境的西文状态下被显示

IBM PC 的扩展 ASCII 显示字符表

Microsoft Windows 的扩展 ASCII 显示字符表

222 中文编码bull 1 GB 1988 与 GB 2311

bull 2 GB 2312

bull 3汉字编码的辅助集bull 4 Big5

bull 5少数民族文字编码bull 6 GB 13000

bull 7 GBK 与 GB 18030

汉字编码bull 为了计算机处理汉字必须先对汉字进行编码由于汉

字数量大(《康熙字典》收字 47 035 个《汉语大字典》收字 54 678 个据统计在形成楷体后出现的汉字约有 9万个左右)显然不能像 ASCII那样用 7位或单字节来进行编码至少需要两个字节(最多可表示 6万5千多个字符)

bull 1980年我国制定了著名的 GB 2312-80双字节汉字编码标准(其中 GB 为ldquo国标rdquo这两个汉字的拼音首字母)收汉字 6 763 个

bull 1993年底又推出了等同于国际通用字符编码标准 ISOIEC 106461-1993 的国家标准 GB 130001-93 收汉字 20 902 个

bull 由于 GB 13000 与 GB 2312 的编码不兼容作为过渡2000年又公布了 GB 18030-2000 ( GBK )收汉字2万 7千个

1 GB 1988 与 GB 2311

bull 为了能够同时表示和处理汉字和英文实现中外文混排汉字编码必须兼容通用的 ASCII 编码因此1980年我国制定了与国际标准 ISO 6461972 (即ASCII )对应的国家标准 GB 1988-80《信息处理交换用的七位编码字符集》

bull 汉字成千上万不可能像 ASCII 一样只用单字节的七位来表示必须扩展到八位和多字节但是不能随意扩充而应该符合国际规范因此我国于 1980年又制定了与七位代码扩充到八位编码的国际标准 ISO 2022兼容的国家标准 GB 2311-80《信息处理交换用七位编码字符集的扩充办法》

GB 1988-80 ( ASCII )的代码结构图

行 0 1 2 3 4 5 6 7

0 SP

1 helliphellip

15

16

32个

控制符

94个

图形字符

DEL

GB 2311-80 的八位编码结构图列

行 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0 SP 100

1

helliphellip

14

15

C0

32个

控制符

GL

94或 96个

图形字符

DEL

C1

32个

控制符

GR

94或 96个

图形字符

1515

2 GB 2312

bull GB 2312-80《信息交换用汉字编码字符集 middot基本集》是我国制定的一个使用最广泛的汉字编码的强制性国家标准由原第四机械工业部的华北计算机研究所(后改名为电子工业部第十五研究所)起草1980年批准 1981年 5月 1日起实施

bull GB 2312-80 是在已有的国家标准 GB 1988-80(对应于 ISO 646 )和 GB 2311-80 (对应于 ISO 2022 )的基础上制定的采用与 ISO 2022兼容的GB 2311 之 7位到八位的代码扩充办法用双字节编码表示汉字与 ASCII兼容

收录的字符bull GB 2312 对应的是汉字的基本集共收汉字 6 763 个

可达到 9999 的使用频率因此除了极少数生僻的人名地名和古文外 GB 2312 中的汉字已经能基本满足平时的使用了

bull 除了汉字外 GB 2312 还收录了 682 个非汉字图形符号包括 202 个一般符号(含间隔符标点运算符和制表符) 60 个序号符 22 个数字符 52 个英文字母 169 个日文假名 48 个希腊字母 66 个俄文字母 26 个汉语拼音符号和 37 个汉语注音字母

bull 所以在 GB 2312-80 标准中共收录了( 6 763 汉字 + 682 非汉字图符 = ) 7 445 图形字符

两级汉字bull GB 2312 将其收录的六千多个汉字分成两个级别bull 一级汉字有 3 755 个都为使用频率高的常用汉

字为便于检索像字典那样将这些汉字按拼音字母顺序排列(同音字再按笔顺的横竖撇捺点折序排列)

bull 二级汉字有 3 008 个大部分较生僻不易掌握读音所以按部首顺序排列(同部首的字按笔画数排列同笔画数的字再按笔顺排列)

编码方案bull GB 2312 对所有图形字符(包括汉字和非汉字图符)都采用两个字节表示每个字节的低七位用于编码最高位全为 1 这样可以兼容 ASCII 编码(字节的最高位全为 0 )

bull 虽然在一个字节中最高位为 1 的符号位置有 128 个但从前面 GB 2311 的分析可知为了与 ASCII 的代码结构兼容保留了( 32 + 2 = ) 34 个控制符位置最后只有( 128 ndash 34 = ) 94 个符号位可供图形字符编码使用

bull 图形字符在代码表中的位置用区位码表示将码表分成94 个区对应于编码的第一个字节取值 0x21~0x7E 每个区又分成 94 个位对应于编码的第二个字节取值 0x21~0x7E (参见表 2-6 )

bull 例如ldquo中山大学rdquo的编码为中 (0xD6D0) 山 (0xC9BD) 大 (0xB4F3) 学 (0xD1A7)

GB 2312-80 字符集结构 20 21 22 helliphellip 7D 7E 7F

位号

区号

1 2 helliphellip 93 94

20

21~29 1~9 非汉字图符(682个)

2A~2F 10~15 空白区

30~57 16~55 一级汉字(3 755个)

58~77 56~87 二级汉字(3 008个)

78~7E 88~94 空白区

7F

第 1 区的部分非汉字图符

1区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 middot ˉ ˇ uml 々 mdash ~ hellip lsquo rsquo ldquo

17~32 rdquo 〔 〕 〈 〉 《 》 「 」 『 』 〖 〗 【 】 plusmn

33~48 times divide ∶ and or sum prod cup cap isin ∷ radic perp ∥ ang

49~64 ⊙ int ∮ equiv ≌ asymp ∽ prop ne ltu gtu le ge infin ∵ there4

65~80 deg prime Prime $ curren ¢ £ permil sect

81~94 rarr larr uarr darr

第 16 区的部分一级汉字

16区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 啊 阿 埃 挨 哎 唉 哀 皑 癌 蔼 矮 艾 碍 爱 隘 鞍

17~32 氨 安 俺 按 暗 岸 胺 案 肮 昂 盎 凹 敖 熬 翱 袄

33~48 傲 奥 懊 澳 芭 捌 扒 叭 吧 笆 八 疤 巴 拔 跋 靶

49~64 把 耙 坝 霸 罢 爸 白 柏 百 摆 佰 败 拜 稗 斑 班

65~80 搬 扳 般 颁 板 版 扮 拌 伴 瓣 半 办 绊 邦 帮 梆

81~94 榜 膀 绑 棒 磅 蚌 镑 傍 谤 苞 胞 包 褒 剥

第 56 区的部分二级汉字

56区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 亍 丌 兀 丐 廿 卅 丕 亘 丞 鬲 孬 噩 丨 禺 丿 匕

17~32 乇 夭 爻 卮 氐 囟 胤 馗 毓 睾 鼗 丶 亟 鼐 乜 乩

33~48 亓 芈 孛 啬 嘏 仄 厍 厝 厣 厥 厮 靥 赝 匚 叵 匦

49~64 匮 匾 赜 卦 卣 刂 刈 刎 刭 刳 刿 剀 剌 剞 剡 剜

65~80 蒯 剽 劂 劁 劐 劓 冂 罔 亻 仃 仉 仂 仨 仡 仫 仞

81~94 伛 仳 伢 佤 仵 伥 伧 伉 伫 佞 佧 攸 佚 佝

3汉字编码的辅助集bull 除了GB 2312基本集的 6 763 个简体汉字外国家标

准还给出了汉字编码字符集的多个辅助集bull 第二 四辅助集分别增加了 7 237 7 039 个简体汉字bull 第一和三 五辅助集则分别是与基本集和第二 四辅助集所对应的繁体汉字字符集的国家标准

bull 基本集加上辅助集共有 21 039 个简体汉字和 21 142个繁体汉字

bull 繁体汉字之所以多一些是因为在第一辅助集中有时几个繁体字对应一个简体字因此比基本集多出 103 个汉字

bull 基本集和辅助集的代码页之间靠其编码字节的最高位来区分

编码字符的分页标志

双字节汉字编码的页面结构第二字节 列号

行号 0 middot middot middot 32 33 34 helliphellip 125 126 127 128middot middot 160 161 162 helliphellip 254 255 0 middot middot 32

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

33 34 middot middot middot 126

1 2 middot middot middot 94

第四五辅助集 (7 039个汉字)

127

(兼容ASCII)

128 middot middot 160

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

161 162 middot middot middot 254

1 2 middot middot middot 94

第二三辅助集 (7 237个汉字)

1 2 middot middot middot 94

基本集第一辅助集 (6 763 6 866个汉字) (682个非汉字图符)

第一字节

255

4 Big5

bull 除了中国大陆使用的简体汉字外在台湾香港澳门和海外华侨社区使用的是传统的繁体汉字

bull 简体汉字使用 GB (国标)系列编码标准bull 繁体汉字一般使用的是 Big5内码(大五码)即台湾的ldquo资讯工业策进会rdquo发布的《标准交换码 (Ⅲ码 )》收录汉字 13 053 个

bull Big5内码是 1984年由台湾财团法人资讯工业策进会与宏碁 (Acer) 神通 (MiTAC) 佳佳零壹 (Zero One) 大众 (FIC) 等五大软件公司联合推出故称为大五码

BIG5 的代码空间低位字节

00 hellip 3F 40 hellip 7E 7F hellip A0 A1 hellip FE FF

高位字节

00middot

80

81middot

A0用户定义区 用户定义区

A1A2A3

非汉字图符 非汉字图符

A4middot

C6常用汉字 常用汉字

C7C8

用户定义区 用户定义区

C9middot

F9次常用汉字 次常用汉字

FAmiddot

FE用户定义区 用户定义区

FF

5少数民族文字编码bull 中国共有 56 个民族除了汉回满族一般使用汉语外其他少数民族大多有自己的民族语言

bull 我国各民族使用的 50 多种文字可以分为字母式结构文字和非字母式结构文字两大类ndash 字母式结构的有拉丁文斯拉夫文蒙古文维吾尔文哈萨克文藏文和朝鲜文等字母式

ndash 非字母式结构的有汉字象形文字图画文字和音节文字等bull 各民族文字的书写方向也有不同

ndash 壮文藏文朝鲜文彝文等的字从左到右行从上到下ndash 维吾尔文哈萨克文和柯尔克孜文等的字从右到左行从上

到下ndash 蒙古文和满文的字从上到下行从左到右ndash 汉字的书写方向有两种

bull 大陆的简体汉字的字从左到右行从上到下bull 港台与古旧书的繁体汉字的字从上到下行从右到左

国家标准bull 下面按发布时间列出若干已经公布的我国少数民族文字

编码集的国家标准(这些字符集一般分成两类对字母式结构文字采用八位编码对非字母式结构文字采用双字节编码)ndash GB 8045-87《信息处理交换用蒙古文七位和八位编码图形字

符集》收 82 个蒙古文字母和 12 个其他符号共 94 个字符ndash GB 12050-89《信息处理交换用维吾尔文编码图形字符集》收 32 个维吾尔文字母一个维吾尔文复合字符和 37 个其他符号共 70 个字符

ndash GB 12052-89《信息交换用朝鲜文编码字符集》收 5297 个朝鲜文字和 682 个其他符号(与 GB 2132同)共 5 979 个字符

ndash GB 13134-91《信息交换用彝文编码字符集》收 1165 个彝文字符和 688 个其他符号共 1853 个字符

ndash GB 16959-1997《信息技术 信息交换用藏文编码字符集 基本集》收 41 个藏文字母 36 个藏文主字 13 个元音字符12 个语音字符 10 个藏文数字 10 个半值符一个控制用连接符和 46 个其他藏文图形符号共 169 个字符

6 GB 13000bull GB 13000 是与 ISOIEC 10646 等价的国际通用编码字符集标准收汉字 2万多个但是与 GB 2312 和 GBK 不兼容

bull 1993年 5月 ISO 与 IEC 联合推出了可用于世界各种文字的通用编码字符集的国际标准的第 1部分ndash ISOIEC 10646-11993 Information technology -- Universal Multiple-Octe

t Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane (信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

ndash 该标准收字符 96万个几乎涵盖世界上的所有文字其中包含汉字 21 003 个

bull 1993年底我国推出了等同于国际标准 ISOIEC 1064611993 的强制性国家标准 ndash GB 130001-93《信息技术 通用多八位编码字符集( UCS ) 第一部分

体系结构与基本多文种平面》ndash 该标准于 1993年 12月 24日被国家技术监督局批准 1994年 8月 1日起实施

GB 13000 的主要特点

bull 世界各语言文种字符统一编码避免冲突便于国际交流

bull 编码空间宽阔连续每个图形字符的编码唯一(一字一码)不再存在兼容性问题

bull 按文种而不是按语言编码避免重复和浪费(如中日韩汉字的统一编码 CJK )

bull 与 GB 2312 和 GBK 不兼容

体系结构bull UCS 的体系结构是基于所谓ldquo多八位rdquo的而ldquo八位rdquo就是一个字节ldquo多八位rdquo就是多个字节

bull UCS采用 4 个字节来表征组面行位的四维空间bull 整个 UCS空间包含 128 个组( 0x00组 ~0x7F组)每组有 256 个平面( 0x00 平面 ~0xFF 平面)每个平面有 256 行每行又由 256 个字位构成

bull UCS共有( 128 times 256 = ) 32 768 个平面每个平面有( 256 times 256 = ) 65 536 个字位每个字位对应于一个字符的编码

bull 目前的编码只限于 00组已经定义的平面有 00组的00 平面mdashmdash称之为基本多文种平面 BMP ( Basic Multilingual Plane ) 及若干辅助平面

UCS 的全部编码空间

每个平面256times256 个

字位

00组 00 平面

00组 FF 平面

01组 00 平面

7F组 00 平面00

01组

7F组

UCS 的 00组

BMPbull BMP = Basic Multilingual Plane 基本多文种平面bull BMP 用作双八位编码字符集称之为 UCS-2 它被

分成四个区ndash A- 区(字位 0x0000~0x4DFF 有 19 903 个字位)用于

字母文字音节文字以及各种符号ndash I- 区(字位 0x4E00~0x9FFF 共 20 992 个字位)用于中日韩统一汉字( CJK )

ndash O- 区(字位 0xA000~0xDFFF 共 16 384 个字位)保留未来标准化用

ndash R- 区(字位 0xE000~0xFFFD 共 8 190 个字位)为 BMP 的限制使用区包括专用字符变形显现形式及兼容字符

BMP总貌

A-区

00~33 拼音文字(见下页)

34~3D 朝鲜文

3E~44 朝鲜文补充 -A

45~4D 朝鲜文补充 -B

I-区 4E~9F CJK统一汉字O-区 A0~DF

R-区

E0~F8 专用区

F9~FA CJK兼容汉字FB 拼音文字变形显现形式

FC~FD 阿拉伯文变形显现形式 -A

FE半形组合用标志

CJK兼容形式

小写变体

阿拉伯文变形显现形式 -B

FF 半形及全形字符 特殊字符

BMP 的0x00~0x33

行字母文字区

00 基本拉丁文 拉丁文-1补充

01 拉丁文扩充-A 拉丁文扩充-B

02 拉丁文扩充-B 国际音标扩充 进格修饰字符

03 组合用发音符 基本希腊文 希腊符号及哥普特文

04 西里尔文

05 美亚尼亚文 希伯来文(基本和扩充)

06 基本阿拉伯文 阿拉伯文扩充

07

08

09 梵文 孟加拉文

0A 锡克教文 古吉拉特文

0B 奥利雅文 泰米尔文

0C 泰卢固文 卡纳达文

0D 德拉维族文

0E 泰文 老挝文

0F

10 格鲁吉亚文

11 朝鲜文字母

12~1D

1E 拉丁文扩充增补

1F 希腊文扩充

20 广义标点 上下标 货币符号 符号组合用区分标志

21 类似字母的符号 数字形式 箭头

22 数学运算符

23 零杂技术用符号

24 控制图符 光学识别符 带括号的字母数字

25 制表符 方块元素 几何图形符

26 零杂符号

27 示意符等

28~2F

30 CJK符号和标点 平假名 片假名

31 注音 朝鲜文兼容字母 CJK零杂字符

32 带括号的CJK字母及月份

33 CJK兼容字符

留作将来标准化用

非图形字符

表示形式bull GB 13000提供了字符编码表示的两种替代使用的形式

ndash 双八位 BMP 形式( UCS-2 )mdashmdash允许使用 BMP 中的字符且每个字符用两个字节表示

ndash 肆八位正则形式( UCS-4 )mdashmdash允许使用 GB 13000 中的全部字符且每个字符用四个字节表示

bull 除了 UCS-24外还有另外两种变形的表示形式ndash UTF-8 (单字节 ~ 多字节)ndash UTF-16 (双字节和 4 字节与 UCS-2 等价)ndash 目前在工业上的实现均为 UTF-16 ( UCS-2 )和 UTF-8ndash UTF = Unicode UCS Transformation Format 统一码 UC

S转换格式bull 关于统一码我们会在下一小节详细介绍

7 GBK 与 GB 18030bull 由于 GB 13000 标准与 GB 2312 标准的字符编码不兼容作为过渡在国家信息技术标准化委员会的主持下制定了与 GB 2312兼容的《汉字内码扩展规范( GBK )》( K 为扩展的ldquo扩rdquo字的拼音首字母)并于 1995年 12月 15日由原国家技术监督局标准司联合原电子工业部科技与质量监督司作为指导性技术规范发布实施

bull 2000年 GBK又被国家标准 GB 18030-2000《信息技术 信息交换用汉字编码字符集 基本集的扩充》所代替该标准收汉字 2万 7千个

bull 与 GB 2312 一样 GB 18030 也为中国的强制性国家标准微软公司的 Windows XPVista78 中文版与苹果公司的 Mac OS X 和 iOS 谷歌公司的 Android (安卓)等操作系统已经全面支持 GBK

GB 18030 的码位范围分布

字节数 码位空间 码位数目

单字节 0x00~0x7F 128

双字节第 1字节 第 2字节

23 9400x81~0xFE

0x40~0x7E 0x80~0xFE

四字节第 1字节 第 2字节 第 3字节 第 4字节

1 587 6000x81~0xFE 0x30~0x39 0x81~0xFE 0x30~0x39

GB 18030的

总体结构图

收录字符bull 单字节部分mdashmdash收录了GBT 11383 的 0x00~0x7F 全部 128 个字符(似 ASCI

I )bull 双字节部分mdashmdash收录内容如下 (21 003 个汉字和 884 个符号共 21 887 个字符 )

ndash GB 130001-93 的全部 CJK 统一汉字字符 20 902 个( GB 2312 的编码汉字在双字节 2 区其他 CJK 统一汉字在双字节 34 区)

ndash GB 130001-93 的 CJK兼容区挑选出来的 21 个汉字ldquo郎凉秊helliphellip﨨﨩rdquo( 0xFD9C~0xFDA0 和 0xFE40~0xFE4F )

ndash GB 130001-93 中收录而 GB 2312未收录的台湾地区使用的图形字符 139 个ldquoˊˋ˙helliphelliprdquo( 0xA840~0xA895 和 0xA940~0XA988 )

ndash GB 130001-93收录的其他字符 31 ( 13)个(在双字节 5 区)ndash GB 2312-80 中的非汉字字符 682 个( 0xA1A1~0xA9EF )ndash GB 12345-90 的竖排标点符号 19 ( 29)个ldquo︵︶︹helliphellip︳︴rdquo( 0xA6D9~0xA6

F5 )ndash GB 2312-80未收录的 10 个小写罗马数字ldquoⅰⅱⅲhelliphellipⅸⅹrdquo( 0xA2A1~ 0xA2A

A )ndash GB 2312-80未收录的带音调的汉语拼音字母 5 ( 4)个ldquo ńňǹrdquo 以及 ɑ 和 ɡ ( 0

xA8BB~0xA8C0 )ndash 汉字数字零ldquo〇rdquo (0xA996) 和欧元符ldquoeurordquo (0xA2E3)ndash 表意文字描述符 13 个ldquohelliphelliprdquo( 0xA989~0xA995 )ndash 对 GB 130001-93增补的汉字和部首 构件 80 个ldquohelliphellip䶮rdquo( 0xFE50~ 0x

FEA0 )bull 四字节部分mdashmdash收录了上述双字节字符之外的包括 CJK 统一汉字扩充 A 在内

的 GB 130001-93 中的全部字符

GB 18030双字节部分的码位安排

类别 区名 码位范围 码位数 字符数 内容

符号区双字节 1区 A1A1~A9FE 846 718

GB 2312非汉字字符等

双字节 5区 A840~A9A0 192 166 台湾图符等

汉字区双字节 2区 B0A1~F7FE 6768 6763 GB 2312汉字双字节 3区 8140~A0FE 6080 6080 CJK统一汉字双字节 4区 AA40~FEA0 8160 8160 CJK统一汉字等

用户自定义区双字节用户区 1 AAA1~AFFE 564

用户自定义字符双字节用户区 2 F8A1~FEFE 658

双字节用户区 3 A140~A7A0 672

GB 18030双字节部分的编码空间结构图 尾字节

0x40larr――rarr0x7E 0x80larr――rarr0xA0 0xA1larr――――――――――――rarr0xFE

0x81 uarr darr

0xA0

0xA1 uarr darr

0xA7

0xA8 0xA9

首字节

0xAA uarr | | | | | | | | | | darr

0xFE

双字节 3区

汉字区6 080个码位

双字节用户区 3

用户自定义区672个码位

双字节 5区 图形符号区192个码位

双字节 4区

汉字区8 160个码位

双字节 1区

图形符号区564个码位

双字节 2区

汉字区6 768个码位

双字节用户区 1 用户自定义区564个码位

双字节用户区 2 用户自定义区658个码位

223 国际通用字符编码

bull Unicode (统一码)是由多语言软件制造商组成的统一码协会( httpwwwUnicodeorg)所制定一种国际字符的编码标准

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull 本节主要介绍这两种关系密切的主流国际字符编码标准的来历编码方案各自特点与相互关系

1 Unicode 统一码bull 发展历史

ndash 1987年施乐( Xerox )公司的 Joe Becker 与 Lee Collins 和苹果( Apple )公司的 Mark Davis 等人开始讨论统一编码 1987年 12月 Joe Becker造词 Unicode (统一码)含义为ldquo unique universal and uniform character encodingrdquo (单一通用统一的字符编码) 1989年 2月开始定期召开统一码会议 1989年 9月公布 Unicode草案

ndash 1991年 1月 3 日由 Xerox Apple Sun IBM Aldis Microsoft 等公司出资在美国加州成立了统一码协会( Unicode Consortium )并由协会设立非盈利性的统一码公司( Unicode Inc )后来 HP Adobe Borland Digital Lotus Novell 等公司也纷纷加入 1991年 1月成立统一码技术委员会 UTC 并制定了其规程

ndash 1991年 2月在 Ed Hart 的推动下进行了ldquo统一码对 10464 国际标准草案 1rdquo 的对话Unicode 与 ISOIEC 10646开始走向融合

ndash 1991年 8月发布 Unicode 标准 10版的第 1卷(体系结构非表意字符) 1992年6月发表 Unicode 10版的第 2卷(表意字符) 1993年 6月发布 Unicode 11版与 1993年 5月公布的 ISOIEC 10646-11993 实现了合并

ndash 1996年 7月发布 Unicode 20版ndash 1999年 9月发布 Unicode 30版ndash 2003年 4月发布 Unicode 40版(对应于 ISOIEC 106462003 ) 2004年 3月 31日发布 Unicode 401版 2005年 3月 31日发布 Unicode 410版

ndash 2006年 7月 14日发布 Unicode 50版 2008年 4月 4日发布 Unicode 51版 2009年 12月 22日发布 Unicode 52版

ndash 2010年 10月发布 Unicode 60版 2012年 1月发布 Unicode 61版(对应于 ISOIEC 106462012 ) 2012年 9月推出 Unicode 62版 2013年 9月推出 Unicode 63版

ndash 2014年 6月 16日发布 Unicode 70版 ndash 2015年 6月 17日发布 Unicode 80版

字符集bull Unicode 字符集的空间分成双字节的基本多语言平面 (Basic Multilingual Pla

ne BMP) 和 4 字节的辅助多语言平面 (Supplementary Multilingual Plane SMP) 两种

bull BMPndash Unicode 的基本平面或基本多语言平面 BMP 对应于 ISOIEC 10646-1 的第 00组的 00 平面( BMP )即 Unicode 与 ISOIEC 10646 的 BMP 中的字符编码完全一致

bull SMPndash 鉴于 Unicode 原有的 16位元空间不足以应用从 Unicode 31版本开始设立了 16 个辅助平面使 Unicode 的可使用空间由六万多字增至约一百万字

ndash 原有的 Unicode双字节空间称为基本平面或基本多语言平面 BMP 辅助多语言平面 SMP 字符要用 4 字节来储存

ndash 第一辅助平面摆放拼音文字(主要为现时已不再使用的文字)及符号范围在 U+10000 - U+1FFFD

ndash 第二辅助平面又称为表意文字补充平面 (Supplementary Ideographic Plane 简称 SIP) 现时摆放ldquo中日韩统汉字扩展 B 区rdquo共 43253 个汉字范围在 U+20000 - U+2FFFD

ndash 第三至十三辅助平面尚未使用ndash 第十四辅助平面又称为特殊用途补充平面 (Supplementary Special-purpose Pl

ane 简称 SSP) 摆放 Language tags 和 Variation Selectors 它们都是控制字符范围在 U+E0000 - U+E01FF

ndash 第十五至十六辅助平面都是私人使用区它们的范围是 U+F0000 - U+FFFFD 及 U+100000 - U+1000FD

bull Unicode 字符集的具体编码方式参加第 4小节ldquo 4 UTFrdquo

2 ISOIEC 10646

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull ISOIEC 10646 标准由 ISO 与 IEC 联合成立的 ISOIEC JTC1SC2WG2 制定ndash JTC 1 ( Joint Technical Committee 1 on Information

technology ISOIEC信息技术联合技术委员会 1 )负责信息技术方面标准的制定工作

ndash SC 2 ( SubCommittee 2 on Coded character sets 编码字符集分会 2 )下的 WG 2 ( Working Group 2 on Universal coded character set 通用编码字符集工作组 2 )负责制定国际通用字符编码标准即后来公布的 ISOIEC 10646

发展历史bull 1984年 ISO 的一些会员国发起制定新的国际字符编码标准同年 4月 ISO

与 IEC 联合成立 ISOIEC JTC1SC2WG2 1987年 3月制定出编码架构1992年 6月投票通过第二版国际标准草案

bull 1993年 5月推出 10646 标准时将内容分成两个部分标准首先发布的是其中的第 1 个部分(体系结构与基本多文种平面)的第 1版( Edition 1 ) ISOIEC 10646-11993 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane(信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

bull 2000年 3月推出 10646 标准第一个部分的第 2版( Edition 2 ) ISOIEC 10646-12000 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane

bull 2001年 10月推出 10646 标准第 2版的第二个部分(辅助平面)的第 1版( Edition 1 ) ISOIEC 10646-22001 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 2 Supplementary Planes

bull 2003年 10月推出的 10646新标准(第 1版 Edition 1 )将老标准中的两个部分标准合并成了一个单一的标准 ISOIEC 106462003 Information technology -- Universal Multiple- Octet Coded Character Set (UCS) 后来又于 2010年 2012年和 2014年分别推出了 ISOIEC 106462010 (第 2版)ISOIEC 106462012 (第 3版)和 ISOIEC 106462014 (第 4版)

UCS 通用字符集bull 通用字符集( Universal Character Set UCS )是

ISOIEC 10646 标准所定义的字符编码方式采用 4字节编码又称为 Universal Multiple-Octet Coded Character Set (通用多八位编码字符集)

bull 通用字符集是所有包括了其他字符集它保证了与其他字符集的双向兼容即如果你将任何文本字符串翻译到 UCS 格式然后再翻译回原编码你不会丢失任何信息

bull UCS 包含了已知语言的所有字符除了拉丁语希腊语斯拉夫语希伯来语阿拉伯语亚美尼亚语格鲁吉亚语还包括中文日文韩文这样的象形文字 UCS 还包括大量的图形印刷数学科学符号

名字与组合字符bull UCS 不仅给每个字符分配一个代码而且赋予了

一个正式的名字表示一个 UCS 或 Unicode值的十六进制数通常在前面加上ldquo U+rdquo 例如ldquo U+0041rdquo代表字符ldquo Ardquo

bull UCS里有些编码点分配给了组合字符组合字符机制允许在任何字符后加上重音符或其他指示标记 这在科学符号中特别有用 比如数学方程式和国际音标字母 可能会需要在一个基本字符后组合上一个或多个指示标记

实现级别bull 并不是所有的系统都需要支持像组合字符这样的的先进

机制因此 ISO 10646 指定了如下三种实现级别ndash 级别 1不支持组合字符和韩语 Hangul Jamo 字符 ( 一种特

别的 更加复杂的韩国文的编码 使用两个或三个子字符来编码一个韩文音节 )

ndash 级别 2类似于级别 1 但在某些文字中允许一列固定的组合字符 (例如 希伯来文 阿拉伯文 Devangari 孟加拉语 果鲁穆奇语 Gujarati Oriya 泰米尔语 Telugo 印 埃纳德语 Malayalam 泰国语和老挝语 ) 因为如果没有最起码的几个组合字符 UCS就不能完整地表达这些语言

ndash 级别 3支持所有的 UCS 字符如可以在任意一个字符上加上一个箭头或 和一个 tilde(颚化符号即字母上面的~ )

编码方式bull UCS 有如下两种编码方式

ndash UCS-2与 Unicode 的 2 字节编码基本一样ndash UCS-4 4 字节编码目前是在 UCS-2 前加

上 2 个全零的字节bull UCS 还有 UTF 编码方式参见下面第 4小节ldquo 4 UTFrdquo

3 Unicode 与 ISOIEC 10646bull 关系

ndash 历史上存在两个独立的尝试创立单一字符集的组织即国际标准化组织( ISO )和多语言软件制造商组成的统一码协会组织( Unicodeorg )前者开发的 ISO 10646项目后者开发的 Unicode项目因此最初制定了不同的标准

ndash 1991年前后两个项目的参与者都认识到世界不需要两个不兼容的字符集于是它们开始合并双方的工作成果并为创立一个单一编码表而协同工作

ndash 从 Unicode20开始 Unicode采用了与 ISO 10646-1相同的字库和字码 ISO 也承诺 ISO10646 将不会替超出 U+10FFFF 的 UCS-4 编码赋值以使得两者保持一致

ndash 两个项目仍都存在并独立地公布各自的标准但 Unicode协会和 ISOIEC JTC1SC2 都同意保持两者标准的码表兼容并紧密地共同调整任何未来的扩展

异同bull Unicode协会公布的 Unicode 标准包含了 ISO 10646-1 实现级别

3 的基本多文种平面在两个标准里所有的字符都在相同的位置并且有相同的名字

bull ISO 10646 标准就像 ISO 8859 标准一样只不过是一个简单的字符集表它定义了一些编码的别名指定了一些与标准有关的术语并包括了规范说明指定了怎样使用 UCS连接其他 ISO 标准的实现等

bull Unicode 标准额外定义了许多与字符有关的语义符号学并详细说明了绘制某些语言(如阿拉伯语)表达形式的算法处理双向文字(比如拉丁文和希伯来文的混合文字)的算法排序与字符串比较所需的算法等等

bull 考虑到 Unicode 标准有一个易记的名字既便宜又包括更多的辅助信息因而它使用得更广泛然而

bull 一般认为用于打印 ISO 10646-1 标准的字体在某些方面的质量要高于用于打印 Unicode 20 的专业字体设计者总是被建议说要两个标准都实现但一些提供的样例字形有显著的区别 ISO 10646-1 标准同样使用四种不同的风格变体来显示表意文字如中文日文和韩文 (CJK) 而 Unicode 20 的表里只有中文的变体

4 UTFbull Unicode 和 UCS 都是一个字符集可以看作为内码bull UTF ( UnicodeUCS Transformation Format 统一码

通用字符集转换格式)是一种编码方式它的出现是因为 Unicode 和 UCS 不适宜在某些场合直接传输和处理

bull UCS 和 Unicode 只是分配整数给字符的编码表现在存在好几种将一串字符表示为一串字节的方法(如高或低位字节在前)

bull 最显而易见的两种方法是将 UCS 和 Unicode 文本存储为 2 个 或 4 个字节序列的串这两种方法的正式名称分别为 UCS-2 和 UCS-4

bull 常用的 UTF具体编码方式有 UTF-8 UTF-16 和 UTF-32

UTF-8

bull UTF-8 是 UTF 的一种具体编码方式在 ISO 10646-1 的附录 R 和 IETF 的 RFC 2279 里定义

bull 由于要使文档中的文字与 ASCII兼容故 UTF-8 选择了使用可变长度字节来储存 Unicode 和 UCS 例如ndash ASCII 字母继续使用 1 字节储存ndash 重音文字希腊字母或西里尔字母等使用 2 字节来储存ndash 常用的汉字就要使用 3 字节ndash 辅助平面字符则使用 4 字节ndash 即 ASCII 不作变换其他字符做变长编码每个字符 1~4 字节

bull UTF-8 通常作为外码bull 在 UTF-8 文件的开首很多时都放置一个 U+FEFF 字符

(UTF-8 以 EF BB BF 代表 ) 以显示这个文字档案是以UTF-8 编码

UTF-8 的优点bull 与 CPU 字节顺序无关可以在不同平台之间交流

bull 容错能力高任何一个字节损坏后最多只会导致一个编码码位损失不会链锁错误 ( 如 GB 码错一个字节就会整行乱码 )

UTF-8 的缺点bull UTF-8 使用可变长度字节储存使计算机程序设计变得复杂 (故此在计算机程序或操作系统内部多采用 UCS-2 编码 )

bull 在旧式的中文日文及朝鲜文编码之中每字符都使用 2 字节储存而 UTF-8 须使用 3 字节 (采用 UTF-16 编码则可只使用 2字节储存 )

bull 泰语以往使用的 ISO 8859-11 每字符只使用 1 字节储存而 UTF-8 须使用 3 字节

UTF-8储存的多字节串字符bull U-00000000 - U-0000007F 0xxxxxxx bull U-00000080 - U-000007FF 110xxxxx 10xxxxxx

bull U-00000800 - U-0000FFFF 1110xxxx 10xxxxxx

10xxxxxx bull U-00010000 - U-001FFFFF 11110xxx 10xxxxx

x 10xxxxxx 10xxxxxx bull 在多字节串中第一个字节的开头ldquo 1rdquo 的数目就

是整个串中字节的数目bull 每个使用 UTF-8储存的字符除了第一个字节外其余字节的头两个位元都是以 10 开始使文字处理器能够较快地找出每个字符的开始位置

UTF-16bull UTF-16 是 UTF 的另一种具体编码方式在 ISO 1064

6-1 的附录 Q 和 IETF 的 RFC 2781 里定义bull UTF-16 是变长码( 2 或 4 字节)大致相当于 20位编码值在 0 到 0x10FFFF 之间基本上就是 Unicode 编码的实现 UTF-16 与 CPU 字序有关但因为最省空间常作为网络传输的外码 UTF-16 是 Unicode 的完美编码

bull lt0x10000 的直接用其对应的 16位整数编码位于 0x10000 ~ 0x10FFFF 之间的用 0xD800~0xDBFF 的 16位整数后跟 0xDC00~0xDFFF 的 16位整数的 4 字节编码 gt 0x10FFFF 的不能用 UTF-16 表示

bull 在 Unicode 的 BMP 中定义的字符(无论是拉丁字母汉字或其他文字或符号)一律使用 2 字节存储而在辅助平面定义的字符则以两个 2 字节的值来存储

UTF-16 的特点bull UTF-16比起 UTF-8 的好处在于大部分字符都以固定长

度的 2 字节存储但 UTF-16却无法相容于 ASCII 编码bull UTF-16 有两种编码模式即大尾序( big Endian 高位字节在前)和小尾序( little Endian 高位字节在后)储存形式(一般來說以 Macintosh 制作和存储的文字使用大尾序格式以 Microsoft 或 Linux 制作和存储的文字使用小尾序格式)

bull 为了弄区分 UTF-16 文件的大小尾序在 UTF-16 文件的开头都会放置一个 U+FEFF 字符作为字节顺序标记 (UTF-16LE 以 FF FE代表 UTF-16BE 以 FE FF代表 ) 以显示该文档是以 UTF-16 编码的

UTF-32

bull UTF-32 仅使用了 Unicode范围 (0 到 0x10FFFF) 的 32位编码相当于 UCS-4 的子集

bull 由于 Unicode 和 ISOIEC 10646 的编码和结构与前面讲过的 GB 13000 类似或等价这里就不再做详细的介绍

5支持bull 现在 UnicodeUCS 已经获得了十分广泛的支

持ndash网络与浏览器(如 HTML 4050 XML 与 IE

Safari Netscape Firefox Chrome Opera Edge 等)

ndash操作系统(如 Windows NT2000XPVista7810 Mac OS X iOS Android和 Linux )

ndash 编程语言新版本(如 CC++JavaObjective-CC Swift 等)

Unicode 代码的浏览器显示代码 字符标准名称 (英语 )

浏览器的显示

amp65 大写拉丁字母 A A

amp223 小写拉丁字母 Sharp S szlig

amp254 小写拉丁字母 Thorn thorn

amp916 大写希腊字母 Delta Δ

amp1049 大写斯拉夫字母 Short I Й

amp1511 希伯来字母 Qof ק

amp1605 阿拉伯字母 Meem م

amp3671 泰文数字 7 ๗amp4688 埃塞俄比亚音节文字 Qha ቐ

amp12354 日语平假名 A あamp12450 日语片假名 A アamp21494 简体汉字 叶 叶amp33865 繁体汉字 葉 葉amp50685 韩国音节文字 Yeob 엽

23 文字输出bull 文字输出是指将计算机内的字符编码通过计算机的输出设备(如显示器打印机喇叭)展现出所对应字符的图形或声音供人们阅读或聆听

bull 本节主要介绍文字图示输出的字形技术bull 文字声音输出属于语音合成只在本节的末尾作简单的介绍

231 字形技术bull 文字 = 图形bull 不论是象形文字中的单字还是拼音文字

中的字母都是用图形来表示的bull 在计算机里文字的表示 输出(显示和打

印)涉及ndash 字型ndash 字体ndash 字库

1字型bull 字型指构造和生成字形的方法一般可分为

ndash 点阵字 DOS 显卡 ROM 金山 科印特点似位图显示快占空间(字库大)放大后有马赛克效应

bull 显示字母 88 汉字 1616bull 打印 2424 4848 6464

ndash 矢量字单线条用于笔式绘图仪特点字库小算法简单难看

ndash 轮廓字用曲线描绘字的轮廓输出效果好所见即所得(WYSWYG) 可无级放大易实现空心 阴影 填充 变形等各种特效功能轮廓曲线一般采用样条曲线如 TrueType (Apple 1991 Mac OS Microsoft 1992 Windows 31)用的是二次 B 样条 Bezier曲线中文之星 RichWin采用的是三次 B 样条 Bezier曲线

字型种类

2字体bull 字体指字的形状风格如

ndash 汉字的

ndash 英文的

宋体楷体黑体仿宋

行楷隶书新魏幼圆

Times New Roman Arial Narrow Courier New

常用汉字字体bull 宋体mdashmdash宋体来自于北宋时雕版刻书所采用的欧体字(唐朝欧阳询体)宋体字的横顿拉捺挑钩别具特色间架平正疏密适中字体秀丽遒劲但笔画横细竖粗适合于刀刻不宜于手写现在宋体广泛用于印刷常来表现文档的正文

bull 仿宋体mdashmdash 1920年钱塘的丁辅之与丁善之等人将明代以后盛行的方廓形字体加以改造创造出长形和方形的聚珍仿宋后来演化为现在的仿宋体仿宋体比较接近于手写体为宋体和楷体的折中是采用的宋体的结构和楷体的笔法而成现常来表现打印文件以及文档的摘要和注释等

bull 黑体mdashmdash黑体是适应工艺美术的发展而出现的一种等线体是从日本引进的黑体的结构与宋体没有什么差别只是其笔画粗细一致健实粗壮主要用于文档的标题和重点及标语广告等方面

bull 楷体mdashmdash楷体源于楷书楷体的笔画圆浑笔调灵活结构端正美观但不宜于木板雕刻所以直到清末西洋的石板印刷术传入后才开始广泛用于印刷现代的楷体创造于 20世纪的二三十年代主要用于文档的正文(多用于中小学教材)也可用于工艺美术等方面

3字库bull 字库为一种文字的某一字体的所有字符的集合一般存放在一个磁盘文件中

bull 由于象形文字中单字的数量大(成千上万)而拼音文字中字母的数量小(不到一百个)所以字库的大小有很大的差别

bull 为了使文档界面丰富多彩常见的字处理软件都支持多种字体带有众多字库

4点阵字型的国家标准bull 我国已经公布了若干字体的点阵字型之国家标准

ndash GB 50071-19852001 信息技术 汉字编码字符集(基本集) 24 点阵字型

ndash GB 50072-19852001 信息技术 汉字编码字符集(辅助集) 24 点阵字型

ndash GB 5199-19862001 信息技术 汉字编码字符集(基本集) 16 点阵字型 宋体

ndash GB 6345-19862001 信息技术 汉字编码字符集(基本集) 32 点阵字型 宋体

ndash GB 12041-2001 信息技术 汉字编码字符集(基本集) 48点阵字型 宋体

ndash GB 17698-1999 信息技术 通用多八位编码字符集( I 区) 汉字 16 点阵字型

232 语音合成bull 文字的声音输出主要使用的是语音合成的技术bull 语音合成功能是ldquo文rarr语rdquo转换bull 文语转换 TTS (Text-To-Speech) 是将文本形式的信息转换成自然语音的一种技术其最终目标是使计算机输出清晰而又自然的声音

bull 英语的语音合成在上世纪 80年代就早已成熟而中文 汉语的合成现在也趋于成熟并有了广泛的应用(如汽车导航仪智能手机等)

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 22: 第一篇  媒体

标准化组织bull ANSI = American National Standards Institute 美

国国家标准协会bull ISO = International Organization for Standardization

国际标准化组织是由 153 个国家的国家标准协会联合组成的一个非政府国际组织总部(中央秘书处)设在瑞士的日内瓦负责制定适应商业和广泛社会需要的各种国际标准网址为 httpwwwisoorg

bull IEC = International Electrotechnical Commission 国际电工技术委员会是一个成立于 1906年 6月的国际标准化权威组织属于联合国的甲级咨询机构负责制定关于电工电子各方面的标准有 42 个会员国总部也设在瑞士的日内瓦网址为httpwwwiecch我国于 1958年 8月参加

2 EBCDIC

bull 西文的字符编码方案除了通用的 ASCII外还有 IBM公司于 1960年代初提出的 EBCDIC ( Extended Binary-Coded Decimal Interchange Code扩充的二进制编码的十进制交换码)

bull EBCDIC 现在仍然(仅)在 IBM 的 OS390 与 TPF 以及富士通 - 西门子的 BS2000OSD 等大型机的操作系统中使用

bull EBCDIC 是一种八位编码其字符的编码方案与ASCII 的完全不同

EBCDIC 字符集 0 1 2 3 4 5 6 7 8 9 A B C D E F

0 NUL DLE DS SP amp - 0

1 SOH DC1 SOS a j ~ A J 1

2 STX DC2 FS SYN b k s B K S 2

3 ETX TM c l t C L T 3

4 PF RES BYP PN d m u D M U 4

5 HT NL LF RS e n v E N V 5

6 LC BS ETB UC f o w F O W 6

7 DEL IL ESC EOT g p x G P X 7

8 GE CAN h q y H Q Y 8

9 RLF EM ` i r z I R Z 9

A SMM CC SM cent | |

B VT CU1 CU2 CU3 $

C FF IFS DC4 gt

D CR IGS ENQ NAK ( ) _ lsquo

E SO IRS ACK + lt =

F SI IUS BEL SUB | ldquo EO

3扩展 ASCII 显示字符bull ( 1 ) IBM PC

ndash IBM PC 的扩展 ASCII 显示字符由 IBM公司为其 PC 机制定可以由原始的 IBM PC 显示器在 DOS状态下显示

bull ( 2 ) Microsoft Windows ndash Microsoft Windows 的扩展 ASCII 显示字符由

微软公司为其Windows操作系统制定可以在Windows环境的西文状态下被显示

IBM PC 的扩展 ASCII 显示字符表

Microsoft Windows 的扩展 ASCII 显示字符表

222 中文编码bull 1 GB 1988 与 GB 2311

bull 2 GB 2312

bull 3汉字编码的辅助集bull 4 Big5

bull 5少数民族文字编码bull 6 GB 13000

bull 7 GBK 与 GB 18030

汉字编码bull 为了计算机处理汉字必须先对汉字进行编码由于汉

字数量大(《康熙字典》收字 47 035 个《汉语大字典》收字 54 678 个据统计在形成楷体后出现的汉字约有 9万个左右)显然不能像 ASCII那样用 7位或单字节来进行编码至少需要两个字节(最多可表示 6万5千多个字符)

bull 1980年我国制定了著名的 GB 2312-80双字节汉字编码标准(其中 GB 为ldquo国标rdquo这两个汉字的拼音首字母)收汉字 6 763 个

bull 1993年底又推出了等同于国际通用字符编码标准 ISOIEC 106461-1993 的国家标准 GB 130001-93 收汉字 20 902 个

bull 由于 GB 13000 与 GB 2312 的编码不兼容作为过渡2000年又公布了 GB 18030-2000 ( GBK )收汉字2万 7千个

1 GB 1988 与 GB 2311

bull 为了能够同时表示和处理汉字和英文实现中外文混排汉字编码必须兼容通用的 ASCII 编码因此1980年我国制定了与国际标准 ISO 6461972 (即ASCII )对应的国家标准 GB 1988-80《信息处理交换用的七位编码字符集》

bull 汉字成千上万不可能像 ASCII 一样只用单字节的七位来表示必须扩展到八位和多字节但是不能随意扩充而应该符合国际规范因此我国于 1980年又制定了与七位代码扩充到八位编码的国际标准 ISO 2022兼容的国家标准 GB 2311-80《信息处理交换用七位编码字符集的扩充办法》

GB 1988-80 ( ASCII )的代码结构图

行 0 1 2 3 4 5 6 7

0 SP

1 helliphellip

15

16

32个

控制符

94个

图形字符

DEL

GB 2311-80 的八位编码结构图列

行 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0 SP 100

1

helliphellip

14

15

C0

32个

控制符

GL

94或 96个

图形字符

DEL

C1

32个

控制符

GR

94或 96个

图形字符

1515

2 GB 2312

bull GB 2312-80《信息交换用汉字编码字符集 middot基本集》是我国制定的一个使用最广泛的汉字编码的强制性国家标准由原第四机械工业部的华北计算机研究所(后改名为电子工业部第十五研究所)起草1980年批准 1981年 5月 1日起实施

bull GB 2312-80 是在已有的国家标准 GB 1988-80(对应于 ISO 646 )和 GB 2311-80 (对应于 ISO 2022 )的基础上制定的采用与 ISO 2022兼容的GB 2311 之 7位到八位的代码扩充办法用双字节编码表示汉字与 ASCII兼容

收录的字符bull GB 2312 对应的是汉字的基本集共收汉字 6 763 个

可达到 9999 的使用频率因此除了极少数生僻的人名地名和古文外 GB 2312 中的汉字已经能基本满足平时的使用了

bull 除了汉字外 GB 2312 还收录了 682 个非汉字图形符号包括 202 个一般符号(含间隔符标点运算符和制表符) 60 个序号符 22 个数字符 52 个英文字母 169 个日文假名 48 个希腊字母 66 个俄文字母 26 个汉语拼音符号和 37 个汉语注音字母

bull 所以在 GB 2312-80 标准中共收录了( 6 763 汉字 + 682 非汉字图符 = ) 7 445 图形字符

两级汉字bull GB 2312 将其收录的六千多个汉字分成两个级别bull 一级汉字有 3 755 个都为使用频率高的常用汉

字为便于检索像字典那样将这些汉字按拼音字母顺序排列(同音字再按笔顺的横竖撇捺点折序排列)

bull 二级汉字有 3 008 个大部分较生僻不易掌握读音所以按部首顺序排列(同部首的字按笔画数排列同笔画数的字再按笔顺排列)

编码方案bull GB 2312 对所有图形字符(包括汉字和非汉字图符)都采用两个字节表示每个字节的低七位用于编码最高位全为 1 这样可以兼容 ASCII 编码(字节的最高位全为 0 )

bull 虽然在一个字节中最高位为 1 的符号位置有 128 个但从前面 GB 2311 的分析可知为了与 ASCII 的代码结构兼容保留了( 32 + 2 = ) 34 个控制符位置最后只有( 128 ndash 34 = ) 94 个符号位可供图形字符编码使用

bull 图形字符在代码表中的位置用区位码表示将码表分成94 个区对应于编码的第一个字节取值 0x21~0x7E 每个区又分成 94 个位对应于编码的第二个字节取值 0x21~0x7E (参见表 2-6 )

bull 例如ldquo中山大学rdquo的编码为中 (0xD6D0) 山 (0xC9BD) 大 (0xB4F3) 学 (0xD1A7)

GB 2312-80 字符集结构 20 21 22 helliphellip 7D 7E 7F

位号

区号

1 2 helliphellip 93 94

20

21~29 1~9 非汉字图符(682个)

2A~2F 10~15 空白区

30~57 16~55 一级汉字(3 755个)

58~77 56~87 二级汉字(3 008个)

78~7E 88~94 空白区

7F

第 1 区的部分非汉字图符

1区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 middot ˉ ˇ uml 々 mdash ~ hellip lsquo rsquo ldquo

17~32 rdquo 〔 〕 〈 〉 《 》 「 」 『 』 〖 〗 【 】 plusmn

33~48 times divide ∶ and or sum prod cup cap isin ∷ radic perp ∥ ang

49~64 ⊙ int ∮ equiv ≌ asymp ∽ prop ne ltu gtu le ge infin ∵ there4

65~80 deg prime Prime $ curren ¢ £ permil sect

81~94 rarr larr uarr darr

第 16 区的部分一级汉字

16区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 啊 阿 埃 挨 哎 唉 哀 皑 癌 蔼 矮 艾 碍 爱 隘 鞍

17~32 氨 安 俺 按 暗 岸 胺 案 肮 昂 盎 凹 敖 熬 翱 袄

33~48 傲 奥 懊 澳 芭 捌 扒 叭 吧 笆 八 疤 巴 拔 跋 靶

49~64 把 耙 坝 霸 罢 爸 白 柏 百 摆 佰 败 拜 稗 斑 班

65~80 搬 扳 般 颁 板 版 扮 拌 伴 瓣 半 办 绊 邦 帮 梆

81~94 榜 膀 绑 棒 磅 蚌 镑 傍 谤 苞 胞 包 褒 剥

第 56 区的部分二级汉字

56区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 亍 丌 兀 丐 廿 卅 丕 亘 丞 鬲 孬 噩 丨 禺 丿 匕

17~32 乇 夭 爻 卮 氐 囟 胤 馗 毓 睾 鼗 丶 亟 鼐 乜 乩

33~48 亓 芈 孛 啬 嘏 仄 厍 厝 厣 厥 厮 靥 赝 匚 叵 匦

49~64 匮 匾 赜 卦 卣 刂 刈 刎 刭 刳 刿 剀 剌 剞 剡 剜

65~80 蒯 剽 劂 劁 劐 劓 冂 罔 亻 仃 仉 仂 仨 仡 仫 仞

81~94 伛 仳 伢 佤 仵 伥 伧 伉 伫 佞 佧 攸 佚 佝

3汉字编码的辅助集bull 除了GB 2312基本集的 6 763 个简体汉字外国家标

准还给出了汉字编码字符集的多个辅助集bull 第二 四辅助集分别增加了 7 237 7 039 个简体汉字bull 第一和三 五辅助集则分别是与基本集和第二 四辅助集所对应的繁体汉字字符集的国家标准

bull 基本集加上辅助集共有 21 039 个简体汉字和 21 142个繁体汉字

bull 繁体汉字之所以多一些是因为在第一辅助集中有时几个繁体字对应一个简体字因此比基本集多出 103 个汉字

bull 基本集和辅助集的代码页之间靠其编码字节的最高位来区分

编码字符的分页标志

双字节汉字编码的页面结构第二字节 列号

行号 0 middot middot middot 32 33 34 helliphellip 125 126 127 128middot middot 160 161 162 helliphellip 254 255 0 middot middot 32

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

33 34 middot middot middot 126

1 2 middot middot middot 94

第四五辅助集 (7 039个汉字)

127

(兼容ASCII)

128 middot middot 160

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

161 162 middot middot middot 254

1 2 middot middot middot 94

第二三辅助集 (7 237个汉字)

1 2 middot middot middot 94

基本集第一辅助集 (6 763 6 866个汉字) (682个非汉字图符)

第一字节

255

4 Big5

bull 除了中国大陆使用的简体汉字外在台湾香港澳门和海外华侨社区使用的是传统的繁体汉字

bull 简体汉字使用 GB (国标)系列编码标准bull 繁体汉字一般使用的是 Big5内码(大五码)即台湾的ldquo资讯工业策进会rdquo发布的《标准交换码 (Ⅲ码 )》收录汉字 13 053 个

bull Big5内码是 1984年由台湾财团法人资讯工业策进会与宏碁 (Acer) 神通 (MiTAC) 佳佳零壹 (Zero One) 大众 (FIC) 等五大软件公司联合推出故称为大五码

BIG5 的代码空间低位字节

00 hellip 3F 40 hellip 7E 7F hellip A0 A1 hellip FE FF

高位字节

00middot

80

81middot

A0用户定义区 用户定义区

A1A2A3

非汉字图符 非汉字图符

A4middot

C6常用汉字 常用汉字

C7C8

用户定义区 用户定义区

C9middot

F9次常用汉字 次常用汉字

FAmiddot

FE用户定义区 用户定义区

FF

5少数民族文字编码bull 中国共有 56 个民族除了汉回满族一般使用汉语外其他少数民族大多有自己的民族语言

bull 我国各民族使用的 50 多种文字可以分为字母式结构文字和非字母式结构文字两大类ndash 字母式结构的有拉丁文斯拉夫文蒙古文维吾尔文哈萨克文藏文和朝鲜文等字母式

ndash 非字母式结构的有汉字象形文字图画文字和音节文字等bull 各民族文字的书写方向也有不同

ndash 壮文藏文朝鲜文彝文等的字从左到右行从上到下ndash 维吾尔文哈萨克文和柯尔克孜文等的字从右到左行从上

到下ndash 蒙古文和满文的字从上到下行从左到右ndash 汉字的书写方向有两种

bull 大陆的简体汉字的字从左到右行从上到下bull 港台与古旧书的繁体汉字的字从上到下行从右到左

国家标准bull 下面按发布时间列出若干已经公布的我国少数民族文字

编码集的国家标准(这些字符集一般分成两类对字母式结构文字采用八位编码对非字母式结构文字采用双字节编码)ndash GB 8045-87《信息处理交换用蒙古文七位和八位编码图形字

符集》收 82 个蒙古文字母和 12 个其他符号共 94 个字符ndash GB 12050-89《信息处理交换用维吾尔文编码图形字符集》收 32 个维吾尔文字母一个维吾尔文复合字符和 37 个其他符号共 70 个字符

ndash GB 12052-89《信息交换用朝鲜文编码字符集》收 5297 个朝鲜文字和 682 个其他符号(与 GB 2132同)共 5 979 个字符

ndash GB 13134-91《信息交换用彝文编码字符集》收 1165 个彝文字符和 688 个其他符号共 1853 个字符

ndash GB 16959-1997《信息技术 信息交换用藏文编码字符集 基本集》收 41 个藏文字母 36 个藏文主字 13 个元音字符12 个语音字符 10 个藏文数字 10 个半值符一个控制用连接符和 46 个其他藏文图形符号共 169 个字符

6 GB 13000bull GB 13000 是与 ISOIEC 10646 等价的国际通用编码字符集标准收汉字 2万多个但是与 GB 2312 和 GBK 不兼容

bull 1993年 5月 ISO 与 IEC 联合推出了可用于世界各种文字的通用编码字符集的国际标准的第 1部分ndash ISOIEC 10646-11993 Information technology -- Universal Multiple-Octe

t Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane (信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

ndash 该标准收字符 96万个几乎涵盖世界上的所有文字其中包含汉字 21 003 个

bull 1993年底我国推出了等同于国际标准 ISOIEC 1064611993 的强制性国家标准 ndash GB 130001-93《信息技术 通用多八位编码字符集( UCS ) 第一部分

体系结构与基本多文种平面》ndash 该标准于 1993年 12月 24日被国家技术监督局批准 1994年 8月 1日起实施

GB 13000 的主要特点

bull 世界各语言文种字符统一编码避免冲突便于国际交流

bull 编码空间宽阔连续每个图形字符的编码唯一(一字一码)不再存在兼容性问题

bull 按文种而不是按语言编码避免重复和浪费(如中日韩汉字的统一编码 CJK )

bull 与 GB 2312 和 GBK 不兼容

体系结构bull UCS 的体系结构是基于所谓ldquo多八位rdquo的而ldquo八位rdquo就是一个字节ldquo多八位rdquo就是多个字节

bull UCS采用 4 个字节来表征组面行位的四维空间bull 整个 UCS空间包含 128 个组( 0x00组 ~0x7F组)每组有 256 个平面( 0x00 平面 ~0xFF 平面)每个平面有 256 行每行又由 256 个字位构成

bull UCS共有( 128 times 256 = ) 32 768 个平面每个平面有( 256 times 256 = ) 65 536 个字位每个字位对应于一个字符的编码

bull 目前的编码只限于 00组已经定义的平面有 00组的00 平面mdashmdash称之为基本多文种平面 BMP ( Basic Multilingual Plane ) 及若干辅助平面

UCS 的全部编码空间

每个平面256times256 个

字位

00组 00 平面

00组 FF 平面

01组 00 平面

7F组 00 平面00

01组

7F组

UCS 的 00组

BMPbull BMP = Basic Multilingual Plane 基本多文种平面bull BMP 用作双八位编码字符集称之为 UCS-2 它被

分成四个区ndash A- 区(字位 0x0000~0x4DFF 有 19 903 个字位)用于

字母文字音节文字以及各种符号ndash I- 区(字位 0x4E00~0x9FFF 共 20 992 个字位)用于中日韩统一汉字( CJK )

ndash O- 区(字位 0xA000~0xDFFF 共 16 384 个字位)保留未来标准化用

ndash R- 区(字位 0xE000~0xFFFD 共 8 190 个字位)为 BMP 的限制使用区包括专用字符变形显现形式及兼容字符

BMP总貌

A-区

00~33 拼音文字(见下页)

34~3D 朝鲜文

3E~44 朝鲜文补充 -A

45~4D 朝鲜文补充 -B

I-区 4E~9F CJK统一汉字O-区 A0~DF

R-区

E0~F8 专用区

F9~FA CJK兼容汉字FB 拼音文字变形显现形式

FC~FD 阿拉伯文变形显现形式 -A

FE半形组合用标志

CJK兼容形式

小写变体

阿拉伯文变形显现形式 -B

FF 半形及全形字符 特殊字符

BMP 的0x00~0x33

行字母文字区

00 基本拉丁文 拉丁文-1补充

01 拉丁文扩充-A 拉丁文扩充-B

02 拉丁文扩充-B 国际音标扩充 进格修饰字符

03 组合用发音符 基本希腊文 希腊符号及哥普特文

04 西里尔文

05 美亚尼亚文 希伯来文(基本和扩充)

06 基本阿拉伯文 阿拉伯文扩充

07

08

09 梵文 孟加拉文

0A 锡克教文 古吉拉特文

0B 奥利雅文 泰米尔文

0C 泰卢固文 卡纳达文

0D 德拉维族文

0E 泰文 老挝文

0F

10 格鲁吉亚文

11 朝鲜文字母

12~1D

1E 拉丁文扩充增补

1F 希腊文扩充

20 广义标点 上下标 货币符号 符号组合用区分标志

21 类似字母的符号 数字形式 箭头

22 数学运算符

23 零杂技术用符号

24 控制图符 光学识别符 带括号的字母数字

25 制表符 方块元素 几何图形符

26 零杂符号

27 示意符等

28~2F

30 CJK符号和标点 平假名 片假名

31 注音 朝鲜文兼容字母 CJK零杂字符

32 带括号的CJK字母及月份

33 CJK兼容字符

留作将来标准化用

非图形字符

表示形式bull GB 13000提供了字符编码表示的两种替代使用的形式

ndash 双八位 BMP 形式( UCS-2 )mdashmdash允许使用 BMP 中的字符且每个字符用两个字节表示

ndash 肆八位正则形式( UCS-4 )mdashmdash允许使用 GB 13000 中的全部字符且每个字符用四个字节表示

bull 除了 UCS-24外还有另外两种变形的表示形式ndash UTF-8 (单字节 ~ 多字节)ndash UTF-16 (双字节和 4 字节与 UCS-2 等价)ndash 目前在工业上的实现均为 UTF-16 ( UCS-2 )和 UTF-8ndash UTF = Unicode UCS Transformation Format 统一码 UC

S转换格式bull 关于统一码我们会在下一小节详细介绍

7 GBK 与 GB 18030bull 由于 GB 13000 标准与 GB 2312 标准的字符编码不兼容作为过渡在国家信息技术标准化委员会的主持下制定了与 GB 2312兼容的《汉字内码扩展规范( GBK )》( K 为扩展的ldquo扩rdquo字的拼音首字母)并于 1995年 12月 15日由原国家技术监督局标准司联合原电子工业部科技与质量监督司作为指导性技术规范发布实施

bull 2000年 GBK又被国家标准 GB 18030-2000《信息技术 信息交换用汉字编码字符集 基本集的扩充》所代替该标准收汉字 2万 7千个

bull 与 GB 2312 一样 GB 18030 也为中国的强制性国家标准微软公司的 Windows XPVista78 中文版与苹果公司的 Mac OS X 和 iOS 谷歌公司的 Android (安卓)等操作系统已经全面支持 GBK

GB 18030 的码位范围分布

字节数 码位空间 码位数目

单字节 0x00~0x7F 128

双字节第 1字节 第 2字节

23 9400x81~0xFE

0x40~0x7E 0x80~0xFE

四字节第 1字节 第 2字节 第 3字节 第 4字节

1 587 6000x81~0xFE 0x30~0x39 0x81~0xFE 0x30~0x39

GB 18030的

总体结构图

收录字符bull 单字节部分mdashmdash收录了GBT 11383 的 0x00~0x7F 全部 128 个字符(似 ASCI

I )bull 双字节部分mdashmdash收录内容如下 (21 003 个汉字和 884 个符号共 21 887 个字符 )

ndash GB 130001-93 的全部 CJK 统一汉字字符 20 902 个( GB 2312 的编码汉字在双字节 2 区其他 CJK 统一汉字在双字节 34 区)

ndash GB 130001-93 的 CJK兼容区挑选出来的 21 个汉字ldquo郎凉秊helliphellip﨨﨩rdquo( 0xFD9C~0xFDA0 和 0xFE40~0xFE4F )

ndash GB 130001-93 中收录而 GB 2312未收录的台湾地区使用的图形字符 139 个ldquoˊˋ˙helliphelliprdquo( 0xA840~0xA895 和 0xA940~0XA988 )

ndash GB 130001-93收录的其他字符 31 ( 13)个(在双字节 5 区)ndash GB 2312-80 中的非汉字字符 682 个( 0xA1A1~0xA9EF )ndash GB 12345-90 的竖排标点符号 19 ( 29)个ldquo︵︶︹helliphellip︳︴rdquo( 0xA6D9~0xA6

F5 )ndash GB 2312-80未收录的 10 个小写罗马数字ldquoⅰⅱⅲhelliphellipⅸⅹrdquo( 0xA2A1~ 0xA2A

A )ndash GB 2312-80未收录的带音调的汉语拼音字母 5 ( 4)个ldquo ńňǹrdquo 以及 ɑ 和 ɡ ( 0

xA8BB~0xA8C0 )ndash 汉字数字零ldquo〇rdquo (0xA996) 和欧元符ldquoeurordquo (0xA2E3)ndash 表意文字描述符 13 个ldquohelliphelliprdquo( 0xA989~0xA995 )ndash 对 GB 130001-93增补的汉字和部首 构件 80 个ldquohelliphellip䶮rdquo( 0xFE50~ 0x

FEA0 )bull 四字节部分mdashmdash收录了上述双字节字符之外的包括 CJK 统一汉字扩充 A 在内

的 GB 130001-93 中的全部字符

GB 18030双字节部分的码位安排

类别 区名 码位范围 码位数 字符数 内容

符号区双字节 1区 A1A1~A9FE 846 718

GB 2312非汉字字符等

双字节 5区 A840~A9A0 192 166 台湾图符等

汉字区双字节 2区 B0A1~F7FE 6768 6763 GB 2312汉字双字节 3区 8140~A0FE 6080 6080 CJK统一汉字双字节 4区 AA40~FEA0 8160 8160 CJK统一汉字等

用户自定义区双字节用户区 1 AAA1~AFFE 564

用户自定义字符双字节用户区 2 F8A1~FEFE 658

双字节用户区 3 A140~A7A0 672

GB 18030双字节部分的编码空间结构图 尾字节

0x40larr――rarr0x7E 0x80larr――rarr0xA0 0xA1larr――――――――――――rarr0xFE

0x81 uarr darr

0xA0

0xA1 uarr darr

0xA7

0xA8 0xA9

首字节

0xAA uarr | | | | | | | | | | darr

0xFE

双字节 3区

汉字区6 080个码位

双字节用户区 3

用户自定义区672个码位

双字节 5区 图形符号区192个码位

双字节 4区

汉字区8 160个码位

双字节 1区

图形符号区564个码位

双字节 2区

汉字区6 768个码位

双字节用户区 1 用户自定义区564个码位

双字节用户区 2 用户自定义区658个码位

223 国际通用字符编码

bull Unicode (统一码)是由多语言软件制造商组成的统一码协会( httpwwwUnicodeorg)所制定一种国际字符的编码标准

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull 本节主要介绍这两种关系密切的主流国际字符编码标准的来历编码方案各自特点与相互关系

1 Unicode 统一码bull 发展历史

ndash 1987年施乐( Xerox )公司的 Joe Becker 与 Lee Collins 和苹果( Apple )公司的 Mark Davis 等人开始讨论统一编码 1987年 12月 Joe Becker造词 Unicode (统一码)含义为ldquo unique universal and uniform character encodingrdquo (单一通用统一的字符编码) 1989年 2月开始定期召开统一码会议 1989年 9月公布 Unicode草案

ndash 1991年 1月 3 日由 Xerox Apple Sun IBM Aldis Microsoft 等公司出资在美国加州成立了统一码协会( Unicode Consortium )并由协会设立非盈利性的统一码公司( Unicode Inc )后来 HP Adobe Borland Digital Lotus Novell 等公司也纷纷加入 1991年 1月成立统一码技术委员会 UTC 并制定了其规程

ndash 1991年 2月在 Ed Hart 的推动下进行了ldquo统一码对 10464 国际标准草案 1rdquo 的对话Unicode 与 ISOIEC 10646开始走向融合

ndash 1991年 8月发布 Unicode 标准 10版的第 1卷(体系结构非表意字符) 1992年6月发表 Unicode 10版的第 2卷(表意字符) 1993年 6月发布 Unicode 11版与 1993年 5月公布的 ISOIEC 10646-11993 实现了合并

ndash 1996年 7月发布 Unicode 20版ndash 1999年 9月发布 Unicode 30版ndash 2003年 4月发布 Unicode 40版(对应于 ISOIEC 106462003 ) 2004年 3月 31日发布 Unicode 401版 2005年 3月 31日发布 Unicode 410版

ndash 2006年 7月 14日发布 Unicode 50版 2008年 4月 4日发布 Unicode 51版 2009年 12月 22日发布 Unicode 52版

ndash 2010年 10月发布 Unicode 60版 2012年 1月发布 Unicode 61版(对应于 ISOIEC 106462012 ) 2012年 9月推出 Unicode 62版 2013年 9月推出 Unicode 63版

ndash 2014年 6月 16日发布 Unicode 70版 ndash 2015年 6月 17日发布 Unicode 80版

字符集bull Unicode 字符集的空间分成双字节的基本多语言平面 (Basic Multilingual Pla

ne BMP) 和 4 字节的辅助多语言平面 (Supplementary Multilingual Plane SMP) 两种

bull BMPndash Unicode 的基本平面或基本多语言平面 BMP 对应于 ISOIEC 10646-1 的第 00组的 00 平面( BMP )即 Unicode 与 ISOIEC 10646 的 BMP 中的字符编码完全一致

bull SMPndash 鉴于 Unicode 原有的 16位元空间不足以应用从 Unicode 31版本开始设立了 16 个辅助平面使 Unicode 的可使用空间由六万多字增至约一百万字

ndash 原有的 Unicode双字节空间称为基本平面或基本多语言平面 BMP 辅助多语言平面 SMP 字符要用 4 字节来储存

ndash 第一辅助平面摆放拼音文字(主要为现时已不再使用的文字)及符号范围在 U+10000 - U+1FFFD

ndash 第二辅助平面又称为表意文字补充平面 (Supplementary Ideographic Plane 简称 SIP) 现时摆放ldquo中日韩统汉字扩展 B 区rdquo共 43253 个汉字范围在 U+20000 - U+2FFFD

ndash 第三至十三辅助平面尚未使用ndash 第十四辅助平面又称为特殊用途补充平面 (Supplementary Special-purpose Pl

ane 简称 SSP) 摆放 Language tags 和 Variation Selectors 它们都是控制字符范围在 U+E0000 - U+E01FF

ndash 第十五至十六辅助平面都是私人使用区它们的范围是 U+F0000 - U+FFFFD 及 U+100000 - U+1000FD

bull Unicode 字符集的具体编码方式参加第 4小节ldquo 4 UTFrdquo

2 ISOIEC 10646

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull ISOIEC 10646 标准由 ISO 与 IEC 联合成立的 ISOIEC JTC1SC2WG2 制定ndash JTC 1 ( Joint Technical Committee 1 on Information

technology ISOIEC信息技术联合技术委员会 1 )负责信息技术方面标准的制定工作

ndash SC 2 ( SubCommittee 2 on Coded character sets 编码字符集分会 2 )下的 WG 2 ( Working Group 2 on Universal coded character set 通用编码字符集工作组 2 )负责制定国际通用字符编码标准即后来公布的 ISOIEC 10646

发展历史bull 1984年 ISO 的一些会员国发起制定新的国际字符编码标准同年 4月 ISO

与 IEC 联合成立 ISOIEC JTC1SC2WG2 1987年 3月制定出编码架构1992年 6月投票通过第二版国际标准草案

bull 1993年 5月推出 10646 标准时将内容分成两个部分标准首先发布的是其中的第 1 个部分(体系结构与基本多文种平面)的第 1版( Edition 1 ) ISOIEC 10646-11993 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane(信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

bull 2000年 3月推出 10646 标准第一个部分的第 2版( Edition 2 ) ISOIEC 10646-12000 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane

bull 2001年 10月推出 10646 标准第 2版的第二个部分(辅助平面)的第 1版( Edition 1 ) ISOIEC 10646-22001 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 2 Supplementary Planes

bull 2003年 10月推出的 10646新标准(第 1版 Edition 1 )将老标准中的两个部分标准合并成了一个单一的标准 ISOIEC 106462003 Information technology -- Universal Multiple- Octet Coded Character Set (UCS) 后来又于 2010年 2012年和 2014年分别推出了 ISOIEC 106462010 (第 2版)ISOIEC 106462012 (第 3版)和 ISOIEC 106462014 (第 4版)

UCS 通用字符集bull 通用字符集( Universal Character Set UCS )是

ISOIEC 10646 标准所定义的字符编码方式采用 4字节编码又称为 Universal Multiple-Octet Coded Character Set (通用多八位编码字符集)

bull 通用字符集是所有包括了其他字符集它保证了与其他字符集的双向兼容即如果你将任何文本字符串翻译到 UCS 格式然后再翻译回原编码你不会丢失任何信息

bull UCS 包含了已知语言的所有字符除了拉丁语希腊语斯拉夫语希伯来语阿拉伯语亚美尼亚语格鲁吉亚语还包括中文日文韩文这样的象形文字 UCS 还包括大量的图形印刷数学科学符号

名字与组合字符bull UCS 不仅给每个字符分配一个代码而且赋予了

一个正式的名字表示一个 UCS 或 Unicode值的十六进制数通常在前面加上ldquo U+rdquo 例如ldquo U+0041rdquo代表字符ldquo Ardquo

bull UCS里有些编码点分配给了组合字符组合字符机制允许在任何字符后加上重音符或其他指示标记 这在科学符号中特别有用 比如数学方程式和国际音标字母 可能会需要在一个基本字符后组合上一个或多个指示标记

实现级别bull 并不是所有的系统都需要支持像组合字符这样的的先进

机制因此 ISO 10646 指定了如下三种实现级别ndash 级别 1不支持组合字符和韩语 Hangul Jamo 字符 ( 一种特

别的 更加复杂的韩国文的编码 使用两个或三个子字符来编码一个韩文音节 )

ndash 级别 2类似于级别 1 但在某些文字中允许一列固定的组合字符 (例如 希伯来文 阿拉伯文 Devangari 孟加拉语 果鲁穆奇语 Gujarati Oriya 泰米尔语 Telugo 印 埃纳德语 Malayalam 泰国语和老挝语 ) 因为如果没有最起码的几个组合字符 UCS就不能完整地表达这些语言

ndash 级别 3支持所有的 UCS 字符如可以在任意一个字符上加上一个箭头或 和一个 tilde(颚化符号即字母上面的~ )

编码方式bull UCS 有如下两种编码方式

ndash UCS-2与 Unicode 的 2 字节编码基本一样ndash UCS-4 4 字节编码目前是在 UCS-2 前加

上 2 个全零的字节bull UCS 还有 UTF 编码方式参见下面第 4小节ldquo 4 UTFrdquo

3 Unicode 与 ISOIEC 10646bull 关系

ndash 历史上存在两个独立的尝试创立单一字符集的组织即国际标准化组织( ISO )和多语言软件制造商组成的统一码协会组织( Unicodeorg )前者开发的 ISO 10646项目后者开发的 Unicode项目因此最初制定了不同的标准

ndash 1991年前后两个项目的参与者都认识到世界不需要两个不兼容的字符集于是它们开始合并双方的工作成果并为创立一个单一编码表而协同工作

ndash 从 Unicode20开始 Unicode采用了与 ISO 10646-1相同的字库和字码 ISO 也承诺 ISO10646 将不会替超出 U+10FFFF 的 UCS-4 编码赋值以使得两者保持一致

ndash 两个项目仍都存在并独立地公布各自的标准但 Unicode协会和 ISOIEC JTC1SC2 都同意保持两者标准的码表兼容并紧密地共同调整任何未来的扩展

异同bull Unicode协会公布的 Unicode 标准包含了 ISO 10646-1 实现级别

3 的基本多文种平面在两个标准里所有的字符都在相同的位置并且有相同的名字

bull ISO 10646 标准就像 ISO 8859 标准一样只不过是一个简单的字符集表它定义了一些编码的别名指定了一些与标准有关的术语并包括了规范说明指定了怎样使用 UCS连接其他 ISO 标准的实现等

bull Unicode 标准额外定义了许多与字符有关的语义符号学并详细说明了绘制某些语言(如阿拉伯语)表达形式的算法处理双向文字(比如拉丁文和希伯来文的混合文字)的算法排序与字符串比较所需的算法等等

bull 考虑到 Unicode 标准有一个易记的名字既便宜又包括更多的辅助信息因而它使用得更广泛然而

bull 一般认为用于打印 ISO 10646-1 标准的字体在某些方面的质量要高于用于打印 Unicode 20 的专业字体设计者总是被建议说要两个标准都实现但一些提供的样例字形有显著的区别 ISO 10646-1 标准同样使用四种不同的风格变体来显示表意文字如中文日文和韩文 (CJK) 而 Unicode 20 的表里只有中文的变体

4 UTFbull Unicode 和 UCS 都是一个字符集可以看作为内码bull UTF ( UnicodeUCS Transformation Format 统一码

通用字符集转换格式)是一种编码方式它的出现是因为 Unicode 和 UCS 不适宜在某些场合直接传输和处理

bull UCS 和 Unicode 只是分配整数给字符的编码表现在存在好几种将一串字符表示为一串字节的方法(如高或低位字节在前)

bull 最显而易见的两种方法是将 UCS 和 Unicode 文本存储为 2 个 或 4 个字节序列的串这两种方法的正式名称分别为 UCS-2 和 UCS-4

bull 常用的 UTF具体编码方式有 UTF-8 UTF-16 和 UTF-32

UTF-8

bull UTF-8 是 UTF 的一种具体编码方式在 ISO 10646-1 的附录 R 和 IETF 的 RFC 2279 里定义

bull 由于要使文档中的文字与 ASCII兼容故 UTF-8 选择了使用可变长度字节来储存 Unicode 和 UCS 例如ndash ASCII 字母继续使用 1 字节储存ndash 重音文字希腊字母或西里尔字母等使用 2 字节来储存ndash 常用的汉字就要使用 3 字节ndash 辅助平面字符则使用 4 字节ndash 即 ASCII 不作变换其他字符做变长编码每个字符 1~4 字节

bull UTF-8 通常作为外码bull 在 UTF-8 文件的开首很多时都放置一个 U+FEFF 字符

(UTF-8 以 EF BB BF 代表 ) 以显示这个文字档案是以UTF-8 编码

UTF-8 的优点bull 与 CPU 字节顺序无关可以在不同平台之间交流

bull 容错能力高任何一个字节损坏后最多只会导致一个编码码位损失不会链锁错误 ( 如 GB 码错一个字节就会整行乱码 )

UTF-8 的缺点bull UTF-8 使用可变长度字节储存使计算机程序设计变得复杂 (故此在计算机程序或操作系统内部多采用 UCS-2 编码 )

bull 在旧式的中文日文及朝鲜文编码之中每字符都使用 2 字节储存而 UTF-8 须使用 3 字节 (采用 UTF-16 编码则可只使用 2字节储存 )

bull 泰语以往使用的 ISO 8859-11 每字符只使用 1 字节储存而 UTF-8 须使用 3 字节

UTF-8储存的多字节串字符bull U-00000000 - U-0000007F 0xxxxxxx bull U-00000080 - U-000007FF 110xxxxx 10xxxxxx

bull U-00000800 - U-0000FFFF 1110xxxx 10xxxxxx

10xxxxxx bull U-00010000 - U-001FFFFF 11110xxx 10xxxxx

x 10xxxxxx 10xxxxxx bull 在多字节串中第一个字节的开头ldquo 1rdquo 的数目就

是整个串中字节的数目bull 每个使用 UTF-8储存的字符除了第一个字节外其余字节的头两个位元都是以 10 开始使文字处理器能够较快地找出每个字符的开始位置

UTF-16bull UTF-16 是 UTF 的另一种具体编码方式在 ISO 1064

6-1 的附录 Q 和 IETF 的 RFC 2781 里定义bull UTF-16 是变长码( 2 或 4 字节)大致相当于 20位编码值在 0 到 0x10FFFF 之间基本上就是 Unicode 编码的实现 UTF-16 与 CPU 字序有关但因为最省空间常作为网络传输的外码 UTF-16 是 Unicode 的完美编码

bull lt0x10000 的直接用其对应的 16位整数编码位于 0x10000 ~ 0x10FFFF 之间的用 0xD800~0xDBFF 的 16位整数后跟 0xDC00~0xDFFF 的 16位整数的 4 字节编码 gt 0x10FFFF 的不能用 UTF-16 表示

bull 在 Unicode 的 BMP 中定义的字符(无论是拉丁字母汉字或其他文字或符号)一律使用 2 字节存储而在辅助平面定义的字符则以两个 2 字节的值来存储

UTF-16 的特点bull UTF-16比起 UTF-8 的好处在于大部分字符都以固定长

度的 2 字节存储但 UTF-16却无法相容于 ASCII 编码bull UTF-16 有两种编码模式即大尾序( big Endian 高位字节在前)和小尾序( little Endian 高位字节在后)储存形式(一般來說以 Macintosh 制作和存储的文字使用大尾序格式以 Microsoft 或 Linux 制作和存储的文字使用小尾序格式)

bull 为了弄区分 UTF-16 文件的大小尾序在 UTF-16 文件的开头都会放置一个 U+FEFF 字符作为字节顺序标记 (UTF-16LE 以 FF FE代表 UTF-16BE 以 FE FF代表 ) 以显示该文档是以 UTF-16 编码的

UTF-32

bull UTF-32 仅使用了 Unicode范围 (0 到 0x10FFFF) 的 32位编码相当于 UCS-4 的子集

bull 由于 Unicode 和 ISOIEC 10646 的编码和结构与前面讲过的 GB 13000 类似或等价这里就不再做详细的介绍

5支持bull 现在 UnicodeUCS 已经获得了十分广泛的支

持ndash网络与浏览器(如 HTML 4050 XML 与 IE

Safari Netscape Firefox Chrome Opera Edge 等)

ndash操作系统(如 Windows NT2000XPVista7810 Mac OS X iOS Android和 Linux )

ndash 编程语言新版本(如 CC++JavaObjective-CC Swift 等)

Unicode 代码的浏览器显示代码 字符标准名称 (英语 )

浏览器的显示

amp65 大写拉丁字母 A A

amp223 小写拉丁字母 Sharp S szlig

amp254 小写拉丁字母 Thorn thorn

amp916 大写希腊字母 Delta Δ

amp1049 大写斯拉夫字母 Short I Й

amp1511 希伯来字母 Qof ק

amp1605 阿拉伯字母 Meem م

amp3671 泰文数字 7 ๗amp4688 埃塞俄比亚音节文字 Qha ቐ

amp12354 日语平假名 A あamp12450 日语片假名 A アamp21494 简体汉字 叶 叶amp33865 繁体汉字 葉 葉amp50685 韩国音节文字 Yeob 엽

23 文字输出bull 文字输出是指将计算机内的字符编码通过计算机的输出设备(如显示器打印机喇叭)展现出所对应字符的图形或声音供人们阅读或聆听

bull 本节主要介绍文字图示输出的字形技术bull 文字声音输出属于语音合成只在本节的末尾作简单的介绍

231 字形技术bull 文字 = 图形bull 不论是象形文字中的单字还是拼音文字

中的字母都是用图形来表示的bull 在计算机里文字的表示 输出(显示和打

印)涉及ndash 字型ndash 字体ndash 字库

1字型bull 字型指构造和生成字形的方法一般可分为

ndash 点阵字 DOS 显卡 ROM 金山 科印特点似位图显示快占空间(字库大)放大后有马赛克效应

bull 显示字母 88 汉字 1616bull 打印 2424 4848 6464

ndash 矢量字单线条用于笔式绘图仪特点字库小算法简单难看

ndash 轮廓字用曲线描绘字的轮廓输出效果好所见即所得(WYSWYG) 可无级放大易实现空心 阴影 填充 变形等各种特效功能轮廓曲线一般采用样条曲线如 TrueType (Apple 1991 Mac OS Microsoft 1992 Windows 31)用的是二次 B 样条 Bezier曲线中文之星 RichWin采用的是三次 B 样条 Bezier曲线

字型种类

2字体bull 字体指字的形状风格如

ndash 汉字的

ndash 英文的

宋体楷体黑体仿宋

行楷隶书新魏幼圆

Times New Roman Arial Narrow Courier New

常用汉字字体bull 宋体mdashmdash宋体来自于北宋时雕版刻书所采用的欧体字(唐朝欧阳询体)宋体字的横顿拉捺挑钩别具特色间架平正疏密适中字体秀丽遒劲但笔画横细竖粗适合于刀刻不宜于手写现在宋体广泛用于印刷常来表现文档的正文

bull 仿宋体mdashmdash 1920年钱塘的丁辅之与丁善之等人将明代以后盛行的方廓形字体加以改造创造出长形和方形的聚珍仿宋后来演化为现在的仿宋体仿宋体比较接近于手写体为宋体和楷体的折中是采用的宋体的结构和楷体的笔法而成现常来表现打印文件以及文档的摘要和注释等

bull 黑体mdashmdash黑体是适应工艺美术的发展而出现的一种等线体是从日本引进的黑体的结构与宋体没有什么差别只是其笔画粗细一致健实粗壮主要用于文档的标题和重点及标语广告等方面

bull 楷体mdashmdash楷体源于楷书楷体的笔画圆浑笔调灵活结构端正美观但不宜于木板雕刻所以直到清末西洋的石板印刷术传入后才开始广泛用于印刷现代的楷体创造于 20世纪的二三十年代主要用于文档的正文(多用于中小学教材)也可用于工艺美术等方面

3字库bull 字库为一种文字的某一字体的所有字符的集合一般存放在一个磁盘文件中

bull 由于象形文字中单字的数量大(成千上万)而拼音文字中字母的数量小(不到一百个)所以字库的大小有很大的差别

bull 为了使文档界面丰富多彩常见的字处理软件都支持多种字体带有众多字库

4点阵字型的国家标准bull 我国已经公布了若干字体的点阵字型之国家标准

ndash GB 50071-19852001 信息技术 汉字编码字符集(基本集) 24 点阵字型

ndash GB 50072-19852001 信息技术 汉字编码字符集(辅助集) 24 点阵字型

ndash GB 5199-19862001 信息技术 汉字编码字符集(基本集) 16 点阵字型 宋体

ndash GB 6345-19862001 信息技术 汉字编码字符集(基本集) 32 点阵字型 宋体

ndash GB 12041-2001 信息技术 汉字编码字符集(基本集) 48点阵字型 宋体

ndash GB 17698-1999 信息技术 通用多八位编码字符集( I 区) 汉字 16 点阵字型

232 语音合成bull 文字的声音输出主要使用的是语音合成的技术bull 语音合成功能是ldquo文rarr语rdquo转换bull 文语转换 TTS (Text-To-Speech) 是将文本形式的信息转换成自然语音的一种技术其最终目标是使计算机输出清晰而又自然的声音

bull 英语的语音合成在上世纪 80年代就早已成熟而中文 汉语的合成现在也趋于成熟并有了广泛的应用(如汽车导航仪智能手机等)

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 23: 第一篇  媒体

2 EBCDIC

bull 西文的字符编码方案除了通用的 ASCII外还有 IBM公司于 1960年代初提出的 EBCDIC ( Extended Binary-Coded Decimal Interchange Code扩充的二进制编码的十进制交换码)

bull EBCDIC 现在仍然(仅)在 IBM 的 OS390 与 TPF 以及富士通 - 西门子的 BS2000OSD 等大型机的操作系统中使用

bull EBCDIC 是一种八位编码其字符的编码方案与ASCII 的完全不同

EBCDIC 字符集 0 1 2 3 4 5 6 7 8 9 A B C D E F

0 NUL DLE DS SP amp - 0

1 SOH DC1 SOS a j ~ A J 1

2 STX DC2 FS SYN b k s B K S 2

3 ETX TM c l t C L T 3

4 PF RES BYP PN d m u D M U 4

5 HT NL LF RS e n v E N V 5

6 LC BS ETB UC f o w F O W 6

7 DEL IL ESC EOT g p x G P X 7

8 GE CAN h q y H Q Y 8

9 RLF EM ` i r z I R Z 9

A SMM CC SM cent | |

B VT CU1 CU2 CU3 $

C FF IFS DC4 gt

D CR IGS ENQ NAK ( ) _ lsquo

E SO IRS ACK + lt =

F SI IUS BEL SUB | ldquo EO

3扩展 ASCII 显示字符bull ( 1 ) IBM PC

ndash IBM PC 的扩展 ASCII 显示字符由 IBM公司为其 PC 机制定可以由原始的 IBM PC 显示器在 DOS状态下显示

bull ( 2 ) Microsoft Windows ndash Microsoft Windows 的扩展 ASCII 显示字符由

微软公司为其Windows操作系统制定可以在Windows环境的西文状态下被显示

IBM PC 的扩展 ASCII 显示字符表

Microsoft Windows 的扩展 ASCII 显示字符表

222 中文编码bull 1 GB 1988 与 GB 2311

bull 2 GB 2312

bull 3汉字编码的辅助集bull 4 Big5

bull 5少数民族文字编码bull 6 GB 13000

bull 7 GBK 与 GB 18030

汉字编码bull 为了计算机处理汉字必须先对汉字进行编码由于汉

字数量大(《康熙字典》收字 47 035 个《汉语大字典》收字 54 678 个据统计在形成楷体后出现的汉字约有 9万个左右)显然不能像 ASCII那样用 7位或单字节来进行编码至少需要两个字节(最多可表示 6万5千多个字符)

bull 1980年我国制定了著名的 GB 2312-80双字节汉字编码标准(其中 GB 为ldquo国标rdquo这两个汉字的拼音首字母)收汉字 6 763 个

bull 1993年底又推出了等同于国际通用字符编码标准 ISOIEC 106461-1993 的国家标准 GB 130001-93 收汉字 20 902 个

bull 由于 GB 13000 与 GB 2312 的编码不兼容作为过渡2000年又公布了 GB 18030-2000 ( GBK )收汉字2万 7千个

1 GB 1988 与 GB 2311

bull 为了能够同时表示和处理汉字和英文实现中外文混排汉字编码必须兼容通用的 ASCII 编码因此1980年我国制定了与国际标准 ISO 6461972 (即ASCII )对应的国家标准 GB 1988-80《信息处理交换用的七位编码字符集》

bull 汉字成千上万不可能像 ASCII 一样只用单字节的七位来表示必须扩展到八位和多字节但是不能随意扩充而应该符合国际规范因此我国于 1980年又制定了与七位代码扩充到八位编码的国际标准 ISO 2022兼容的国家标准 GB 2311-80《信息处理交换用七位编码字符集的扩充办法》

GB 1988-80 ( ASCII )的代码结构图

行 0 1 2 3 4 5 6 7

0 SP

1 helliphellip

15

16

32个

控制符

94个

图形字符

DEL

GB 2311-80 的八位编码结构图列

行 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0 SP 100

1

helliphellip

14

15

C0

32个

控制符

GL

94或 96个

图形字符

DEL

C1

32个

控制符

GR

94或 96个

图形字符

1515

2 GB 2312

bull GB 2312-80《信息交换用汉字编码字符集 middot基本集》是我国制定的一个使用最广泛的汉字编码的强制性国家标准由原第四机械工业部的华北计算机研究所(后改名为电子工业部第十五研究所)起草1980年批准 1981年 5月 1日起实施

bull GB 2312-80 是在已有的国家标准 GB 1988-80(对应于 ISO 646 )和 GB 2311-80 (对应于 ISO 2022 )的基础上制定的采用与 ISO 2022兼容的GB 2311 之 7位到八位的代码扩充办法用双字节编码表示汉字与 ASCII兼容

收录的字符bull GB 2312 对应的是汉字的基本集共收汉字 6 763 个

可达到 9999 的使用频率因此除了极少数生僻的人名地名和古文外 GB 2312 中的汉字已经能基本满足平时的使用了

bull 除了汉字外 GB 2312 还收录了 682 个非汉字图形符号包括 202 个一般符号(含间隔符标点运算符和制表符) 60 个序号符 22 个数字符 52 个英文字母 169 个日文假名 48 个希腊字母 66 个俄文字母 26 个汉语拼音符号和 37 个汉语注音字母

bull 所以在 GB 2312-80 标准中共收录了( 6 763 汉字 + 682 非汉字图符 = ) 7 445 图形字符

两级汉字bull GB 2312 将其收录的六千多个汉字分成两个级别bull 一级汉字有 3 755 个都为使用频率高的常用汉

字为便于检索像字典那样将这些汉字按拼音字母顺序排列(同音字再按笔顺的横竖撇捺点折序排列)

bull 二级汉字有 3 008 个大部分较生僻不易掌握读音所以按部首顺序排列(同部首的字按笔画数排列同笔画数的字再按笔顺排列)

编码方案bull GB 2312 对所有图形字符(包括汉字和非汉字图符)都采用两个字节表示每个字节的低七位用于编码最高位全为 1 这样可以兼容 ASCII 编码(字节的最高位全为 0 )

bull 虽然在一个字节中最高位为 1 的符号位置有 128 个但从前面 GB 2311 的分析可知为了与 ASCII 的代码结构兼容保留了( 32 + 2 = ) 34 个控制符位置最后只有( 128 ndash 34 = ) 94 个符号位可供图形字符编码使用

bull 图形字符在代码表中的位置用区位码表示将码表分成94 个区对应于编码的第一个字节取值 0x21~0x7E 每个区又分成 94 个位对应于编码的第二个字节取值 0x21~0x7E (参见表 2-6 )

bull 例如ldquo中山大学rdquo的编码为中 (0xD6D0) 山 (0xC9BD) 大 (0xB4F3) 学 (0xD1A7)

GB 2312-80 字符集结构 20 21 22 helliphellip 7D 7E 7F

位号

区号

1 2 helliphellip 93 94

20

21~29 1~9 非汉字图符(682个)

2A~2F 10~15 空白区

30~57 16~55 一级汉字(3 755个)

58~77 56~87 二级汉字(3 008个)

78~7E 88~94 空白区

7F

第 1 区的部分非汉字图符

1区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 middot ˉ ˇ uml 々 mdash ~ hellip lsquo rsquo ldquo

17~32 rdquo 〔 〕 〈 〉 《 》 「 」 『 』 〖 〗 【 】 plusmn

33~48 times divide ∶ and or sum prod cup cap isin ∷ radic perp ∥ ang

49~64 ⊙ int ∮ equiv ≌ asymp ∽ prop ne ltu gtu le ge infin ∵ there4

65~80 deg prime Prime $ curren ¢ £ permil sect

81~94 rarr larr uarr darr

第 16 区的部分一级汉字

16区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 啊 阿 埃 挨 哎 唉 哀 皑 癌 蔼 矮 艾 碍 爱 隘 鞍

17~32 氨 安 俺 按 暗 岸 胺 案 肮 昂 盎 凹 敖 熬 翱 袄

33~48 傲 奥 懊 澳 芭 捌 扒 叭 吧 笆 八 疤 巴 拔 跋 靶

49~64 把 耙 坝 霸 罢 爸 白 柏 百 摆 佰 败 拜 稗 斑 班

65~80 搬 扳 般 颁 板 版 扮 拌 伴 瓣 半 办 绊 邦 帮 梆

81~94 榜 膀 绑 棒 磅 蚌 镑 傍 谤 苞 胞 包 褒 剥

第 56 区的部分二级汉字

56区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 亍 丌 兀 丐 廿 卅 丕 亘 丞 鬲 孬 噩 丨 禺 丿 匕

17~32 乇 夭 爻 卮 氐 囟 胤 馗 毓 睾 鼗 丶 亟 鼐 乜 乩

33~48 亓 芈 孛 啬 嘏 仄 厍 厝 厣 厥 厮 靥 赝 匚 叵 匦

49~64 匮 匾 赜 卦 卣 刂 刈 刎 刭 刳 刿 剀 剌 剞 剡 剜

65~80 蒯 剽 劂 劁 劐 劓 冂 罔 亻 仃 仉 仂 仨 仡 仫 仞

81~94 伛 仳 伢 佤 仵 伥 伧 伉 伫 佞 佧 攸 佚 佝

3汉字编码的辅助集bull 除了GB 2312基本集的 6 763 个简体汉字外国家标

准还给出了汉字编码字符集的多个辅助集bull 第二 四辅助集分别增加了 7 237 7 039 个简体汉字bull 第一和三 五辅助集则分别是与基本集和第二 四辅助集所对应的繁体汉字字符集的国家标准

bull 基本集加上辅助集共有 21 039 个简体汉字和 21 142个繁体汉字

bull 繁体汉字之所以多一些是因为在第一辅助集中有时几个繁体字对应一个简体字因此比基本集多出 103 个汉字

bull 基本集和辅助集的代码页之间靠其编码字节的最高位来区分

编码字符的分页标志

双字节汉字编码的页面结构第二字节 列号

行号 0 middot middot middot 32 33 34 helliphellip 125 126 127 128middot middot 160 161 162 helliphellip 254 255 0 middot middot 32

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

33 34 middot middot middot 126

1 2 middot middot middot 94

第四五辅助集 (7 039个汉字)

127

(兼容ASCII)

128 middot middot 160

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

161 162 middot middot middot 254

1 2 middot middot middot 94

第二三辅助集 (7 237个汉字)

1 2 middot middot middot 94

基本集第一辅助集 (6 763 6 866个汉字) (682个非汉字图符)

第一字节

255

4 Big5

bull 除了中国大陆使用的简体汉字外在台湾香港澳门和海外华侨社区使用的是传统的繁体汉字

bull 简体汉字使用 GB (国标)系列编码标准bull 繁体汉字一般使用的是 Big5内码(大五码)即台湾的ldquo资讯工业策进会rdquo发布的《标准交换码 (Ⅲ码 )》收录汉字 13 053 个

bull Big5内码是 1984年由台湾财团法人资讯工业策进会与宏碁 (Acer) 神通 (MiTAC) 佳佳零壹 (Zero One) 大众 (FIC) 等五大软件公司联合推出故称为大五码

BIG5 的代码空间低位字节

00 hellip 3F 40 hellip 7E 7F hellip A0 A1 hellip FE FF

高位字节

00middot

80

81middot

A0用户定义区 用户定义区

A1A2A3

非汉字图符 非汉字图符

A4middot

C6常用汉字 常用汉字

C7C8

用户定义区 用户定义区

C9middot

F9次常用汉字 次常用汉字

FAmiddot

FE用户定义区 用户定义区

FF

5少数民族文字编码bull 中国共有 56 个民族除了汉回满族一般使用汉语外其他少数民族大多有自己的民族语言

bull 我国各民族使用的 50 多种文字可以分为字母式结构文字和非字母式结构文字两大类ndash 字母式结构的有拉丁文斯拉夫文蒙古文维吾尔文哈萨克文藏文和朝鲜文等字母式

ndash 非字母式结构的有汉字象形文字图画文字和音节文字等bull 各民族文字的书写方向也有不同

ndash 壮文藏文朝鲜文彝文等的字从左到右行从上到下ndash 维吾尔文哈萨克文和柯尔克孜文等的字从右到左行从上

到下ndash 蒙古文和满文的字从上到下行从左到右ndash 汉字的书写方向有两种

bull 大陆的简体汉字的字从左到右行从上到下bull 港台与古旧书的繁体汉字的字从上到下行从右到左

国家标准bull 下面按发布时间列出若干已经公布的我国少数民族文字

编码集的国家标准(这些字符集一般分成两类对字母式结构文字采用八位编码对非字母式结构文字采用双字节编码)ndash GB 8045-87《信息处理交换用蒙古文七位和八位编码图形字

符集》收 82 个蒙古文字母和 12 个其他符号共 94 个字符ndash GB 12050-89《信息处理交换用维吾尔文编码图形字符集》收 32 个维吾尔文字母一个维吾尔文复合字符和 37 个其他符号共 70 个字符

ndash GB 12052-89《信息交换用朝鲜文编码字符集》收 5297 个朝鲜文字和 682 个其他符号(与 GB 2132同)共 5 979 个字符

ndash GB 13134-91《信息交换用彝文编码字符集》收 1165 个彝文字符和 688 个其他符号共 1853 个字符

ndash GB 16959-1997《信息技术 信息交换用藏文编码字符集 基本集》收 41 个藏文字母 36 个藏文主字 13 个元音字符12 个语音字符 10 个藏文数字 10 个半值符一个控制用连接符和 46 个其他藏文图形符号共 169 个字符

6 GB 13000bull GB 13000 是与 ISOIEC 10646 等价的国际通用编码字符集标准收汉字 2万多个但是与 GB 2312 和 GBK 不兼容

bull 1993年 5月 ISO 与 IEC 联合推出了可用于世界各种文字的通用编码字符集的国际标准的第 1部分ndash ISOIEC 10646-11993 Information technology -- Universal Multiple-Octe

t Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane (信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

ndash 该标准收字符 96万个几乎涵盖世界上的所有文字其中包含汉字 21 003 个

bull 1993年底我国推出了等同于国际标准 ISOIEC 1064611993 的强制性国家标准 ndash GB 130001-93《信息技术 通用多八位编码字符集( UCS ) 第一部分

体系结构与基本多文种平面》ndash 该标准于 1993年 12月 24日被国家技术监督局批准 1994年 8月 1日起实施

GB 13000 的主要特点

bull 世界各语言文种字符统一编码避免冲突便于国际交流

bull 编码空间宽阔连续每个图形字符的编码唯一(一字一码)不再存在兼容性问题

bull 按文种而不是按语言编码避免重复和浪费(如中日韩汉字的统一编码 CJK )

bull 与 GB 2312 和 GBK 不兼容

体系结构bull UCS 的体系结构是基于所谓ldquo多八位rdquo的而ldquo八位rdquo就是一个字节ldquo多八位rdquo就是多个字节

bull UCS采用 4 个字节来表征组面行位的四维空间bull 整个 UCS空间包含 128 个组( 0x00组 ~0x7F组)每组有 256 个平面( 0x00 平面 ~0xFF 平面)每个平面有 256 行每行又由 256 个字位构成

bull UCS共有( 128 times 256 = ) 32 768 个平面每个平面有( 256 times 256 = ) 65 536 个字位每个字位对应于一个字符的编码

bull 目前的编码只限于 00组已经定义的平面有 00组的00 平面mdashmdash称之为基本多文种平面 BMP ( Basic Multilingual Plane ) 及若干辅助平面

UCS 的全部编码空间

每个平面256times256 个

字位

00组 00 平面

00组 FF 平面

01组 00 平面

7F组 00 平面00

01组

7F组

UCS 的 00组

BMPbull BMP = Basic Multilingual Plane 基本多文种平面bull BMP 用作双八位编码字符集称之为 UCS-2 它被

分成四个区ndash A- 区(字位 0x0000~0x4DFF 有 19 903 个字位)用于

字母文字音节文字以及各种符号ndash I- 区(字位 0x4E00~0x9FFF 共 20 992 个字位)用于中日韩统一汉字( CJK )

ndash O- 区(字位 0xA000~0xDFFF 共 16 384 个字位)保留未来标准化用

ndash R- 区(字位 0xE000~0xFFFD 共 8 190 个字位)为 BMP 的限制使用区包括专用字符变形显现形式及兼容字符

BMP总貌

A-区

00~33 拼音文字(见下页)

34~3D 朝鲜文

3E~44 朝鲜文补充 -A

45~4D 朝鲜文补充 -B

I-区 4E~9F CJK统一汉字O-区 A0~DF

R-区

E0~F8 专用区

F9~FA CJK兼容汉字FB 拼音文字变形显现形式

FC~FD 阿拉伯文变形显现形式 -A

FE半形组合用标志

CJK兼容形式

小写变体

阿拉伯文变形显现形式 -B

FF 半形及全形字符 特殊字符

BMP 的0x00~0x33

行字母文字区

00 基本拉丁文 拉丁文-1补充

01 拉丁文扩充-A 拉丁文扩充-B

02 拉丁文扩充-B 国际音标扩充 进格修饰字符

03 组合用发音符 基本希腊文 希腊符号及哥普特文

04 西里尔文

05 美亚尼亚文 希伯来文(基本和扩充)

06 基本阿拉伯文 阿拉伯文扩充

07

08

09 梵文 孟加拉文

0A 锡克教文 古吉拉特文

0B 奥利雅文 泰米尔文

0C 泰卢固文 卡纳达文

0D 德拉维族文

0E 泰文 老挝文

0F

10 格鲁吉亚文

11 朝鲜文字母

12~1D

1E 拉丁文扩充增补

1F 希腊文扩充

20 广义标点 上下标 货币符号 符号组合用区分标志

21 类似字母的符号 数字形式 箭头

22 数学运算符

23 零杂技术用符号

24 控制图符 光学识别符 带括号的字母数字

25 制表符 方块元素 几何图形符

26 零杂符号

27 示意符等

28~2F

30 CJK符号和标点 平假名 片假名

31 注音 朝鲜文兼容字母 CJK零杂字符

32 带括号的CJK字母及月份

33 CJK兼容字符

留作将来标准化用

非图形字符

表示形式bull GB 13000提供了字符编码表示的两种替代使用的形式

ndash 双八位 BMP 形式( UCS-2 )mdashmdash允许使用 BMP 中的字符且每个字符用两个字节表示

ndash 肆八位正则形式( UCS-4 )mdashmdash允许使用 GB 13000 中的全部字符且每个字符用四个字节表示

bull 除了 UCS-24外还有另外两种变形的表示形式ndash UTF-8 (单字节 ~ 多字节)ndash UTF-16 (双字节和 4 字节与 UCS-2 等价)ndash 目前在工业上的实现均为 UTF-16 ( UCS-2 )和 UTF-8ndash UTF = Unicode UCS Transformation Format 统一码 UC

S转换格式bull 关于统一码我们会在下一小节详细介绍

7 GBK 与 GB 18030bull 由于 GB 13000 标准与 GB 2312 标准的字符编码不兼容作为过渡在国家信息技术标准化委员会的主持下制定了与 GB 2312兼容的《汉字内码扩展规范( GBK )》( K 为扩展的ldquo扩rdquo字的拼音首字母)并于 1995年 12月 15日由原国家技术监督局标准司联合原电子工业部科技与质量监督司作为指导性技术规范发布实施

bull 2000年 GBK又被国家标准 GB 18030-2000《信息技术 信息交换用汉字编码字符集 基本集的扩充》所代替该标准收汉字 2万 7千个

bull 与 GB 2312 一样 GB 18030 也为中国的强制性国家标准微软公司的 Windows XPVista78 中文版与苹果公司的 Mac OS X 和 iOS 谷歌公司的 Android (安卓)等操作系统已经全面支持 GBK

GB 18030 的码位范围分布

字节数 码位空间 码位数目

单字节 0x00~0x7F 128

双字节第 1字节 第 2字节

23 9400x81~0xFE

0x40~0x7E 0x80~0xFE

四字节第 1字节 第 2字节 第 3字节 第 4字节

1 587 6000x81~0xFE 0x30~0x39 0x81~0xFE 0x30~0x39

GB 18030的

总体结构图

收录字符bull 单字节部分mdashmdash收录了GBT 11383 的 0x00~0x7F 全部 128 个字符(似 ASCI

I )bull 双字节部分mdashmdash收录内容如下 (21 003 个汉字和 884 个符号共 21 887 个字符 )

ndash GB 130001-93 的全部 CJK 统一汉字字符 20 902 个( GB 2312 的编码汉字在双字节 2 区其他 CJK 统一汉字在双字节 34 区)

ndash GB 130001-93 的 CJK兼容区挑选出来的 21 个汉字ldquo郎凉秊helliphellip﨨﨩rdquo( 0xFD9C~0xFDA0 和 0xFE40~0xFE4F )

ndash GB 130001-93 中收录而 GB 2312未收录的台湾地区使用的图形字符 139 个ldquoˊˋ˙helliphelliprdquo( 0xA840~0xA895 和 0xA940~0XA988 )

ndash GB 130001-93收录的其他字符 31 ( 13)个(在双字节 5 区)ndash GB 2312-80 中的非汉字字符 682 个( 0xA1A1~0xA9EF )ndash GB 12345-90 的竖排标点符号 19 ( 29)个ldquo︵︶︹helliphellip︳︴rdquo( 0xA6D9~0xA6

F5 )ndash GB 2312-80未收录的 10 个小写罗马数字ldquoⅰⅱⅲhelliphellipⅸⅹrdquo( 0xA2A1~ 0xA2A

A )ndash GB 2312-80未收录的带音调的汉语拼音字母 5 ( 4)个ldquo ńňǹrdquo 以及 ɑ 和 ɡ ( 0

xA8BB~0xA8C0 )ndash 汉字数字零ldquo〇rdquo (0xA996) 和欧元符ldquoeurordquo (0xA2E3)ndash 表意文字描述符 13 个ldquohelliphelliprdquo( 0xA989~0xA995 )ndash 对 GB 130001-93增补的汉字和部首 构件 80 个ldquohelliphellip䶮rdquo( 0xFE50~ 0x

FEA0 )bull 四字节部分mdashmdash收录了上述双字节字符之外的包括 CJK 统一汉字扩充 A 在内

的 GB 130001-93 中的全部字符

GB 18030双字节部分的码位安排

类别 区名 码位范围 码位数 字符数 内容

符号区双字节 1区 A1A1~A9FE 846 718

GB 2312非汉字字符等

双字节 5区 A840~A9A0 192 166 台湾图符等

汉字区双字节 2区 B0A1~F7FE 6768 6763 GB 2312汉字双字节 3区 8140~A0FE 6080 6080 CJK统一汉字双字节 4区 AA40~FEA0 8160 8160 CJK统一汉字等

用户自定义区双字节用户区 1 AAA1~AFFE 564

用户自定义字符双字节用户区 2 F8A1~FEFE 658

双字节用户区 3 A140~A7A0 672

GB 18030双字节部分的编码空间结构图 尾字节

0x40larr――rarr0x7E 0x80larr――rarr0xA0 0xA1larr――――――――――――rarr0xFE

0x81 uarr darr

0xA0

0xA1 uarr darr

0xA7

0xA8 0xA9

首字节

0xAA uarr | | | | | | | | | | darr

0xFE

双字节 3区

汉字区6 080个码位

双字节用户区 3

用户自定义区672个码位

双字节 5区 图形符号区192个码位

双字节 4区

汉字区8 160个码位

双字节 1区

图形符号区564个码位

双字节 2区

汉字区6 768个码位

双字节用户区 1 用户自定义区564个码位

双字节用户区 2 用户自定义区658个码位

223 国际通用字符编码

bull Unicode (统一码)是由多语言软件制造商组成的统一码协会( httpwwwUnicodeorg)所制定一种国际字符的编码标准

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull 本节主要介绍这两种关系密切的主流国际字符编码标准的来历编码方案各自特点与相互关系

1 Unicode 统一码bull 发展历史

ndash 1987年施乐( Xerox )公司的 Joe Becker 与 Lee Collins 和苹果( Apple )公司的 Mark Davis 等人开始讨论统一编码 1987年 12月 Joe Becker造词 Unicode (统一码)含义为ldquo unique universal and uniform character encodingrdquo (单一通用统一的字符编码) 1989年 2月开始定期召开统一码会议 1989年 9月公布 Unicode草案

ndash 1991年 1月 3 日由 Xerox Apple Sun IBM Aldis Microsoft 等公司出资在美国加州成立了统一码协会( Unicode Consortium )并由协会设立非盈利性的统一码公司( Unicode Inc )后来 HP Adobe Borland Digital Lotus Novell 等公司也纷纷加入 1991年 1月成立统一码技术委员会 UTC 并制定了其规程

ndash 1991年 2月在 Ed Hart 的推动下进行了ldquo统一码对 10464 国际标准草案 1rdquo 的对话Unicode 与 ISOIEC 10646开始走向融合

ndash 1991年 8月发布 Unicode 标准 10版的第 1卷(体系结构非表意字符) 1992年6月发表 Unicode 10版的第 2卷(表意字符) 1993年 6月发布 Unicode 11版与 1993年 5月公布的 ISOIEC 10646-11993 实现了合并

ndash 1996年 7月发布 Unicode 20版ndash 1999年 9月发布 Unicode 30版ndash 2003年 4月发布 Unicode 40版(对应于 ISOIEC 106462003 ) 2004年 3月 31日发布 Unicode 401版 2005年 3月 31日发布 Unicode 410版

ndash 2006年 7月 14日发布 Unicode 50版 2008年 4月 4日发布 Unicode 51版 2009年 12月 22日发布 Unicode 52版

ndash 2010年 10月发布 Unicode 60版 2012年 1月发布 Unicode 61版(对应于 ISOIEC 106462012 ) 2012年 9月推出 Unicode 62版 2013年 9月推出 Unicode 63版

ndash 2014年 6月 16日发布 Unicode 70版 ndash 2015年 6月 17日发布 Unicode 80版

字符集bull Unicode 字符集的空间分成双字节的基本多语言平面 (Basic Multilingual Pla

ne BMP) 和 4 字节的辅助多语言平面 (Supplementary Multilingual Plane SMP) 两种

bull BMPndash Unicode 的基本平面或基本多语言平面 BMP 对应于 ISOIEC 10646-1 的第 00组的 00 平面( BMP )即 Unicode 与 ISOIEC 10646 的 BMP 中的字符编码完全一致

bull SMPndash 鉴于 Unicode 原有的 16位元空间不足以应用从 Unicode 31版本开始设立了 16 个辅助平面使 Unicode 的可使用空间由六万多字增至约一百万字

ndash 原有的 Unicode双字节空间称为基本平面或基本多语言平面 BMP 辅助多语言平面 SMP 字符要用 4 字节来储存

ndash 第一辅助平面摆放拼音文字(主要为现时已不再使用的文字)及符号范围在 U+10000 - U+1FFFD

ndash 第二辅助平面又称为表意文字补充平面 (Supplementary Ideographic Plane 简称 SIP) 现时摆放ldquo中日韩统汉字扩展 B 区rdquo共 43253 个汉字范围在 U+20000 - U+2FFFD

ndash 第三至十三辅助平面尚未使用ndash 第十四辅助平面又称为特殊用途补充平面 (Supplementary Special-purpose Pl

ane 简称 SSP) 摆放 Language tags 和 Variation Selectors 它们都是控制字符范围在 U+E0000 - U+E01FF

ndash 第十五至十六辅助平面都是私人使用区它们的范围是 U+F0000 - U+FFFFD 及 U+100000 - U+1000FD

bull Unicode 字符集的具体编码方式参加第 4小节ldquo 4 UTFrdquo

2 ISOIEC 10646

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull ISOIEC 10646 标准由 ISO 与 IEC 联合成立的 ISOIEC JTC1SC2WG2 制定ndash JTC 1 ( Joint Technical Committee 1 on Information

technology ISOIEC信息技术联合技术委员会 1 )负责信息技术方面标准的制定工作

ndash SC 2 ( SubCommittee 2 on Coded character sets 编码字符集分会 2 )下的 WG 2 ( Working Group 2 on Universal coded character set 通用编码字符集工作组 2 )负责制定国际通用字符编码标准即后来公布的 ISOIEC 10646

发展历史bull 1984年 ISO 的一些会员国发起制定新的国际字符编码标准同年 4月 ISO

与 IEC 联合成立 ISOIEC JTC1SC2WG2 1987年 3月制定出编码架构1992年 6月投票通过第二版国际标准草案

bull 1993年 5月推出 10646 标准时将内容分成两个部分标准首先发布的是其中的第 1 个部分(体系结构与基本多文种平面)的第 1版( Edition 1 ) ISOIEC 10646-11993 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane(信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

bull 2000年 3月推出 10646 标准第一个部分的第 2版( Edition 2 ) ISOIEC 10646-12000 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane

bull 2001年 10月推出 10646 标准第 2版的第二个部分(辅助平面)的第 1版( Edition 1 ) ISOIEC 10646-22001 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 2 Supplementary Planes

bull 2003年 10月推出的 10646新标准(第 1版 Edition 1 )将老标准中的两个部分标准合并成了一个单一的标准 ISOIEC 106462003 Information technology -- Universal Multiple- Octet Coded Character Set (UCS) 后来又于 2010年 2012年和 2014年分别推出了 ISOIEC 106462010 (第 2版)ISOIEC 106462012 (第 3版)和 ISOIEC 106462014 (第 4版)

UCS 通用字符集bull 通用字符集( Universal Character Set UCS )是

ISOIEC 10646 标准所定义的字符编码方式采用 4字节编码又称为 Universal Multiple-Octet Coded Character Set (通用多八位编码字符集)

bull 通用字符集是所有包括了其他字符集它保证了与其他字符集的双向兼容即如果你将任何文本字符串翻译到 UCS 格式然后再翻译回原编码你不会丢失任何信息

bull UCS 包含了已知语言的所有字符除了拉丁语希腊语斯拉夫语希伯来语阿拉伯语亚美尼亚语格鲁吉亚语还包括中文日文韩文这样的象形文字 UCS 还包括大量的图形印刷数学科学符号

名字与组合字符bull UCS 不仅给每个字符分配一个代码而且赋予了

一个正式的名字表示一个 UCS 或 Unicode值的十六进制数通常在前面加上ldquo U+rdquo 例如ldquo U+0041rdquo代表字符ldquo Ardquo

bull UCS里有些编码点分配给了组合字符组合字符机制允许在任何字符后加上重音符或其他指示标记 这在科学符号中特别有用 比如数学方程式和国际音标字母 可能会需要在一个基本字符后组合上一个或多个指示标记

实现级别bull 并不是所有的系统都需要支持像组合字符这样的的先进

机制因此 ISO 10646 指定了如下三种实现级别ndash 级别 1不支持组合字符和韩语 Hangul Jamo 字符 ( 一种特

别的 更加复杂的韩国文的编码 使用两个或三个子字符来编码一个韩文音节 )

ndash 级别 2类似于级别 1 但在某些文字中允许一列固定的组合字符 (例如 希伯来文 阿拉伯文 Devangari 孟加拉语 果鲁穆奇语 Gujarati Oriya 泰米尔语 Telugo 印 埃纳德语 Malayalam 泰国语和老挝语 ) 因为如果没有最起码的几个组合字符 UCS就不能完整地表达这些语言

ndash 级别 3支持所有的 UCS 字符如可以在任意一个字符上加上一个箭头或 和一个 tilde(颚化符号即字母上面的~ )

编码方式bull UCS 有如下两种编码方式

ndash UCS-2与 Unicode 的 2 字节编码基本一样ndash UCS-4 4 字节编码目前是在 UCS-2 前加

上 2 个全零的字节bull UCS 还有 UTF 编码方式参见下面第 4小节ldquo 4 UTFrdquo

3 Unicode 与 ISOIEC 10646bull 关系

ndash 历史上存在两个独立的尝试创立单一字符集的组织即国际标准化组织( ISO )和多语言软件制造商组成的统一码协会组织( Unicodeorg )前者开发的 ISO 10646项目后者开发的 Unicode项目因此最初制定了不同的标准

ndash 1991年前后两个项目的参与者都认识到世界不需要两个不兼容的字符集于是它们开始合并双方的工作成果并为创立一个单一编码表而协同工作

ndash 从 Unicode20开始 Unicode采用了与 ISO 10646-1相同的字库和字码 ISO 也承诺 ISO10646 将不会替超出 U+10FFFF 的 UCS-4 编码赋值以使得两者保持一致

ndash 两个项目仍都存在并独立地公布各自的标准但 Unicode协会和 ISOIEC JTC1SC2 都同意保持两者标准的码表兼容并紧密地共同调整任何未来的扩展

异同bull Unicode协会公布的 Unicode 标准包含了 ISO 10646-1 实现级别

3 的基本多文种平面在两个标准里所有的字符都在相同的位置并且有相同的名字

bull ISO 10646 标准就像 ISO 8859 标准一样只不过是一个简单的字符集表它定义了一些编码的别名指定了一些与标准有关的术语并包括了规范说明指定了怎样使用 UCS连接其他 ISO 标准的实现等

bull Unicode 标准额外定义了许多与字符有关的语义符号学并详细说明了绘制某些语言(如阿拉伯语)表达形式的算法处理双向文字(比如拉丁文和希伯来文的混合文字)的算法排序与字符串比较所需的算法等等

bull 考虑到 Unicode 标准有一个易记的名字既便宜又包括更多的辅助信息因而它使用得更广泛然而

bull 一般认为用于打印 ISO 10646-1 标准的字体在某些方面的质量要高于用于打印 Unicode 20 的专业字体设计者总是被建议说要两个标准都实现但一些提供的样例字形有显著的区别 ISO 10646-1 标准同样使用四种不同的风格变体来显示表意文字如中文日文和韩文 (CJK) 而 Unicode 20 的表里只有中文的变体

4 UTFbull Unicode 和 UCS 都是一个字符集可以看作为内码bull UTF ( UnicodeUCS Transformation Format 统一码

通用字符集转换格式)是一种编码方式它的出现是因为 Unicode 和 UCS 不适宜在某些场合直接传输和处理

bull UCS 和 Unicode 只是分配整数给字符的编码表现在存在好几种将一串字符表示为一串字节的方法(如高或低位字节在前)

bull 最显而易见的两种方法是将 UCS 和 Unicode 文本存储为 2 个 或 4 个字节序列的串这两种方法的正式名称分别为 UCS-2 和 UCS-4

bull 常用的 UTF具体编码方式有 UTF-8 UTF-16 和 UTF-32

UTF-8

bull UTF-8 是 UTF 的一种具体编码方式在 ISO 10646-1 的附录 R 和 IETF 的 RFC 2279 里定义

bull 由于要使文档中的文字与 ASCII兼容故 UTF-8 选择了使用可变长度字节来储存 Unicode 和 UCS 例如ndash ASCII 字母继续使用 1 字节储存ndash 重音文字希腊字母或西里尔字母等使用 2 字节来储存ndash 常用的汉字就要使用 3 字节ndash 辅助平面字符则使用 4 字节ndash 即 ASCII 不作变换其他字符做变长编码每个字符 1~4 字节

bull UTF-8 通常作为外码bull 在 UTF-8 文件的开首很多时都放置一个 U+FEFF 字符

(UTF-8 以 EF BB BF 代表 ) 以显示这个文字档案是以UTF-8 编码

UTF-8 的优点bull 与 CPU 字节顺序无关可以在不同平台之间交流

bull 容错能力高任何一个字节损坏后最多只会导致一个编码码位损失不会链锁错误 ( 如 GB 码错一个字节就会整行乱码 )

UTF-8 的缺点bull UTF-8 使用可变长度字节储存使计算机程序设计变得复杂 (故此在计算机程序或操作系统内部多采用 UCS-2 编码 )

bull 在旧式的中文日文及朝鲜文编码之中每字符都使用 2 字节储存而 UTF-8 须使用 3 字节 (采用 UTF-16 编码则可只使用 2字节储存 )

bull 泰语以往使用的 ISO 8859-11 每字符只使用 1 字节储存而 UTF-8 须使用 3 字节

UTF-8储存的多字节串字符bull U-00000000 - U-0000007F 0xxxxxxx bull U-00000080 - U-000007FF 110xxxxx 10xxxxxx

bull U-00000800 - U-0000FFFF 1110xxxx 10xxxxxx

10xxxxxx bull U-00010000 - U-001FFFFF 11110xxx 10xxxxx

x 10xxxxxx 10xxxxxx bull 在多字节串中第一个字节的开头ldquo 1rdquo 的数目就

是整个串中字节的数目bull 每个使用 UTF-8储存的字符除了第一个字节外其余字节的头两个位元都是以 10 开始使文字处理器能够较快地找出每个字符的开始位置

UTF-16bull UTF-16 是 UTF 的另一种具体编码方式在 ISO 1064

6-1 的附录 Q 和 IETF 的 RFC 2781 里定义bull UTF-16 是变长码( 2 或 4 字节)大致相当于 20位编码值在 0 到 0x10FFFF 之间基本上就是 Unicode 编码的实现 UTF-16 与 CPU 字序有关但因为最省空间常作为网络传输的外码 UTF-16 是 Unicode 的完美编码

bull lt0x10000 的直接用其对应的 16位整数编码位于 0x10000 ~ 0x10FFFF 之间的用 0xD800~0xDBFF 的 16位整数后跟 0xDC00~0xDFFF 的 16位整数的 4 字节编码 gt 0x10FFFF 的不能用 UTF-16 表示

bull 在 Unicode 的 BMP 中定义的字符(无论是拉丁字母汉字或其他文字或符号)一律使用 2 字节存储而在辅助平面定义的字符则以两个 2 字节的值来存储

UTF-16 的特点bull UTF-16比起 UTF-8 的好处在于大部分字符都以固定长

度的 2 字节存储但 UTF-16却无法相容于 ASCII 编码bull UTF-16 有两种编码模式即大尾序( big Endian 高位字节在前)和小尾序( little Endian 高位字节在后)储存形式(一般來說以 Macintosh 制作和存储的文字使用大尾序格式以 Microsoft 或 Linux 制作和存储的文字使用小尾序格式)

bull 为了弄区分 UTF-16 文件的大小尾序在 UTF-16 文件的开头都会放置一个 U+FEFF 字符作为字节顺序标记 (UTF-16LE 以 FF FE代表 UTF-16BE 以 FE FF代表 ) 以显示该文档是以 UTF-16 编码的

UTF-32

bull UTF-32 仅使用了 Unicode范围 (0 到 0x10FFFF) 的 32位编码相当于 UCS-4 的子集

bull 由于 Unicode 和 ISOIEC 10646 的编码和结构与前面讲过的 GB 13000 类似或等价这里就不再做详细的介绍

5支持bull 现在 UnicodeUCS 已经获得了十分广泛的支

持ndash网络与浏览器(如 HTML 4050 XML 与 IE

Safari Netscape Firefox Chrome Opera Edge 等)

ndash操作系统(如 Windows NT2000XPVista7810 Mac OS X iOS Android和 Linux )

ndash 编程语言新版本(如 CC++JavaObjective-CC Swift 等)

Unicode 代码的浏览器显示代码 字符标准名称 (英语 )

浏览器的显示

amp65 大写拉丁字母 A A

amp223 小写拉丁字母 Sharp S szlig

amp254 小写拉丁字母 Thorn thorn

amp916 大写希腊字母 Delta Δ

amp1049 大写斯拉夫字母 Short I Й

amp1511 希伯来字母 Qof ק

amp1605 阿拉伯字母 Meem م

amp3671 泰文数字 7 ๗amp4688 埃塞俄比亚音节文字 Qha ቐ

amp12354 日语平假名 A あamp12450 日语片假名 A アamp21494 简体汉字 叶 叶amp33865 繁体汉字 葉 葉amp50685 韩国音节文字 Yeob 엽

23 文字输出bull 文字输出是指将计算机内的字符编码通过计算机的输出设备(如显示器打印机喇叭)展现出所对应字符的图形或声音供人们阅读或聆听

bull 本节主要介绍文字图示输出的字形技术bull 文字声音输出属于语音合成只在本节的末尾作简单的介绍

231 字形技术bull 文字 = 图形bull 不论是象形文字中的单字还是拼音文字

中的字母都是用图形来表示的bull 在计算机里文字的表示 输出(显示和打

印)涉及ndash 字型ndash 字体ndash 字库

1字型bull 字型指构造和生成字形的方法一般可分为

ndash 点阵字 DOS 显卡 ROM 金山 科印特点似位图显示快占空间(字库大)放大后有马赛克效应

bull 显示字母 88 汉字 1616bull 打印 2424 4848 6464

ndash 矢量字单线条用于笔式绘图仪特点字库小算法简单难看

ndash 轮廓字用曲线描绘字的轮廓输出效果好所见即所得(WYSWYG) 可无级放大易实现空心 阴影 填充 变形等各种特效功能轮廓曲线一般采用样条曲线如 TrueType (Apple 1991 Mac OS Microsoft 1992 Windows 31)用的是二次 B 样条 Bezier曲线中文之星 RichWin采用的是三次 B 样条 Bezier曲线

字型种类

2字体bull 字体指字的形状风格如

ndash 汉字的

ndash 英文的

宋体楷体黑体仿宋

行楷隶书新魏幼圆

Times New Roman Arial Narrow Courier New

常用汉字字体bull 宋体mdashmdash宋体来自于北宋时雕版刻书所采用的欧体字(唐朝欧阳询体)宋体字的横顿拉捺挑钩别具特色间架平正疏密适中字体秀丽遒劲但笔画横细竖粗适合于刀刻不宜于手写现在宋体广泛用于印刷常来表现文档的正文

bull 仿宋体mdashmdash 1920年钱塘的丁辅之与丁善之等人将明代以后盛行的方廓形字体加以改造创造出长形和方形的聚珍仿宋后来演化为现在的仿宋体仿宋体比较接近于手写体为宋体和楷体的折中是采用的宋体的结构和楷体的笔法而成现常来表现打印文件以及文档的摘要和注释等

bull 黑体mdashmdash黑体是适应工艺美术的发展而出现的一种等线体是从日本引进的黑体的结构与宋体没有什么差别只是其笔画粗细一致健实粗壮主要用于文档的标题和重点及标语广告等方面

bull 楷体mdashmdash楷体源于楷书楷体的笔画圆浑笔调灵活结构端正美观但不宜于木板雕刻所以直到清末西洋的石板印刷术传入后才开始广泛用于印刷现代的楷体创造于 20世纪的二三十年代主要用于文档的正文(多用于中小学教材)也可用于工艺美术等方面

3字库bull 字库为一种文字的某一字体的所有字符的集合一般存放在一个磁盘文件中

bull 由于象形文字中单字的数量大(成千上万)而拼音文字中字母的数量小(不到一百个)所以字库的大小有很大的差别

bull 为了使文档界面丰富多彩常见的字处理软件都支持多种字体带有众多字库

4点阵字型的国家标准bull 我国已经公布了若干字体的点阵字型之国家标准

ndash GB 50071-19852001 信息技术 汉字编码字符集(基本集) 24 点阵字型

ndash GB 50072-19852001 信息技术 汉字编码字符集(辅助集) 24 点阵字型

ndash GB 5199-19862001 信息技术 汉字编码字符集(基本集) 16 点阵字型 宋体

ndash GB 6345-19862001 信息技术 汉字编码字符集(基本集) 32 点阵字型 宋体

ndash GB 12041-2001 信息技术 汉字编码字符集(基本集) 48点阵字型 宋体

ndash GB 17698-1999 信息技术 通用多八位编码字符集( I 区) 汉字 16 点阵字型

232 语音合成bull 文字的声音输出主要使用的是语音合成的技术bull 语音合成功能是ldquo文rarr语rdquo转换bull 文语转换 TTS (Text-To-Speech) 是将文本形式的信息转换成自然语音的一种技术其最终目标是使计算机输出清晰而又自然的声音

bull 英语的语音合成在上世纪 80年代就早已成熟而中文 汉语的合成现在也趋于成熟并有了广泛的应用(如汽车导航仪智能手机等)

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 24: 第一篇  媒体

EBCDIC 字符集 0 1 2 3 4 5 6 7 8 9 A B C D E F

0 NUL DLE DS SP amp - 0

1 SOH DC1 SOS a j ~ A J 1

2 STX DC2 FS SYN b k s B K S 2

3 ETX TM c l t C L T 3

4 PF RES BYP PN d m u D M U 4

5 HT NL LF RS e n v E N V 5

6 LC BS ETB UC f o w F O W 6

7 DEL IL ESC EOT g p x G P X 7

8 GE CAN h q y H Q Y 8

9 RLF EM ` i r z I R Z 9

A SMM CC SM cent | |

B VT CU1 CU2 CU3 $

C FF IFS DC4 gt

D CR IGS ENQ NAK ( ) _ lsquo

E SO IRS ACK + lt =

F SI IUS BEL SUB | ldquo EO

3扩展 ASCII 显示字符bull ( 1 ) IBM PC

ndash IBM PC 的扩展 ASCII 显示字符由 IBM公司为其 PC 机制定可以由原始的 IBM PC 显示器在 DOS状态下显示

bull ( 2 ) Microsoft Windows ndash Microsoft Windows 的扩展 ASCII 显示字符由

微软公司为其Windows操作系统制定可以在Windows环境的西文状态下被显示

IBM PC 的扩展 ASCII 显示字符表

Microsoft Windows 的扩展 ASCII 显示字符表

222 中文编码bull 1 GB 1988 与 GB 2311

bull 2 GB 2312

bull 3汉字编码的辅助集bull 4 Big5

bull 5少数民族文字编码bull 6 GB 13000

bull 7 GBK 与 GB 18030

汉字编码bull 为了计算机处理汉字必须先对汉字进行编码由于汉

字数量大(《康熙字典》收字 47 035 个《汉语大字典》收字 54 678 个据统计在形成楷体后出现的汉字约有 9万个左右)显然不能像 ASCII那样用 7位或单字节来进行编码至少需要两个字节(最多可表示 6万5千多个字符)

bull 1980年我国制定了著名的 GB 2312-80双字节汉字编码标准(其中 GB 为ldquo国标rdquo这两个汉字的拼音首字母)收汉字 6 763 个

bull 1993年底又推出了等同于国际通用字符编码标准 ISOIEC 106461-1993 的国家标准 GB 130001-93 收汉字 20 902 个

bull 由于 GB 13000 与 GB 2312 的编码不兼容作为过渡2000年又公布了 GB 18030-2000 ( GBK )收汉字2万 7千个

1 GB 1988 与 GB 2311

bull 为了能够同时表示和处理汉字和英文实现中外文混排汉字编码必须兼容通用的 ASCII 编码因此1980年我国制定了与国际标准 ISO 6461972 (即ASCII )对应的国家标准 GB 1988-80《信息处理交换用的七位编码字符集》

bull 汉字成千上万不可能像 ASCII 一样只用单字节的七位来表示必须扩展到八位和多字节但是不能随意扩充而应该符合国际规范因此我国于 1980年又制定了与七位代码扩充到八位编码的国际标准 ISO 2022兼容的国家标准 GB 2311-80《信息处理交换用七位编码字符集的扩充办法》

GB 1988-80 ( ASCII )的代码结构图

行 0 1 2 3 4 5 6 7

0 SP

1 helliphellip

15

16

32个

控制符

94个

图形字符

DEL

GB 2311-80 的八位编码结构图列

行 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0 SP 100

1

helliphellip

14

15

C0

32个

控制符

GL

94或 96个

图形字符

DEL

C1

32个

控制符

GR

94或 96个

图形字符

1515

2 GB 2312

bull GB 2312-80《信息交换用汉字编码字符集 middot基本集》是我国制定的一个使用最广泛的汉字编码的强制性国家标准由原第四机械工业部的华北计算机研究所(后改名为电子工业部第十五研究所)起草1980年批准 1981年 5月 1日起实施

bull GB 2312-80 是在已有的国家标准 GB 1988-80(对应于 ISO 646 )和 GB 2311-80 (对应于 ISO 2022 )的基础上制定的采用与 ISO 2022兼容的GB 2311 之 7位到八位的代码扩充办法用双字节编码表示汉字与 ASCII兼容

收录的字符bull GB 2312 对应的是汉字的基本集共收汉字 6 763 个

可达到 9999 的使用频率因此除了极少数生僻的人名地名和古文外 GB 2312 中的汉字已经能基本满足平时的使用了

bull 除了汉字外 GB 2312 还收录了 682 个非汉字图形符号包括 202 个一般符号(含间隔符标点运算符和制表符) 60 个序号符 22 个数字符 52 个英文字母 169 个日文假名 48 个希腊字母 66 个俄文字母 26 个汉语拼音符号和 37 个汉语注音字母

bull 所以在 GB 2312-80 标准中共收录了( 6 763 汉字 + 682 非汉字图符 = ) 7 445 图形字符

两级汉字bull GB 2312 将其收录的六千多个汉字分成两个级别bull 一级汉字有 3 755 个都为使用频率高的常用汉

字为便于检索像字典那样将这些汉字按拼音字母顺序排列(同音字再按笔顺的横竖撇捺点折序排列)

bull 二级汉字有 3 008 个大部分较生僻不易掌握读音所以按部首顺序排列(同部首的字按笔画数排列同笔画数的字再按笔顺排列)

编码方案bull GB 2312 对所有图形字符(包括汉字和非汉字图符)都采用两个字节表示每个字节的低七位用于编码最高位全为 1 这样可以兼容 ASCII 编码(字节的最高位全为 0 )

bull 虽然在一个字节中最高位为 1 的符号位置有 128 个但从前面 GB 2311 的分析可知为了与 ASCII 的代码结构兼容保留了( 32 + 2 = ) 34 个控制符位置最后只有( 128 ndash 34 = ) 94 个符号位可供图形字符编码使用

bull 图形字符在代码表中的位置用区位码表示将码表分成94 个区对应于编码的第一个字节取值 0x21~0x7E 每个区又分成 94 个位对应于编码的第二个字节取值 0x21~0x7E (参见表 2-6 )

bull 例如ldquo中山大学rdquo的编码为中 (0xD6D0) 山 (0xC9BD) 大 (0xB4F3) 学 (0xD1A7)

GB 2312-80 字符集结构 20 21 22 helliphellip 7D 7E 7F

位号

区号

1 2 helliphellip 93 94

20

21~29 1~9 非汉字图符(682个)

2A~2F 10~15 空白区

30~57 16~55 一级汉字(3 755个)

58~77 56~87 二级汉字(3 008个)

78~7E 88~94 空白区

7F

第 1 区的部分非汉字图符

1区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 middot ˉ ˇ uml 々 mdash ~ hellip lsquo rsquo ldquo

17~32 rdquo 〔 〕 〈 〉 《 》 「 」 『 』 〖 〗 【 】 plusmn

33~48 times divide ∶ and or sum prod cup cap isin ∷ radic perp ∥ ang

49~64 ⊙ int ∮ equiv ≌ asymp ∽ prop ne ltu gtu le ge infin ∵ there4

65~80 deg prime Prime $ curren ¢ £ permil sect

81~94 rarr larr uarr darr

第 16 区的部分一级汉字

16区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 啊 阿 埃 挨 哎 唉 哀 皑 癌 蔼 矮 艾 碍 爱 隘 鞍

17~32 氨 安 俺 按 暗 岸 胺 案 肮 昂 盎 凹 敖 熬 翱 袄

33~48 傲 奥 懊 澳 芭 捌 扒 叭 吧 笆 八 疤 巴 拔 跋 靶

49~64 把 耙 坝 霸 罢 爸 白 柏 百 摆 佰 败 拜 稗 斑 班

65~80 搬 扳 般 颁 板 版 扮 拌 伴 瓣 半 办 绊 邦 帮 梆

81~94 榜 膀 绑 棒 磅 蚌 镑 傍 谤 苞 胞 包 褒 剥

第 56 区的部分二级汉字

56区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 亍 丌 兀 丐 廿 卅 丕 亘 丞 鬲 孬 噩 丨 禺 丿 匕

17~32 乇 夭 爻 卮 氐 囟 胤 馗 毓 睾 鼗 丶 亟 鼐 乜 乩

33~48 亓 芈 孛 啬 嘏 仄 厍 厝 厣 厥 厮 靥 赝 匚 叵 匦

49~64 匮 匾 赜 卦 卣 刂 刈 刎 刭 刳 刿 剀 剌 剞 剡 剜

65~80 蒯 剽 劂 劁 劐 劓 冂 罔 亻 仃 仉 仂 仨 仡 仫 仞

81~94 伛 仳 伢 佤 仵 伥 伧 伉 伫 佞 佧 攸 佚 佝

3汉字编码的辅助集bull 除了GB 2312基本集的 6 763 个简体汉字外国家标

准还给出了汉字编码字符集的多个辅助集bull 第二 四辅助集分别增加了 7 237 7 039 个简体汉字bull 第一和三 五辅助集则分别是与基本集和第二 四辅助集所对应的繁体汉字字符集的国家标准

bull 基本集加上辅助集共有 21 039 个简体汉字和 21 142个繁体汉字

bull 繁体汉字之所以多一些是因为在第一辅助集中有时几个繁体字对应一个简体字因此比基本集多出 103 个汉字

bull 基本集和辅助集的代码页之间靠其编码字节的最高位来区分

编码字符的分页标志

双字节汉字编码的页面结构第二字节 列号

行号 0 middot middot middot 32 33 34 helliphellip 125 126 127 128middot middot 160 161 162 helliphellip 254 255 0 middot middot 32

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

33 34 middot middot middot 126

1 2 middot middot middot 94

第四五辅助集 (7 039个汉字)

127

(兼容ASCII)

128 middot middot 160

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

161 162 middot middot middot 254

1 2 middot middot middot 94

第二三辅助集 (7 237个汉字)

1 2 middot middot middot 94

基本集第一辅助集 (6 763 6 866个汉字) (682个非汉字图符)

第一字节

255

4 Big5

bull 除了中国大陆使用的简体汉字外在台湾香港澳门和海外华侨社区使用的是传统的繁体汉字

bull 简体汉字使用 GB (国标)系列编码标准bull 繁体汉字一般使用的是 Big5内码(大五码)即台湾的ldquo资讯工业策进会rdquo发布的《标准交换码 (Ⅲ码 )》收录汉字 13 053 个

bull Big5内码是 1984年由台湾财团法人资讯工业策进会与宏碁 (Acer) 神通 (MiTAC) 佳佳零壹 (Zero One) 大众 (FIC) 等五大软件公司联合推出故称为大五码

BIG5 的代码空间低位字节

00 hellip 3F 40 hellip 7E 7F hellip A0 A1 hellip FE FF

高位字节

00middot

80

81middot

A0用户定义区 用户定义区

A1A2A3

非汉字图符 非汉字图符

A4middot

C6常用汉字 常用汉字

C7C8

用户定义区 用户定义区

C9middot

F9次常用汉字 次常用汉字

FAmiddot

FE用户定义区 用户定义区

FF

5少数民族文字编码bull 中国共有 56 个民族除了汉回满族一般使用汉语外其他少数民族大多有自己的民族语言

bull 我国各民族使用的 50 多种文字可以分为字母式结构文字和非字母式结构文字两大类ndash 字母式结构的有拉丁文斯拉夫文蒙古文维吾尔文哈萨克文藏文和朝鲜文等字母式

ndash 非字母式结构的有汉字象形文字图画文字和音节文字等bull 各民族文字的书写方向也有不同

ndash 壮文藏文朝鲜文彝文等的字从左到右行从上到下ndash 维吾尔文哈萨克文和柯尔克孜文等的字从右到左行从上

到下ndash 蒙古文和满文的字从上到下行从左到右ndash 汉字的书写方向有两种

bull 大陆的简体汉字的字从左到右行从上到下bull 港台与古旧书的繁体汉字的字从上到下行从右到左

国家标准bull 下面按发布时间列出若干已经公布的我国少数民族文字

编码集的国家标准(这些字符集一般分成两类对字母式结构文字采用八位编码对非字母式结构文字采用双字节编码)ndash GB 8045-87《信息处理交换用蒙古文七位和八位编码图形字

符集》收 82 个蒙古文字母和 12 个其他符号共 94 个字符ndash GB 12050-89《信息处理交换用维吾尔文编码图形字符集》收 32 个维吾尔文字母一个维吾尔文复合字符和 37 个其他符号共 70 个字符

ndash GB 12052-89《信息交换用朝鲜文编码字符集》收 5297 个朝鲜文字和 682 个其他符号(与 GB 2132同)共 5 979 个字符

ndash GB 13134-91《信息交换用彝文编码字符集》收 1165 个彝文字符和 688 个其他符号共 1853 个字符

ndash GB 16959-1997《信息技术 信息交换用藏文编码字符集 基本集》收 41 个藏文字母 36 个藏文主字 13 个元音字符12 个语音字符 10 个藏文数字 10 个半值符一个控制用连接符和 46 个其他藏文图形符号共 169 个字符

6 GB 13000bull GB 13000 是与 ISOIEC 10646 等价的国际通用编码字符集标准收汉字 2万多个但是与 GB 2312 和 GBK 不兼容

bull 1993年 5月 ISO 与 IEC 联合推出了可用于世界各种文字的通用编码字符集的国际标准的第 1部分ndash ISOIEC 10646-11993 Information technology -- Universal Multiple-Octe

t Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane (信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

ndash 该标准收字符 96万个几乎涵盖世界上的所有文字其中包含汉字 21 003 个

bull 1993年底我国推出了等同于国际标准 ISOIEC 1064611993 的强制性国家标准 ndash GB 130001-93《信息技术 通用多八位编码字符集( UCS ) 第一部分

体系结构与基本多文种平面》ndash 该标准于 1993年 12月 24日被国家技术监督局批准 1994年 8月 1日起实施

GB 13000 的主要特点

bull 世界各语言文种字符统一编码避免冲突便于国际交流

bull 编码空间宽阔连续每个图形字符的编码唯一(一字一码)不再存在兼容性问题

bull 按文种而不是按语言编码避免重复和浪费(如中日韩汉字的统一编码 CJK )

bull 与 GB 2312 和 GBK 不兼容

体系结构bull UCS 的体系结构是基于所谓ldquo多八位rdquo的而ldquo八位rdquo就是一个字节ldquo多八位rdquo就是多个字节

bull UCS采用 4 个字节来表征组面行位的四维空间bull 整个 UCS空间包含 128 个组( 0x00组 ~0x7F组)每组有 256 个平面( 0x00 平面 ~0xFF 平面)每个平面有 256 行每行又由 256 个字位构成

bull UCS共有( 128 times 256 = ) 32 768 个平面每个平面有( 256 times 256 = ) 65 536 个字位每个字位对应于一个字符的编码

bull 目前的编码只限于 00组已经定义的平面有 00组的00 平面mdashmdash称之为基本多文种平面 BMP ( Basic Multilingual Plane ) 及若干辅助平面

UCS 的全部编码空间

每个平面256times256 个

字位

00组 00 平面

00组 FF 平面

01组 00 平面

7F组 00 平面00

01组

7F组

UCS 的 00组

BMPbull BMP = Basic Multilingual Plane 基本多文种平面bull BMP 用作双八位编码字符集称之为 UCS-2 它被

分成四个区ndash A- 区(字位 0x0000~0x4DFF 有 19 903 个字位)用于

字母文字音节文字以及各种符号ndash I- 区(字位 0x4E00~0x9FFF 共 20 992 个字位)用于中日韩统一汉字( CJK )

ndash O- 区(字位 0xA000~0xDFFF 共 16 384 个字位)保留未来标准化用

ndash R- 区(字位 0xE000~0xFFFD 共 8 190 个字位)为 BMP 的限制使用区包括专用字符变形显现形式及兼容字符

BMP总貌

A-区

00~33 拼音文字(见下页)

34~3D 朝鲜文

3E~44 朝鲜文补充 -A

45~4D 朝鲜文补充 -B

I-区 4E~9F CJK统一汉字O-区 A0~DF

R-区

E0~F8 专用区

F9~FA CJK兼容汉字FB 拼音文字变形显现形式

FC~FD 阿拉伯文变形显现形式 -A

FE半形组合用标志

CJK兼容形式

小写变体

阿拉伯文变形显现形式 -B

FF 半形及全形字符 特殊字符

BMP 的0x00~0x33

行字母文字区

00 基本拉丁文 拉丁文-1补充

01 拉丁文扩充-A 拉丁文扩充-B

02 拉丁文扩充-B 国际音标扩充 进格修饰字符

03 组合用发音符 基本希腊文 希腊符号及哥普特文

04 西里尔文

05 美亚尼亚文 希伯来文(基本和扩充)

06 基本阿拉伯文 阿拉伯文扩充

07

08

09 梵文 孟加拉文

0A 锡克教文 古吉拉特文

0B 奥利雅文 泰米尔文

0C 泰卢固文 卡纳达文

0D 德拉维族文

0E 泰文 老挝文

0F

10 格鲁吉亚文

11 朝鲜文字母

12~1D

1E 拉丁文扩充增补

1F 希腊文扩充

20 广义标点 上下标 货币符号 符号组合用区分标志

21 类似字母的符号 数字形式 箭头

22 数学运算符

23 零杂技术用符号

24 控制图符 光学识别符 带括号的字母数字

25 制表符 方块元素 几何图形符

26 零杂符号

27 示意符等

28~2F

30 CJK符号和标点 平假名 片假名

31 注音 朝鲜文兼容字母 CJK零杂字符

32 带括号的CJK字母及月份

33 CJK兼容字符

留作将来标准化用

非图形字符

表示形式bull GB 13000提供了字符编码表示的两种替代使用的形式

ndash 双八位 BMP 形式( UCS-2 )mdashmdash允许使用 BMP 中的字符且每个字符用两个字节表示

ndash 肆八位正则形式( UCS-4 )mdashmdash允许使用 GB 13000 中的全部字符且每个字符用四个字节表示

bull 除了 UCS-24外还有另外两种变形的表示形式ndash UTF-8 (单字节 ~ 多字节)ndash UTF-16 (双字节和 4 字节与 UCS-2 等价)ndash 目前在工业上的实现均为 UTF-16 ( UCS-2 )和 UTF-8ndash UTF = Unicode UCS Transformation Format 统一码 UC

S转换格式bull 关于统一码我们会在下一小节详细介绍

7 GBK 与 GB 18030bull 由于 GB 13000 标准与 GB 2312 标准的字符编码不兼容作为过渡在国家信息技术标准化委员会的主持下制定了与 GB 2312兼容的《汉字内码扩展规范( GBK )》( K 为扩展的ldquo扩rdquo字的拼音首字母)并于 1995年 12月 15日由原国家技术监督局标准司联合原电子工业部科技与质量监督司作为指导性技术规范发布实施

bull 2000年 GBK又被国家标准 GB 18030-2000《信息技术 信息交换用汉字编码字符集 基本集的扩充》所代替该标准收汉字 2万 7千个

bull 与 GB 2312 一样 GB 18030 也为中国的强制性国家标准微软公司的 Windows XPVista78 中文版与苹果公司的 Mac OS X 和 iOS 谷歌公司的 Android (安卓)等操作系统已经全面支持 GBK

GB 18030 的码位范围分布

字节数 码位空间 码位数目

单字节 0x00~0x7F 128

双字节第 1字节 第 2字节

23 9400x81~0xFE

0x40~0x7E 0x80~0xFE

四字节第 1字节 第 2字节 第 3字节 第 4字节

1 587 6000x81~0xFE 0x30~0x39 0x81~0xFE 0x30~0x39

GB 18030的

总体结构图

收录字符bull 单字节部分mdashmdash收录了GBT 11383 的 0x00~0x7F 全部 128 个字符(似 ASCI

I )bull 双字节部分mdashmdash收录内容如下 (21 003 个汉字和 884 个符号共 21 887 个字符 )

ndash GB 130001-93 的全部 CJK 统一汉字字符 20 902 个( GB 2312 的编码汉字在双字节 2 区其他 CJK 统一汉字在双字节 34 区)

ndash GB 130001-93 的 CJK兼容区挑选出来的 21 个汉字ldquo郎凉秊helliphellip﨨﨩rdquo( 0xFD9C~0xFDA0 和 0xFE40~0xFE4F )

ndash GB 130001-93 中收录而 GB 2312未收录的台湾地区使用的图形字符 139 个ldquoˊˋ˙helliphelliprdquo( 0xA840~0xA895 和 0xA940~0XA988 )

ndash GB 130001-93收录的其他字符 31 ( 13)个(在双字节 5 区)ndash GB 2312-80 中的非汉字字符 682 个( 0xA1A1~0xA9EF )ndash GB 12345-90 的竖排标点符号 19 ( 29)个ldquo︵︶︹helliphellip︳︴rdquo( 0xA6D9~0xA6

F5 )ndash GB 2312-80未收录的 10 个小写罗马数字ldquoⅰⅱⅲhelliphellipⅸⅹrdquo( 0xA2A1~ 0xA2A

A )ndash GB 2312-80未收录的带音调的汉语拼音字母 5 ( 4)个ldquo ńňǹrdquo 以及 ɑ 和 ɡ ( 0

xA8BB~0xA8C0 )ndash 汉字数字零ldquo〇rdquo (0xA996) 和欧元符ldquoeurordquo (0xA2E3)ndash 表意文字描述符 13 个ldquohelliphelliprdquo( 0xA989~0xA995 )ndash 对 GB 130001-93增补的汉字和部首 构件 80 个ldquohelliphellip䶮rdquo( 0xFE50~ 0x

FEA0 )bull 四字节部分mdashmdash收录了上述双字节字符之外的包括 CJK 统一汉字扩充 A 在内

的 GB 130001-93 中的全部字符

GB 18030双字节部分的码位安排

类别 区名 码位范围 码位数 字符数 内容

符号区双字节 1区 A1A1~A9FE 846 718

GB 2312非汉字字符等

双字节 5区 A840~A9A0 192 166 台湾图符等

汉字区双字节 2区 B0A1~F7FE 6768 6763 GB 2312汉字双字节 3区 8140~A0FE 6080 6080 CJK统一汉字双字节 4区 AA40~FEA0 8160 8160 CJK统一汉字等

用户自定义区双字节用户区 1 AAA1~AFFE 564

用户自定义字符双字节用户区 2 F8A1~FEFE 658

双字节用户区 3 A140~A7A0 672

GB 18030双字节部分的编码空间结构图 尾字节

0x40larr――rarr0x7E 0x80larr――rarr0xA0 0xA1larr――――――――――――rarr0xFE

0x81 uarr darr

0xA0

0xA1 uarr darr

0xA7

0xA8 0xA9

首字节

0xAA uarr | | | | | | | | | | darr

0xFE

双字节 3区

汉字区6 080个码位

双字节用户区 3

用户自定义区672个码位

双字节 5区 图形符号区192个码位

双字节 4区

汉字区8 160个码位

双字节 1区

图形符号区564个码位

双字节 2区

汉字区6 768个码位

双字节用户区 1 用户自定义区564个码位

双字节用户区 2 用户自定义区658个码位

223 国际通用字符编码

bull Unicode (统一码)是由多语言软件制造商组成的统一码协会( httpwwwUnicodeorg)所制定一种国际字符的编码标准

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull 本节主要介绍这两种关系密切的主流国际字符编码标准的来历编码方案各自特点与相互关系

1 Unicode 统一码bull 发展历史

ndash 1987年施乐( Xerox )公司的 Joe Becker 与 Lee Collins 和苹果( Apple )公司的 Mark Davis 等人开始讨论统一编码 1987年 12月 Joe Becker造词 Unicode (统一码)含义为ldquo unique universal and uniform character encodingrdquo (单一通用统一的字符编码) 1989年 2月开始定期召开统一码会议 1989年 9月公布 Unicode草案

ndash 1991年 1月 3 日由 Xerox Apple Sun IBM Aldis Microsoft 等公司出资在美国加州成立了统一码协会( Unicode Consortium )并由协会设立非盈利性的统一码公司( Unicode Inc )后来 HP Adobe Borland Digital Lotus Novell 等公司也纷纷加入 1991年 1月成立统一码技术委员会 UTC 并制定了其规程

ndash 1991年 2月在 Ed Hart 的推动下进行了ldquo统一码对 10464 国际标准草案 1rdquo 的对话Unicode 与 ISOIEC 10646开始走向融合

ndash 1991年 8月发布 Unicode 标准 10版的第 1卷(体系结构非表意字符) 1992年6月发表 Unicode 10版的第 2卷(表意字符) 1993年 6月发布 Unicode 11版与 1993年 5月公布的 ISOIEC 10646-11993 实现了合并

ndash 1996年 7月发布 Unicode 20版ndash 1999年 9月发布 Unicode 30版ndash 2003年 4月发布 Unicode 40版(对应于 ISOIEC 106462003 ) 2004年 3月 31日发布 Unicode 401版 2005年 3月 31日发布 Unicode 410版

ndash 2006年 7月 14日发布 Unicode 50版 2008年 4月 4日发布 Unicode 51版 2009年 12月 22日发布 Unicode 52版

ndash 2010年 10月发布 Unicode 60版 2012年 1月发布 Unicode 61版(对应于 ISOIEC 106462012 ) 2012年 9月推出 Unicode 62版 2013年 9月推出 Unicode 63版

ndash 2014年 6月 16日发布 Unicode 70版 ndash 2015年 6月 17日发布 Unicode 80版

字符集bull Unicode 字符集的空间分成双字节的基本多语言平面 (Basic Multilingual Pla

ne BMP) 和 4 字节的辅助多语言平面 (Supplementary Multilingual Plane SMP) 两种

bull BMPndash Unicode 的基本平面或基本多语言平面 BMP 对应于 ISOIEC 10646-1 的第 00组的 00 平面( BMP )即 Unicode 与 ISOIEC 10646 的 BMP 中的字符编码完全一致

bull SMPndash 鉴于 Unicode 原有的 16位元空间不足以应用从 Unicode 31版本开始设立了 16 个辅助平面使 Unicode 的可使用空间由六万多字增至约一百万字

ndash 原有的 Unicode双字节空间称为基本平面或基本多语言平面 BMP 辅助多语言平面 SMP 字符要用 4 字节来储存

ndash 第一辅助平面摆放拼音文字(主要为现时已不再使用的文字)及符号范围在 U+10000 - U+1FFFD

ndash 第二辅助平面又称为表意文字补充平面 (Supplementary Ideographic Plane 简称 SIP) 现时摆放ldquo中日韩统汉字扩展 B 区rdquo共 43253 个汉字范围在 U+20000 - U+2FFFD

ndash 第三至十三辅助平面尚未使用ndash 第十四辅助平面又称为特殊用途补充平面 (Supplementary Special-purpose Pl

ane 简称 SSP) 摆放 Language tags 和 Variation Selectors 它们都是控制字符范围在 U+E0000 - U+E01FF

ndash 第十五至十六辅助平面都是私人使用区它们的范围是 U+F0000 - U+FFFFD 及 U+100000 - U+1000FD

bull Unicode 字符集的具体编码方式参加第 4小节ldquo 4 UTFrdquo

2 ISOIEC 10646

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull ISOIEC 10646 标准由 ISO 与 IEC 联合成立的 ISOIEC JTC1SC2WG2 制定ndash JTC 1 ( Joint Technical Committee 1 on Information

technology ISOIEC信息技术联合技术委员会 1 )负责信息技术方面标准的制定工作

ndash SC 2 ( SubCommittee 2 on Coded character sets 编码字符集分会 2 )下的 WG 2 ( Working Group 2 on Universal coded character set 通用编码字符集工作组 2 )负责制定国际通用字符编码标准即后来公布的 ISOIEC 10646

发展历史bull 1984年 ISO 的一些会员国发起制定新的国际字符编码标准同年 4月 ISO

与 IEC 联合成立 ISOIEC JTC1SC2WG2 1987年 3月制定出编码架构1992年 6月投票通过第二版国际标准草案

bull 1993年 5月推出 10646 标准时将内容分成两个部分标准首先发布的是其中的第 1 个部分(体系结构与基本多文种平面)的第 1版( Edition 1 ) ISOIEC 10646-11993 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane(信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

bull 2000年 3月推出 10646 标准第一个部分的第 2版( Edition 2 ) ISOIEC 10646-12000 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane

bull 2001年 10月推出 10646 标准第 2版的第二个部分(辅助平面)的第 1版( Edition 1 ) ISOIEC 10646-22001 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 2 Supplementary Planes

bull 2003年 10月推出的 10646新标准(第 1版 Edition 1 )将老标准中的两个部分标准合并成了一个单一的标准 ISOIEC 106462003 Information technology -- Universal Multiple- Octet Coded Character Set (UCS) 后来又于 2010年 2012年和 2014年分别推出了 ISOIEC 106462010 (第 2版)ISOIEC 106462012 (第 3版)和 ISOIEC 106462014 (第 4版)

UCS 通用字符集bull 通用字符集( Universal Character Set UCS )是

ISOIEC 10646 标准所定义的字符编码方式采用 4字节编码又称为 Universal Multiple-Octet Coded Character Set (通用多八位编码字符集)

bull 通用字符集是所有包括了其他字符集它保证了与其他字符集的双向兼容即如果你将任何文本字符串翻译到 UCS 格式然后再翻译回原编码你不会丢失任何信息

bull UCS 包含了已知语言的所有字符除了拉丁语希腊语斯拉夫语希伯来语阿拉伯语亚美尼亚语格鲁吉亚语还包括中文日文韩文这样的象形文字 UCS 还包括大量的图形印刷数学科学符号

名字与组合字符bull UCS 不仅给每个字符分配一个代码而且赋予了

一个正式的名字表示一个 UCS 或 Unicode值的十六进制数通常在前面加上ldquo U+rdquo 例如ldquo U+0041rdquo代表字符ldquo Ardquo

bull UCS里有些编码点分配给了组合字符组合字符机制允许在任何字符后加上重音符或其他指示标记 这在科学符号中特别有用 比如数学方程式和国际音标字母 可能会需要在一个基本字符后组合上一个或多个指示标记

实现级别bull 并不是所有的系统都需要支持像组合字符这样的的先进

机制因此 ISO 10646 指定了如下三种实现级别ndash 级别 1不支持组合字符和韩语 Hangul Jamo 字符 ( 一种特

别的 更加复杂的韩国文的编码 使用两个或三个子字符来编码一个韩文音节 )

ndash 级别 2类似于级别 1 但在某些文字中允许一列固定的组合字符 (例如 希伯来文 阿拉伯文 Devangari 孟加拉语 果鲁穆奇语 Gujarati Oriya 泰米尔语 Telugo 印 埃纳德语 Malayalam 泰国语和老挝语 ) 因为如果没有最起码的几个组合字符 UCS就不能完整地表达这些语言

ndash 级别 3支持所有的 UCS 字符如可以在任意一个字符上加上一个箭头或 和一个 tilde(颚化符号即字母上面的~ )

编码方式bull UCS 有如下两种编码方式

ndash UCS-2与 Unicode 的 2 字节编码基本一样ndash UCS-4 4 字节编码目前是在 UCS-2 前加

上 2 个全零的字节bull UCS 还有 UTF 编码方式参见下面第 4小节ldquo 4 UTFrdquo

3 Unicode 与 ISOIEC 10646bull 关系

ndash 历史上存在两个独立的尝试创立单一字符集的组织即国际标准化组织( ISO )和多语言软件制造商组成的统一码协会组织( Unicodeorg )前者开发的 ISO 10646项目后者开发的 Unicode项目因此最初制定了不同的标准

ndash 1991年前后两个项目的参与者都认识到世界不需要两个不兼容的字符集于是它们开始合并双方的工作成果并为创立一个单一编码表而协同工作

ndash 从 Unicode20开始 Unicode采用了与 ISO 10646-1相同的字库和字码 ISO 也承诺 ISO10646 将不会替超出 U+10FFFF 的 UCS-4 编码赋值以使得两者保持一致

ndash 两个项目仍都存在并独立地公布各自的标准但 Unicode协会和 ISOIEC JTC1SC2 都同意保持两者标准的码表兼容并紧密地共同调整任何未来的扩展

异同bull Unicode协会公布的 Unicode 标准包含了 ISO 10646-1 实现级别

3 的基本多文种平面在两个标准里所有的字符都在相同的位置并且有相同的名字

bull ISO 10646 标准就像 ISO 8859 标准一样只不过是一个简单的字符集表它定义了一些编码的别名指定了一些与标准有关的术语并包括了规范说明指定了怎样使用 UCS连接其他 ISO 标准的实现等

bull Unicode 标准额外定义了许多与字符有关的语义符号学并详细说明了绘制某些语言(如阿拉伯语)表达形式的算法处理双向文字(比如拉丁文和希伯来文的混合文字)的算法排序与字符串比较所需的算法等等

bull 考虑到 Unicode 标准有一个易记的名字既便宜又包括更多的辅助信息因而它使用得更广泛然而

bull 一般认为用于打印 ISO 10646-1 标准的字体在某些方面的质量要高于用于打印 Unicode 20 的专业字体设计者总是被建议说要两个标准都实现但一些提供的样例字形有显著的区别 ISO 10646-1 标准同样使用四种不同的风格变体来显示表意文字如中文日文和韩文 (CJK) 而 Unicode 20 的表里只有中文的变体

4 UTFbull Unicode 和 UCS 都是一个字符集可以看作为内码bull UTF ( UnicodeUCS Transformation Format 统一码

通用字符集转换格式)是一种编码方式它的出现是因为 Unicode 和 UCS 不适宜在某些场合直接传输和处理

bull UCS 和 Unicode 只是分配整数给字符的编码表现在存在好几种将一串字符表示为一串字节的方法(如高或低位字节在前)

bull 最显而易见的两种方法是将 UCS 和 Unicode 文本存储为 2 个 或 4 个字节序列的串这两种方法的正式名称分别为 UCS-2 和 UCS-4

bull 常用的 UTF具体编码方式有 UTF-8 UTF-16 和 UTF-32

UTF-8

bull UTF-8 是 UTF 的一种具体编码方式在 ISO 10646-1 的附录 R 和 IETF 的 RFC 2279 里定义

bull 由于要使文档中的文字与 ASCII兼容故 UTF-8 选择了使用可变长度字节来储存 Unicode 和 UCS 例如ndash ASCII 字母继续使用 1 字节储存ndash 重音文字希腊字母或西里尔字母等使用 2 字节来储存ndash 常用的汉字就要使用 3 字节ndash 辅助平面字符则使用 4 字节ndash 即 ASCII 不作变换其他字符做变长编码每个字符 1~4 字节

bull UTF-8 通常作为外码bull 在 UTF-8 文件的开首很多时都放置一个 U+FEFF 字符

(UTF-8 以 EF BB BF 代表 ) 以显示这个文字档案是以UTF-8 编码

UTF-8 的优点bull 与 CPU 字节顺序无关可以在不同平台之间交流

bull 容错能力高任何一个字节损坏后最多只会导致一个编码码位损失不会链锁错误 ( 如 GB 码错一个字节就会整行乱码 )

UTF-8 的缺点bull UTF-8 使用可变长度字节储存使计算机程序设计变得复杂 (故此在计算机程序或操作系统内部多采用 UCS-2 编码 )

bull 在旧式的中文日文及朝鲜文编码之中每字符都使用 2 字节储存而 UTF-8 须使用 3 字节 (采用 UTF-16 编码则可只使用 2字节储存 )

bull 泰语以往使用的 ISO 8859-11 每字符只使用 1 字节储存而 UTF-8 须使用 3 字节

UTF-8储存的多字节串字符bull U-00000000 - U-0000007F 0xxxxxxx bull U-00000080 - U-000007FF 110xxxxx 10xxxxxx

bull U-00000800 - U-0000FFFF 1110xxxx 10xxxxxx

10xxxxxx bull U-00010000 - U-001FFFFF 11110xxx 10xxxxx

x 10xxxxxx 10xxxxxx bull 在多字节串中第一个字节的开头ldquo 1rdquo 的数目就

是整个串中字节的数目bull 每个使用 UTF-8储存的字符除了第一个字节外其余字节的头两个位元都是以 10 开始使文字处理器能够较快地找出每个字符的开始位置

UTF-16bull UTF-16 是 UTF 的另一种具体编码方式在 ISO 1064

6-1 的附录 Q 和 IETF 的 RFC 2781 里定义bull UTF-16 是变长码( 2 或 4 字节)大致相当于 20位编码值在 0 到 0x10FFFF 之间基本上就是 Unicode 编码的实现 UTF-16 与 CPU 字序有关但因为最省空间常作为网络传输的外码 UTF-16 是 Unicode 的完美编码

bull lt0x10000 的直接用其对应的 16位整数编码位于 0x10000 ~ 0x10FFFF 之间的用 0xD800~0xDBFF 的 16位整数后跟 0xDC00~0xDFFF 的 16位整数的 4 字节编码 gt 0x10FFFF 的不能用 UTF-16 表示

bull 在 Unicode 的 BMP 中定义的字符(无论是拉丁字母汉字或其他文字或符号)一律使用 2 字节存储而在辅助平面定义的字符则以两个 2 字节的值来存储

UTF-16 的特点bull UTF-16比起 UTF-8 的好处在于大部分字符都以固定长

度的 2 字节存储但 UTF-16却无法相容于 ASCII 编码bull UTF-16 有两种编码模式即大尾序( big Endian 高位字节在前)和小尾序( little Endian 高位字节在后)储存形式(一般來說以 Macintosh 制作和存储的文字使用大尾序格式以 Microsoft 或 Linux 制作和存储的文字使用小尾序格式)

bull 为了弄区分 UTF-16 文件的大小尾序在 UTF-16 文件的开头都会放置一个 U+FEFF 字符作为字节顺序标记 (UTF-16LE 以 FF FE代表 UTF-16BE 以 FE FF代表 ) 以显示该文档是以 UTF-16 编码的

UTF-32

bull UTF-32 仅使用了 Unicode范围 (0 到 0x10FFFF) 的 32位编码相当于 UCS-4 的子集

bull 由于 Unicode 和 ISOIEC 10646 的编码和结构与前面讲过的 GB 13000 类似或等价这里就不再做详细的介绍

5支持bull 现在 UnicodeUCS 已经获得了十分广泛的支

持ndash网络与浏览器(如 HTML 4050 XML 与 IE

Safari Netscape Firefox Chrome Opera Edge 等)

ndash操作系统(如 Windows NT2000XPVista7810 Mac OS X iOS Android和 Linux )

ndash 编程语言新版本(如 CC++JavaObjective-CC Swift 等)

Unicode 代码的浏览器显示代码 字符标准名称 (英语 )

浏览器的显示

amp65 大写拉丁字母 A A

amp223 小写拉丁字母 Sharp S szlig

amp254 小写拉丁字母 Thorn thorn

amp916 大写希腊字母 Delta Δ

amp1049 大写斯拉夫字母 Short I Й

amp1511 希伯来字母 Qof ק

amp1605 阿拉伯字母 Meem م

amp3671 泰文数字 7 ๗amp4688 埃塞俄比亚音节文字 Qha ቐ

amp12354 日语平假名 A あamp12450 日语片假名 A アamp21494 简体汉字 叶 叶amp33865 繁体汉字 葉 葉amp50685 韩国音节文字 Yeob 엽

23 文字输出bull 文字输出是指将计算机内的字符编码通过计算机的输出设备(如显示器打印机喇叭)展现出所对应字符的图形或声音供人们阅读或聆听

bull 本节主要介绍文字图示输出的字形技术bull 文字声音输出属于语音合成只在本节的末尾作简单的介绍

231 字形技术bull 文字 = 图形bull 不论是象形文字中的单字还是拼音文字

中的字母都是用图形来表示的bull 在计算机里文字的表示 输出(显示和打

印)涉及ndash 字型ndash 字体ndash 字库

1字型bull 字型指构造和生成字形的方法一般可分为

ndash 点阵字 DOS 显卡 ROM 金山 科印特点似位图显示快占空间(字库大)放大后有马赛克效应

bull 显示字母 88 汉字 1616bull 打印 2424 4848 6464

ndash 矢量字单线条用于笔式绘图仪特点字库小算法简单难看

ndash 轮廓字用曲线描绘字的轮廓输出效果好所见即所得(WYSWYG) 可无级放大易实现空心 阴影 填充 变形等各种特效功能轮廓曲线一般采用样条曲线如 TrueType (Apple 1991 Mac OS Microsoft 1992 Windows 31)用的是二次 B 样条 Bezier曲线中文之星 RichWin采用的是三次 B 样条 Bezier曲线

字型种类

2字体bull 字体指字的形状风格如

ndash 汉字的

ndash 英文的

宋体楷体黑体仿宋

行楷隶书新魏幼圆

Times New Roman Arial Narrow Courier New

常用汉字字体bull 宋体mdashmdash宋体来自于北宋时雕版刻书所采用的欧体字(唐朝欧阳询体)宋体字的横顿拉捺挑钩别具特色间架平正疏密适中字体秀丽遒劲但笔画横细竖粗适合于刀刻不宜于手写现在宋体广泛用于印刷常来表现文档的正文

bull 仿宋体mdashmdash 1920年钱塘的丁辅之与丁善之等人将明代以后盛行的方廓形字体加以改造创造出长形和方形的聚珍仿宋后来演化为现在的仿宋体仿宋体比较接近于手写体为宋体和楷体的折中是采用的宋体的结构和楷体的笔法而成现常来表现打印文件以及文档的摘要和注释等

bull 黑体mdashmdash黑体是适应工艺美术的发展而出现的一种等线体是从日本引进的黑体的结构与宋体没有什么差别只是其笔画粗细一致健实粗壮主要用于文档的标题和重点及标语广告等方面

bull 楷体mdashmdash楷体源于楷书楷体的笔画圆浑笔调灵活结构端正美观但不宜于木板雕刻所以直到清末西洋的石板印刷术传入后才开始广泛用于印刷现代的楷体创造于 20世纪的二三十年代主要用于文档的正文(多用于中小学教材)也可用于工艺美术等方面

3字库bull 字库为一种文字的某一字体的所有字符的集合一般存放在一个磁盘文件中

bull 由于象形文字中单字的数量大(成千上万)而拼音文字中字母的数量小(不到一百个)所以字库的大小有很大的差别

bull 为了使文档界面丰富多彩常见的字处理软件都支持多种字体带有众多字库

4点阵字型的国家标准bull 我国已经公布了若干字体的点阵字型之国家标准

ndash GB 50071-19852001 信息技术 汉字编码字符集(基本集) 24 点阵字型

ndash GB 50072-19852001 信息技术 汉字编码字符集(辅助集) 24 点阵字型

ndash GB 5199-19862001 信息技术 汉字编码字符集(基本集) 16 点阵字型 宋体

ndash GB 6345-19862001 信息技术 汉字编码字符集(基本集) 32 点阵字型 宋体

ndash GB 12041-2001 信息技术 汉字编码字符集(基本集) 48点阵字型 宋体

ndash GB 17698-1999 信息技术 通用多八位编码字符集( I 区) 汉字 16 点阵字型

232 语音合成bull 文字的声音输出主要使用的是语音合成的技术bull 语音合成功能是ldquo文rarr语rdquo转换bull 文语转换 TTS (Text-To-Speech) 是将文本形式的信息转换成自然语音的一种技术其最终目标是使计算机输出清晰而又自然的声音

bull 英语的语音合成在上世纪 80年代就早已成熟而中文 汉语的合成现在也趋于成熟并有了广泛的应用(如汽车导航仪智能手机等)

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 25: 第一篇  媒体

3扩展 ASCII 显示字符bull ( 1 ) IBM PC

ndash IBM PC 的扩展 ASCII 显示字符由 IBM公司为其 PC 机制定可以由原始的 IBM PC 显示器在 DOS状态下显示

bull ( 2 ) Microsoft Windows ndash Microsoft Windows 的扩展 ASCII 显示字符由

微软公司为其Windows操作系统制定可以在Windows环境的西文状态下被显示

IBM PC 的扩展 ASCII 显示字符表

Microsoft Windows 的扩展 ASCII 显示字符表

222 中文编码bull 1 GB 1988 与 GB 2311

bull 2 GB 2312

bull 3汉字编码的辅助集bull 4 Big5

bull 5少数民族文字编码bull 6 GB 13000

bull 7 GBK 与 GB 18030

汉字编码bull 为了计算机处理汉字必须先对汉字进行编码由于汉

字数量大(《康熙字典》收字 47 035 个《汉语大字典》收字 54 678 个据统计在形成楷体后出现的汉字约有 9万个左右)显然不能像 ASCII那样用 7位或单字节来进行编码至少需要两个字节(最多可表示 6万5千多个字符)

bull 1980年我国制定了著名的 GB 2312-80双字节汉字编码标准(其中 GB 为ldquo国标rdquo这两个汉字的拼音首字母)收汉字 6 763 个

bull 1993年底又推出了等同于国际通用字符编码标准 ISOIEC 106461-1993 的国家标准 GB 130001-93 收汉字 20 902 个

bull 由于 GB 13000 与 GB 2312 的编码不兼容作为过渡2000年又公布了 GB 18030-2000 ( GBK )收汉字2万 7千个

1 GB 1988 与 GB 2311

bull 为了能够同时表示和处理汉字和英文实现中外文混排汉字编码必须兼容通用的 ASCII 编码因此1980年我国制定了与国际标准 ISO 6461972 (即ASCII )对应的国家标准 GB 1988-80《信息处理交换用的七位编码字符集》

bull 汉字成千上万不可能像 ASCII 一样只用单字节的七位来表示必须扩展到八位和多字节但是不能随意扩充而应该符合国际规范因此我国于 1980年又制定了与七位代码扩充到八位编码的国际标准 ISO 2022兼容的国家标准 GB 2311-80《信息处理交换用七位编码字符集的扩充办法》

GB 1988-80 ( ASCII )的代码结构图

行 0 1 2 3 4 5 6 7

0 SP

1 helliphellip

15

16

32个

控制符

94个

图形字符

DEL

GB 2311-80 的八位编码结构图列

行 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0 SP 100

1

helliphellip

14

15

C0

32个

控制符

GL

94或 96个

图形字符

DEL

C1

32个

控制符

GR

94或 96个

图形字符

1515

2 GB 2312

bull GB 2312-80《信息交换用汉字编码字符集 middot基本集》是我国制定的一个使用最广泛的汉字编码的强制性国家标准由原第四机械工业部的华北计算机研究所(后改名为电子工业部第十五研究所)起草1980年批准 1981年 5月 1日起实施

bull GB 2312-80 是在已有的国家标准 GB 1988-80(对应于 ISO 646 )和 GB 2311-80 (对应于 ISO 2022 )的基础上制定的采用与 ISO 2022兼容的GB 2311 之 7位到八位的代码扩充办法用双字节编码表示汉字与 ASCII兼容

收录的字符bull GB 2312 对应的是汉字的基本集共收汉字 6 763 个

可达到 9999 的使用频率因此除了极少数生僻的人名地名和古文外 GB 2312 中的汉字已经能基本满足平时的使用了

bull 除了汉字外 GB 2312 还收录了 682 个非汉字图形符号包括 202 个一般符号(含间隔符标点运算符和制表符) 60 个序号符 22 个数字符 52 个英文字母 169 个日文假名 48 个希腊字母 66 个俄文字母 26 个汉语拼音符号和 37 个汉语注音字母

bull 所以在 GB 2312-80 标准中共收录了( 6 763 汉字 + 682 非汉字图符 = ) 7 445 图形字符

两级汉字bull GB 2312 将其收录的六千多个汉字分成两个级别bull 一级汉字有 3 755 个都为使用频率高的常用汉

字为便于检索像字典那样将这些汉字按拼音字母顺序排列(同音字再按笔顺的横竖撇捺点折序排列)

bull 二级汉字有 3 008 个大部分较生僻不易掌握读音所以按部首顺序排列(同部首的字按笔画数排列同笔画数的字再按笔顺排列)

编码方案bull GB 2312 对所有图形字符(包括汉字和非汉字图符)都采用两个字节表示每个字节的低七位用于编码最高位全为 1 这样可以兼容 ASCII 编码(字节的最高位全为 0 )

bull 虽然在一个字节中最高位为 1 的符号位置有 128 个但从前面 GB 2311 的分析可知为了与 ASCII 的代码结构兼容保留了( 32 + 2 = ) 34 个控制符位置最后只有( 128 ndash 34 = ) 94 个符号位可供图形字符编码使用

bull 图形字符在代码表中的位置用区位码表示将码表分成94 个区对应于编码的第一个字节取值 0x21~0x7E 每个区又分成 94 个位对应于编码的第二个字节取值 0x21~0x7E (参见表 2-6 )

bull 例如ldquo中山大学rdquo的编码为中 (0xD6D0) 山 (0xC9BD) 大 (0xB4F3) 学 (0xD1A7)

GB 2312-80 字符集结构 20 21 22 helliphellip 7D 7E 7F

位号

区号

1 2 helliphellip 93 94

20

21~29 1~9 非汉字图符(682个)

2A~2F 10~15 空白区

30~57 16~55 一级汉字(3 755个)

58~77 56~87 二级汉字(3 008个)

78~7E 88~94 空白区

7F

第 1 区的部分非汉字图符

1区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 middot ˉ ˇ uml 々 mdash ~ hellip lsquo rsquo ldquo

17~32 rdquo 〔 〕 〈 〉 《 》 「 」 『 』 〖 〗 【 】 plusmn

33~48 times divide ∶ and or sum prod cup cap isin ∷ radic perp ∥ ang

49~64 ⊙ int ∮ equiv ≌ asymp ∽ prop ne ltu gtu le ge infin ∵ there4

65~80 deg prime Prime $ curren ¢ £ permil sect

81~94 rarr larr uarr darr

第 16 区的部分一级汉字

16区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 啊 阿 埃 挨 哎 唉 哀 皑 癌 蔼 矮 艾 碍 爱 隘 鞍

17~32 氨 安 俺 按 暗 岸 胺 案 肮 昂 盎 凹 敖 熬 翱 袄

33~48 傲 奥 懊 澳 芭 捌 扒 叭 吧 笆 八 疤 巴 拔 跋 靶

49~64 把 耙 坝 霸 罢 爸 白 柏 百 摆 佰 败 拜 稗 斑 班

65~80 搬 扳 般 颁 板 版 扮 拌 伴 瓣 半 办 绊 邦 帮 梆

81~94 榜 膀 绑 棒 磅 蚌 镑 傍 谤 苞 胞 包 褒 剥

第 56 区的部分二级汉字

56区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 亍 丌 兀 丐 廿 卅 丕 亘 丞 鬲 孬 噩 丨 禺 丿 匕

17~32 乇 夭 爻 卮 氐 囟 胤 馗 毓 睾 鼗 丶 亟 鼐 乜 乩

33~48 亓 芈 孛 啬 嘏 仄 厍 厝 厣 厥 厮 靥 赝 匚 叵 匦

49~64 匮 匾 赜 卦 卣 刂 刈 刎 刭 刳 刿 剀 剌 剞 剡 剜

65~80 蒯 剽 劂 劁 劐 劓 冂 罔 亻 仃 仉 仂 仨 仡 仫 仞

81~94 伛 仳 伢 佤 仵 伥 伧 伉 伫 佞 佧 攸 佚 佝

3汉字编码的辅助集bull 除了GB 2312基本集的 6 763 个简体汉字外国家标

准还给出了汉字编码字符集的多个辅助集bull 第二 四辅助集分别增加了 7 237 7 039 个简体汉字bull 第一和三 五辅助集则分别是与基本集和第二 四辅助集所对应的繁体汉字字符集的国家标准

bull 基本集加上辅助集共有 21 039 个简体汉字和 21 142个繁体汉字

bull 繁体汉字之所以多一些是因为在第一辅助集中有时几个繁体字对应一个简体字因此比基本集多出 103 个汉字

bull 基本集和辅助集的代码页之间靠其编码字节的最高位来区分

编码字符的分页标志

双字节汉字编码的页面结构第二字节 列号

行号 0 middot middot middot 32 33 34 helliphellip 125 126 127 128middot middot 160 161 162 helliphellip 254 255 0 middot middot 32

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

33 34 middot middot middot 126

1 2 middot middot middot 94

第四五辅助集 (7 039个汉字)

127

(兼容ASCII)

128 middot middot 160

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

161 162 middot middot middot 254

1 2 middot middot middot 94

第二三辅助集 (7 237个汉字)

1 2 middot middot middot 94

基本集第一辅助集 (6 763 6 866个汉字) (682个非汉字图符)

第一字节

255

4 Big5

bull 除了中国大陆使用的简体汉字外在台湾香港澳门和海外华侨社区使用的是传统的繁体汉字

bull 简体汉字使用 GB (国标)系列编码标准bull 繁体汉字一般使用的是 Big5内码(大五码)即台湾的ldquo资讯工业策进会rdquo发布的《标准交换码 (Ⅲ码 )》收录汉字 13 053 个

bull Big5内码是 1984年由台湾财团法人资讯工业策进会与宏碁 (Acer) 神通 (MiTAC) 佳佳零壹 (Zero One) 大众 (FIC) 等五大软件公司联合推出故称为大五码

BIG5 的代码空间低位字节

00 hellip 3F 40 hellip 7E 7F hellip A0 A1 hellip FE FF

高位字节

00middot

80

81middot

A0用户定义区 用户定义区

A1A2A3

非汉字图符 非汉字图符

A4middot

C6常用汉字 常用汉字

C7C8

用户定义区 用户定义区

C9middot

F9次常用汉字 次常用汉字

FAmiddot

FE用户定义区 用户定义区

FF

5少数民族文字编码bull 中国共有 56 个民族除了汉回满族一般使用汉语外其他少数民族大多有自己的民族语言

bull 我国各民族使用的 50 多种文字可以分为字母式结构文字和非字母式结构文字两大类ndash 字母式结构的有拉丁文斯拉夫文蒙古文维吾尔文哈萨克文藏文和朝鲜文等字母式

ndash 非字母式结构的有汉字象形文字图画文字和音节文字等bull 各民族文字的书写方向也有不同

ndash 壮文藏文朝鲜文彝文等的字从左到右行从上到下ndash 维吾尔文哈萨克文和柯尔克孜文等的字从右到左行从上

到下ndash 蒙古文和满文的字从上到下行从左到右ndash 汉字的书写方向有两种

bull 大陆的简体汉字的字从左到右行从上到下bull 港台与古旧书的繁体汉字的字从上到下行从右到左

国家标准bull 下面按发布时间列出若干已经公布的我国少数民族文字

编码集的国家标准(这些字符集一般分成两类对字母式结构文字采用八位编码对非字母式结构文字采用双字节编码)ndash GB 8045-87《信息处理交换用蒙古文七位和八位编码图形字

符集》收 82 个蒙古文字母和 12 个其他符号共 94 个字符ndash GB 12050-89《信息处理交换用维吾尔文编码图形字符集》收 32 个维吾尔文字母一个维吾尔文复合字符和 37 个其他符号共 70 个字符

ndash GB 12052-89《信息交换用朝鲜文编码字符集》收 5297 个朝鲜文字和 682 个其他符号(与 GB 2132同)共 5 979 个字符

ndash GB 13134-91《信息交换用彝文编码字符集》收 1165 个彝文字符和 688 个其他符号共 1853 个字符

ndash GB 16959-1997《信息技术 信息交换用藏文编码字符集 基本集》收 41 个藏文字母 36 个藏文主字 13 个元音字符12 个语音字符 10 个藏文数字 10 个半值符一个控制用连接符和 46 个其他藏文图形符号共 169 个字符

6 GB 13000bull GB 13000 是与 ISOIEC 10646 等价的国际通用编码字符集标准收汉字 2万多个但是与 GB 2312 和 GBK 不兼容

bull 1993年 5月 ISO 与 IEC 联合推出了可用于世界各种文字的通用编码字符集的国际标准的第 1部分ndash ISOIEC 10646-11993 Information technology -- Universal Multiple-Octe

t Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane (信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

ndash 该标准收字符 96万个几乎涵盖世界上的所有文字其中包含汉字 21 003 个

bull 1993年底我国推出了等同于国际标准 ISOIEC 1064611993 的强制性国家标准 ndash GB 130001-93《信息技术 通用多八位编码字符集( UCS ) 第一部分

体系结构与基本多文种平面》ndash 该标准于 1993年 12月 24日被国家技术监督局批准 1994年 8月 1日起实施

GB 13000 的主要特点

bull 世界各语言文种字符统一编码避免冲突便于国际交流

bull 编码空间宽阔连续每个图形字符的编码唯一(一字一码)不再存在兼容性问题

bull 按文种而不是按语言编码避免重复和浪费(如中日韩汉字的统一编码 CJK )

bull 与 GB 2312 和 GBK 不兼容

体系结构bull UCS 的体系结构是基于所谓ldquo多八位rdquo的而ldquo八位rdquo就是一个字节ldquo多八位rdquo就是多个字节

bull UCS采用 4 个字节来表征组面行位的四维空间bull 整个 UCS空间包含 128 个组( 0x00组 ~0x7F组)每组有 256 个平面( 0x00 平面 ~0xFF 平面)每个平面有 256 行每行又由 256 个字位构成

bull UCS共有( 128 times 256 = ) 32 768 个平面每个平面有( 256 times 256 = ) 65 536 个字位每个字位对应于一个字符的编码

bull 目前的编码只限于 00组已经定义的平面有 00组的00 平面mdashmdash称之为基本多文种平面 BMP ( Basic Multilingual Plane ) 及若干辅助平面

UCS 的全部编码空间

每个平面256times256 个

字位

00组 00 平面

00组 FF 平面

01组 00 平面

7F组 00 平面00

01组

7F组

UCS 的 00组

BMPbull BMP = Basic Multilingual Plane 基本多文种平面bull BMP 用作双八位编码字符集称之为 UCS-2 它被

分成四个区ndash A- 区(字位 0x0000~0x4DFF 有 19 903 个字位)用于

字母文字音节文字以及各种符号ndash I- 区(字位 0x4E00~0x9FFF 共 20 992 个字位)用于中日韩统一汉字( CJK )

ndash O- 区(字位 0xA000~0xDFFF 共 16 384 个字位)保留未来标准化用

ndash R- 区(字位 0xE000~0xFFFD 共 8 190 个字位)为 BMP 的限制使用区包括专用字符变形显现形式及兼容字符

BMP总貌

A-区

00~33 拼音文字(见下页)

34~3D 朝鲜文

3E~44 朝鲜文补充 -A

45~4D 朝鲜文补充 -B

I-区 4E~9F CJK统一汉字O-区 A0~DF

R-区

E0~F8 专用区

F9~FA CJK兼容汉字FB 拼音文字变形显现形式

FC~FD 阿拉伯文变形显现形式 -A

FE半形组合用标志

CJK兼容形式

小写变体

阿拉伯文变形显现形式 -B

FF 半形及全形字符 特殊字符

BMP 的0x00~0x33

行字母文字区

00 基本拉丁文 拉丁文-1补充

01 拉丁文扩充-A 拉丁文扩充-B

02 拉丁文扩充-B 国际音标扩充 进格修饰字符

03 组合用发音符 基本希腊文 希腊符号及哥普特文

04 西里尔文

05 美亚尼亚文 希伯来文(基本和扩充)

06 基本阿拉伯文 阿拉伯文扩充

07

08

09 梵文 孟加拉文

0A 锡克教文 古吉拉特文

0B 奥利雅文 泰米尔文

0C 泰卢固文 卡纳达文

0D 德拉维族文

0E 泰文 老挝文

0F

10 格鲁吉亚文

11 朝鲜文字母

12~1D

1E 拉丁文扩充增补

1F 希腊文扩充

20 广义标点 上下标 货币符号 符号组合用区分标志

21 类似字母的符号 数字形式 箭头

22 数学运算符

23 零杂技术用符号

24 控制图符 光学识别符 带括号的字母数字

25 制表符 方块元素 几何图形符

26 零杂符号

27 示意符等

28~2F

30 CJK符号和标点 平假名 片假名

31 注音 朝鲜文兼容字母 CJK零杂字符

32 带括号的CJK字母及月份

33 CJK兼容字符

留作将来标准化用

非图形字符

表示形式bull GB 13000提供了字符编码表示的两种替代使用的形式

ndash 双八位 BMP 形式( UCS-2 )mdashmdash允许使用 BMP 中的字符且每个字符用两个字节表示

ndash 肆八位正则形式( UCS-4 )mdashmdash允许使用 GB 13000 中的全部字符且每个字符用四个字节表示

bull 除了 UCS-24外还有另外两种变形的表示形式ndash UTF-8 (单字节 ~ 多字节)ndash UTF-16 (双字节和 4 字节与 UCS-2 等价)ndash 目前在工业上的实现均为 UTF-16 ( UCS-2 )和 UTF-8ndash UTF = Unicode UCS Transformation Format 统一码 UC

S转换格式bull 关于统一码我们会在下一小节详细介绍

7 GBK 与 GB 18030bull 由于 GB 13000 标准与 GB 2312 标准的字符编码不兼容作为过渡在国家信息技术标准化委员会的主持下制定了与 GB 2312兼容的《汉字内码扩展规范( GBK )》( K 为扩展的ldquo扩rdquo字的拼音首字母)并于 1995年 12月 15日由原国家技术监督局标准司联合原电子工业部科技与质量监督司作为指导性技术规范发布实施

bull 2000年 GBK又被国家标准 GB 18030-2000《信息技术 信息交换用汉字编码字符集 基本集的扩充》所代替该标准收汉字 2万 7千个

bull 与 GB 2312 一样 GB 18030 也为中国的强制性国家标准微软公司的 Windows XPVista78 中文版与苹果公司的 Mac OS X 和 iOS 谷歌公司的 Android (安卓)等操作系统已经全面支持 GBK

GB 18030 的码位范围分布

字节数 码位空间 码位数目

单字节 0x00~0x7F 128

双字节第 1字节 第 2字节

23 9400x81~0xFE

0x40~0x7E 0x80~0xFE

四字节第 1字节 第 2字节 第 3字节 第 4字节

1 587 6000x81~0xFE 0x30~0x39 0x81~0xFE 0x30~0x39

GB 18030的

总体结构图

收录字符bull 单字节部分mdashmdash收录了GBT 11383 的 0x00~0x7F 全部 128 个字符(似 ASCI

I )bull 双字节部分mdashmdash收录内容如下 (21 003 个汉字和 884 个符号共 21 887 个字符 )

ndash GB 130001-93 的全部 CJK 统一汉字字符 20 902 个( GB 2312 的编码汉字在双字节 2 区其他 CJK 统一汉字在双字节 34 区)

ndash GB 130001-93 的 CJK兼容区挑选出来的 21 个汉字ldquo郎凉秊helliphellip﨨﨩rdquo( 0xFD9C~0xFDA0 和 0xFE40~0xFE4F )

ndash GB 130001-93 中收录而 GB 2312未收录的台湾地区使用的图形字符 139 个ldquoˊˋ˙helliphelliprdquo( 0xA840~0xA895 和 0xA940~0XA988 )

ndash GB 130001-93收录的其他字符 31 ( 13)个(在双字节 5 区)ndash GB 2312-80 中的非汉字字符 682 个( 0xA1A1~0xA9EF )ndash GB 12345-90 的竖排标点符号 19 ( 29)个ldquo︵︶︹helliphellip︳︴rdquo( 0xA6D9~0xA6

F5 )ndash GB 2312-80未收录的 10 个小写罗马数字ldquoⅰⅱⅲhelliphellipⅸⅹrdquo( 0xA2A1~ 0xA2A

A )ndash GB 2312-80未收录的带音调的汉语拼音字母 5 ( 4)个ldquo ńňǹrdquo 以及 ɑ 和 ɡ ( 0

xA8BB~0xA8C0 )ndash 汉字数字零ldquo〇rdquo (0xA996) 和欧元符ldquoeurordquo (0xA2E3)ndash 表意文字描述符 13 个ldquohelliphelliprdquo( 0xA989~0xA995 )ndash 对 GB 130001-93增补的汉字和部首 构件 80 个ldquohelliphellip䶮rdquo( 0xFE50~ 0x

FEA0 )bull 四字节部分mdashmdash收录了上述双字节字符之外的包括 CJK 统一汉字扩充 A 在内

的 GB 130001-93 中的全部字符

GB 18030双字节部分的码位安排

类别 区名 码位范围 码位数 字符数 内容

符号区双字节 1区 A1A1~A9FE 846 718

GB 2312非汉字字符等

双字节 5区 A840~A9A0 192 166 台湾图符等

汉字区双字节 2区 B0A1~F7FE 6768 6763 GB 2312汉字双字节 3区 8140~A0FE 6080 6080 CJK统一汉字双字节 4区 AA40~FEA0 8160 8160 CJK统一汉字等

用户自定义区双字节用户区 1 AAA1~AFFE 564

用户自定义字符双字节用户区 2 F8A1~FEFE 658

双字节用户区 3 A140~A7A0 672

GB 18030双字节部分的编码空间结构图 尾字节

0x40larr――rarr0x7E 0x80larr――rarr0xA0 0xA1larr――――――――――――rarr0xFE

0x81 uarr darr

0xA0

0xA1 uarr darr

0xA7

0xA8 0xA9

首字节

0xAA uarr | | | | | | | | | | darr

0xFE

双字节 3区

汉字区6 080个码位

双字节用户区 3

用户自定义区672个码位

双字节 5区 图形符号区192个码位

双字节 4区

汉字区8 160个码位

双字节 1区

图形符号区564个码位

双字节 2区

汉字区6 768个码位

双字节用户区 1 用户自定义区564个码位

双字节用户区 2 用户自定义区658个码位

223 国际通用字符编码

bull Unicode (统一码)是由多语言软件制造商组成的统一码协会( httpwwwUnicodeorg)所制定一种国际字符的编码标准

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull 本节主要介绍这两种关系密切的主流国际字符编码标准的来历编码方案各自特点与相互关系

1 Unicode 统一码bull 发展历史

ndash 1987年施乐( Xerox )公司的 Joe Becker 与 Lee Collins 和苹果( Apple )公司的 Mark Davis 等人开始讨论统一编码 1987年 12月 Joe Becker造词 Unicode (统一码)含义为ldquo unique universal and uniform character encodingrdquo (单一通用统一的字符编码) 1989年 2月开始定期召开统一码会议 1989年 9月公布 Unicode草案

ndash 1991年 1月 3 日由 Xerox Apple Sun IBM Aldis Microsoft 等公司出资在美国加州成立了统一码协会( Unicode Consortium )并由协会设立非盈利性的统一码公司( Unicode Inc )后来 HP Adobe Borland Digital Lotus Novell 等公司也纷纷加入 1991年 1月成立统一码技术委员会 UTC 并制定了其规程

ndash 1991年 2月在 Ed Hart 的推动下进行了ldquo统一码对 10464 国际标准草案 1rdquo 的对话Unicode 与 ISOIEC 10646开始走向融合

ndash 1991年 8月发布 Unicode 标准 10版的第 1卷(体系结构非表意字符) 1992年6月发表 Unicode 10版的第 2卷(表意字符) 1993年 6月发布 Unicode 11版与 1993年 5月公布的 ISOIEC 10646-11993 实现了合并

ndash 1996年 7月发布 Unicode 20版ndash 1999年 9月发布 Unicode 30版ndash 2003年 4月发布 Unicode 40版(对应于 ISOIEC 106462003 ) 2004年 3月 31日发布 Unicode 401版 2005年 3月 31日发布 Unicode 410版

ndash 2006年 7月 14日发布 Unicode 50版 2008年 4月 4日发布 Unicode 51版 2009年 12月 22日发布 Unicode 52版

ndash 2010年 10月发布 Unicode 60版 2012年 1月发布 Unicode 61版(对应于 ISOIEC 106462012 ) 2012年 9月推出 Unicode 62版 2013年 9月推出 Unicode 63版

ndash 2014年 6月 16日发布 Unicode 70版 ndash 2015年 6月 17日发布 Unicode 80版

字符集bull Unicode 字符集的空间分成双字节的基本多语言平面 (Basic Multilingual Pla

ne BMP) 和 4 字节的辅助多语言平面 (Supplementary Multilingual Plane SMP) 两种

bull BMPndash Unicode 的基本平面或基本多语言平面 BMP 对应于 ISOIEC 10646-1 的第 00组的 00 平面( BMP )即 Unicode 与 ISOIEC 10646 的 BMP 中的字符编码完全一致

bull SMPndash 鉴于 Unicode 原有的 16位元空间不足以应用从 Unicode 31版本开始设立了 16 个辅助平面使 Unicode 的可使用空间由六万多字增至约一百万字

ndash 原有的 Unicode双字节空间称为基本平面或基本多语言平面 BMP 辅助多语言平面 SMP 字符要用 4 字节来储存

ndash 第一辅助平面摆放拼音文字(主要为现时已不再使用的文字)及符号范围在 U+10000 - U+1FFFD

ndash 第二辅助平面又称为表意文字补充平面 (Supplementary Ideographic Plane 简称 SIP) 现时摆放ldquo中日韩统汉字扩展 B 区rdquo共 43253 个汉字范围在 U+20000 - U+2FFFD

ndash 第三至十三辅助平面尚未使用ndash 第十四辅助平面又称为特殊用途补充平面 (Supplementary Special-purpose Pl

ane 简称 SSP) 摆放 Language tags 和 Variation Selectors 它们都是控制字符范围在 U+E0000 - U+E01FF

ndash 第十五至十六辅助平面都是私人使用区它们的范围是 U+F0000 - U+FFFFD 及 U+100000 - U+1000FD

bull Unicode 字符集的具体编码方式参加第 4小节ldquo 4 UTFrdquo

2 ISOIEC 10646

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull ISOIEC 10646 标准由 ISO 与 IEC 联合成立的 ISOIEC JTC1SC2WG2 制定ndash JTC 1 ( Joint Technical Committee 1 on Information

technology ISOIEC信息技术联合技术委员会 1 )负责信息技术方面标准的制定工作

ndash SC 2 ( SubCommittee 2 on Coded character sets 编码字符集分会 2 )下的 WG 2 ( Working Group 2 on Universal coded character set 通用编码字符集工作组 2 )负责制定国际通用字符编码标准即后来公布的 ISOIEC 10646

发展历史bull 1984年 ISO 的一些会员国发起制定新的国际字符编码标准同年 4月 ISO

与 IEC 联合成立 ISOIEC JTC1SC2WG2 1987年 3月制定出编码架构1992年 6月投票通过第二版国际标准草案

bull 1993年 5月推出 10646 标准时将内容分成两个部分标准首先发布的是其中的第 1 个部分(体系结构与基本多文种平面)的第 1版( Edition 1 ) ISOIEC 10646-11993 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane(信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

bull 2000年 3月推出 10646 标准第一个部分的第 2版( Edition 2 ) ISOIEC 10646-12000 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane

bull 2001年 10月推出 10646 标准第 2版的第二个部分(辅助平面)的第 1版( Edition 1 ) ISOIEC 10646-22001 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 2 Supplementary Planes

bull 2003年 10月推出的 10646新标准(第 1版 Edition 1 )将老标准中的两个部分标准合并成了一个单一的标准 ISOIEC 106462003 Information technology -- Universal Multiple- Octet Coded Character Set (UCS) 后来又于 2010年 2012年和 2014年分别推出了 ISOIEC 106462010 (第 2版)ISOIEC 106462012 (第 3版)和 ISOIEC 106462014 (第 4版)

UCS 通用字符集bull 通用字符集( Universal Character Set UCS )是

ISOIEC 10646 标准所定义的字符编码方式采用 4字节编码又称为 Universal Multiple-Octet Coded Character Set (通用多八位编码字符集)

bull 通用字符集是所有包括了其他字符集它保证了与其他字符集的双向兼容即如果你将任何文本字符串翻译到 UCS 格式然后再翻译回原编码你不会丢失任何信息

bull UCS 包含了已知语言的所有字符除了拉丁语希腊语斯拉夫语希伯来语阿拉伯语亚美尼亚语格鲁吉亚语还包括中文日文韩文这样的象形文字 UCS 还包括大量的图形印刷数学科学符号

名字与组合字符bull UCS 不仅给每个字符分配一个代码而且赋予了

一个正式的名字表示一个 UCS 或 Unicode值的十六进制数通常在前面加上ldquo U+rdquo 例如ldquo U+0041rdquo代表字符ldquo Ardquo

bull UCS里有些编码点分配给了组合字符组合字符机制允许在任何字符后加上重音符或其他指示标记 这在科学符号中特别有用 比如数学方程式和国际音标字母 可能会需要在一个基本字符后组合上一个或多个指示标记

实现级别bull 并不是所有的系统都需要支持像组合字符这样的的先进

机制因此 ISO 10646 指定了如下三种实现级别ndash 级别 1不支持组合字符和韩语 Hangul Jamo 字符 ( 一种特

别的 更加复杂的韩国文的编码 使用两个或三个子字符来编码一个韩文音节 )

ndash 级别 2类似于级别 1 但在某些文字中允许一列固定的组合字符 (例如 希伯来文 阿拉伯文 Devangari 孟加拉语 果鲁穆奇语 Gujarati Oriya 泰米尔语 Telugo 印 埃纳德语 Malayalam 泰国语和老挝语 ) 因为如果没有最起码的几个组合字符 UCS就不能完整地表达这些语言

ndash 级别 3支持所有的 UCS 字符如可以在任意一个字符上加上一个箭头或 和一个 tilde(颚化符号即字母上面的~ )

编码方式bull UCS 有如下两种编码方式

ndash UCS-2与 Unicode 的 2 字节编码基本一样ndash UCS-4 4 字节编码目前是在 UCS-2 前加

上 2 个全零的字节bull UCS 还有 UTF 编码方式参见下面第 4小节ldquo 4 UTFrdquo

3 Unicode 与 ISOIEC 10646bull 关系

ndash 历史上存在两个独立的尝试创立单一字符集的组织即国际标准化组织( ISO )和多语言软件制造商组成的统一码协会组织( Unicodeorg )前者开发的 ISO 10646项目后者开发的 Unicode项目因此最初制定了不同的标准

ndash 1991年前后两个项目的参与者都认识到世界不需要两个不兼容的字符集于是它们开始合并双方的工作成果并为创立一个单一编码表而协同工作

ndash 从 Unicode20开始 Unicode采用了与 ISO 10646-1相同的字库和字码 ISO 也承诺 ISO10646 将不会替超出 U+10FFFF 的 UCS-4 编码赋值以使得两者保持一致

ndash 两个项目仍都存在并独立地公布各自的标准但 Unicode协会和 ISOIEC JTC1SC2 都同意保持两者标准的码表兼容并紧密地共同调整任何未来的扩展

异同bull Unicode协会公布的 Unicode 标准包含了 ISO 10646-1 实现级别

3 的基本多文种平面在两个标准里所有的字符都在相同的位置并且有相同的名字

bull ISO 10646 标准就像 ISO 8859 标准一样只不过是一个简单的字符集表它定义了一些编码的别名指定了一些与标准有关的术语并包括了规范说明指定了怎样使用 UCS连接其他 ISO 标准的实现等

bull Unicode 标准额外定义了许多与字符有关的语义符号学并详细说明了绘制某些语言(如阿拉伯语)表达形式的算法处理双向文字(比如拉丁文和希伯来文的混合文字)的算法排序与字符串比较所需的算法等等

bull 考虑到 Unicode 标准有一个易记的名字既便宜又包括更多的辅助信息因而它使用得更广泛然而

bull 一般认为用于打印 ISO 10646-1 标准的字体在某些方面的质量要高于用于打印 Unicode 20 的专业字体设计者总是被建议说要两个标准都实现但一些提供的样例字形有显著的区别 ISO 10646-1 标准同样使用四种不同的风格变体来显示表意文字如中文日文和韩文 (CJK) 而 Unicode 20 的表里只有中文的变体

4 UTFbull Unicode 和 UCS 都是一个字符集可以看作为内码bull UTF ( UnicodeUCS Transformation Format 统一码

通用字符集转换格式)是一种编码方式它的出现是因为 Unicode 和 UCS 不适宜在某些场合直接传输和处理

bull UCS 和 Unicode 只是分配整数给字符的编码表现在存在好几种将一串字符表示为一串字节的方法(如高或低位字节在前)

bull 最显而易见的两种方法是将 UCS 和 Unicode 文本存储为 2 个 或 4 个字节序列的串这两种方法的正式名称分别为 UCS-2 和 UCS-4

bull 常用的 UTF具体编码方式有 UTF-8 UTF-16 和 UTF-32

UTF-8

bull UTF-8 是 UTF 的一种具体编码方式在 ISO 10646-1 的附录 R 和 IETF 的 RFC 2279 里定义

bull 由于要使文档中的文字与 ASCII兼容故 UTF-8 选择了使用可变长度字节来储存 Unicode 和 UCS 例如ndash ASCII 字母继续使用 1 字节储存ndash 重音文字希腊字母或西里尔字母等使用 2 字节来储存ndash 常用的汉字就要使用 3 字节ndash 辅助平面字符则使用 4 字节ndash 即 ASCII 不作变换其他字符做变长编码每个字符 1~4 字节

bull UTF-8 通常作为外码bull 在 UTF-8 文件的开首很多时都放置一个 U+FEFF 字符

(UTF-8 以 EF BB BF 代表 ) 以显示这个文字档案是以UTF-8 编码

UTF-8 的优点bull 与 CPU 字节顺序无关可以在不同平台之间交流

bull 容错能力高任何一个字节损坏后最多只会导致一个编码码位损失不会链锁错误 ( 如 GB 码错一个字节就会整行乱码 )

UTF-8 的缺点bull UTF-8 使用可变长度字节储存使计算机程序设计变得复杂 (故此在计算机程序或操作系统内部多采用 UCS-2 编码 )

bull 在旧式的中文日文及朝鲜文编码之中每字符都使用 2 字节储存而 UTF-8 须使用 3 字节 (采用 UTF-16 编码则可只使用 2字节储存 )

bull 泰语以往使用的 ISO 8859-11 每字符只使用 1 字节储存而 UTF-8 须使用 3 字节

UTF-8储存的多字节串字符bull U-00000000 - U-0000007F 0xxxxxxx bull U-00000080 - U-000007FF 110xxxxx 10xxxxxx

bull U-00000800 - U-0000FFFF 1110xxxx 10xxxxxx

10xxxxxx bull U-00010000 - U-001FFFFF 11110xxx 10xxxxx

x 10xxxxxx 10xxxxxx bull 在多字节串中第一个字节的开头ldquo 1rdquo 的数目就

是整个串中字节的数目bull 每个使用 UTF-8储存的字符除了第一个字节外其余字节的头两个位元都是以 10 开始使文字处理器能够较快地找出每个字符的开始位置

UTF-16bull UTF-16 是 UTF 的另一种具体编码方式在 ISO 1064

6-1 的附录 Q 和 IETF 的 RFC 2781 里定义bull UTF-16 是变长码( 2 或 4 字节)大致相当于 20位编码值在 0 到 0x10FFFF 之间基本上就是 Unicode 编码的实现 UTF-16 与 CPU 字序有关但因为最省空间常作为网络传输的外码 UTF-16 是 Unicode 的完美编码

bull lt0x10000 的直接用其对应的 16位整数编码位于 0x10000 ~ 0x10FFFF 之间的用 0xD800~0xDBFF 的 16位整数后跟 0xDC00~0xDFFF 的 16位整数的 4 字节编码 gt 0x10FFFF 的不能用 UTF-16 表示

bull 在 Unicode 的 BMP 中定义的字符(无论是拉丁字母汉字或其他文字或符号)一律使用 2 字节存储而在辅助平面定义的字符则以两个 2 字节的值来存储

UTF-16 的特点bull UTF-16比起 UTF-8 的好处在于大部分字符都以固定长

度的 2 字节存储但 UTF-16却无法相容于 ASCII 编码bull UTF-16 有两种编码模式即大尾序( big Endian 高位字节在前)和小尾序( little Endian 高位字节在后)储存形式(一般來說以 Macintosh 制作和存储的文字使用大尾序格式以 Microsoft 或 Linux 制作和存储的文字使用小尾序格式)

bull 为了弄区分 UTF-16 文件的大小尾序在 UTF-16 文件的开头都会放置一个 U+FEFF 字符作为字节顺序标记 (UTF-16LE 以 FF FE代表 UTF-16BE 以 FE FF代表 ) 以显示该文档是以 UTF-16 编码的

UTF-32

bull UTF-32 仅使用了 Unicode范围 (0 到 0x10FFFF) 的 32位编码相当于 UCS-4 的子集

bull 由于 Unicode 和 ISOIEC 10646 的编码和结构与前面讲过的 GB 13000 类似或等价这里就不再做详细的介绍

5支持bull 现在 UnicodeUCS 已经获得了十分广泛的支

持ndash网络与浏览器(如 HTML 4050 XML 与 IE

Safari Netscape Firefox Chrome Opera Edge 等)

ndash操作系统(如 Windows NT2000XPVista7810 Mac OS X iOS Android和 Linux )

ndash 编程语言新版本(如 CC++JavaObjective-CC Swift 等)

Unicode 代码的浏览器显示代码 字符标准名称 (英语 )

浏览器的显示

amp65 大写拉丁字母 A A

amp223 小写拉丁字母 Sharp S szlig

amp254 小写拉丁字母 Thorn thorn

amp916 大写希腊字母 Delta Δ

amp1049 大写斯拉夫字母 Short I Й

amp1511 希伯来字母 Qof ק

amp1605 阿拉伯字母 Meem م

amp3671 泰文数字 7 ๗amp4688 埃塞俄比亚音节文字 Qha ቐ

amp12354 日语平假名 A あamp12450 日语片假名 A アamp21494 简体汉字 叶 叶amp33865 繁体汉字 葉 葉amp50685 韩国音节文字 Yeob 엽

23 文字输出bull 文字输出是指将计算机内的字符编码通过计算机的输出设备(如显示器打印机喇叭)展现出所对应字符的图形或声音供人们阅读或聆听

bull 本节主要介绍文字图示输出的字形技术bull 文字声音输出属于语音合成只在本节的末尾作简单的介绍

231 字形技术bull 文字 = 图形bull 不论是象形文字中的单字还是拼音文字

中的字母都是用图形来表示的bull 在计算机里文字的表示 输出(显示和打

印)涉及ndash 字型ndash 字体ndash 字库

1字型bull 字型指构造和生成字形的方法一般可分为

ndash 点阵字 DOS 显卡 ROM 金山 科印特点似位图显示快占空间(字库大)放大后有马赛克效应

bull 显示字母 88 汉字 1616bull 打印 2424 4848 6464

ndash 矢量字单线条用于笔式绘图仪特点字库小算法简单难看

ndash 轮廓字用曲线描绘字的轮廓输出效果好所见即所得(WYSWYG) 可无级放大易实现空心 阴影 填充 变形等各种特效功能轮廓曲线一般采用样条曲线如 TrueType (Apple 1991 Mac OS Microsoft 1992 Windows 31)用的是二次 B 样条 Bezier曲线中文之星 RichWin采用的是三次 B 样条 Bezier曲线

字型种类

2字体bull 字体指字的形状风格如

ndash 汉字的

ndash 英文的

宋体楷体黑体仿宋

行楷隶书新魏幼圆

Times New Roman Arial Narrow Courier New

常用汉字字体bull 宋体mdashmdash宋体来自于北宋时雕版刻书所采用的欧体字(唐朝欧阳询体)宋体字的横顿拉捺挑钩别具特色间架平正疏密适中字体秀丽遒劲但笔画横细竖粗适合于刀刻不宜于手写现在宋体广泛用于印刷常来表现文档的正文

bull 仿宋体mdashmdash 1920年钱塘的丁辅之与丁善之等人将明代以后盛行的方廓形字体加以改造创造出长形和方形的聚珍仿宋后来演化为现在的仿宋体仿宋体比较接近于手写体为宋体和楷体的折中是采用的宋体的结构和楷体的笔法而成现常来表现打印文件以及文档的摘要和注释等

bull 黑体mdashmdash黑体是适应工艺美术的发展而出现的一种等线体是从日本引进的黑体的结构与宋体没有什么差别只是其笔画粗细一致健实粗壮主要用于文档的标题和重点及标语广告等方面

bull 楷体mdashmdash楷体源于楷书楷体的笔画圆浑笔调灵活结构端正美观但不宜于木板雕刻所以直到清末西洋的石板印刷术传入后才开始广泛用于印刷现代的楷体创造于 20世纪的二三十年代主要用于文档的正文(多用于中小学教材)也可用于工艺美术等方面

3字库bull 字库为一种文字的某一字体的所有字符的集合一般存放在一个磁盘文件中

bull 由于象形文字中单字的数量大(成千上万)而拼音文字中字母的数量小(不到一百个)所以字库的大小有很大的差别

bull 为了使文档界面丰富多彩常见的字处理软件都支持多种字体带有众多字库

4点阵字型的国家标准bull 我国已经公布了若干字体的点阵字型之国家标准

ndash GB 50071-19852001 信息技术 汉字编码字符集(基本集) 24 点阵字型

ndash GB 50072-19852001 信息技术 汉字编码字符集(辅助集) 24 点阵字型

ndash GB 5199-19862001 信息技术 汉字编码字符集(基本集) 16 点阵字型 宋体

ndash GB 6345-19862001 信息技术 汉字编码字符集(基本集) 32 点阵字型 宋体

ndash GB 12041-2001 信息技术 汉字编码字符集(基本集) 48点阵字型 宋体

ndash GB 17698-1999 信息技术 通用多八位编码字符集( I 区) 汉字 16 点阵字型

232 语音合成bull 文字的声音输出主要使用的是语音合成的技术bull 语音合成功能是ldquo文rarr语rdquo转换bull 文语转换 TTS (Text-To-Speech) 是将文本形式的信息转换成自然语音的一种技术其最终目标是使计算机输出清晰而又自然的声音

bull 英语的语音合成在上世纪 80年代就早已成熟而中文 汉语的合成现在也趋于成熟并有了广泛的应用(如汽车导航仪智能手机等)

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 26: 第一篇  媒体

IBM PC 的扩展 ASCII 显示字符表

Microsoft Windows 的扩展 ASCII 显示字符表

222 中文编码bull 1 GB 1988 与 GB 2311

bull 2 GB 2312

bull 3汉字编码的辅助集bull 4 Big5

bull 5少数民族文字编码bull 6 GB 13000

bull 7 GBK 与 GB 18030

汉字编码bull 为了计算机处理汉字必须先对汉字进行编码由于汉

字数量大(《康熙字典》收字 47 035 个《汉语大字典》收字 54 678 个据统计在形成楷体后出现的汉字约有 9万个左右)显然不能像 ASCII那样用 7位或单字节来进行编码至少需要两个字节(最多可表示 6万5千多个字符)

bull 1980年我国制定了著名的 GB 2312-80双字节汉字编码标准(其中 GB 为ldquo国标rdquo这两个汉字的拼音首字母)收汉字 6 763 个

bull 1993年底又推出了等同于国际通用字符编码标准 ISOIEC 106461-1993 的国家标准 GB 130001-93 收汉字 20 902 个

bull 由于 GB 13000 与 GB 2312 的编码不兼容作为过渡2000年又公布了 GB 18030-2000 ( GBK )收汉字2万 7千个

1 GB 1988 与 GB 2311

bull 为了能够同时表示和处理汉字和英文实现中外文混排汉字编码必须兼容通用的 ASCII 编码因此1980年我国制定了与国际标准 ISO 6461972 (即ASCII )对应的国家标准 GB 1988-80《信息处理交换用的七位编码字符集》

bull 汉字成千上万不可能像 ASCII 一样只用单字节的七位来表示必须扩展到八位和多字节但是不能随意扩充而应该符合国际规范因此我国于 1980年又制定了与七位代码扩充到八位编码的国际标准 ISO 2022兼容的国家标准 GB 2311-80《信息处理交换用七位编码字符集的扩充办法》

GB 1988-80 ( ASCII )的代码结构图

行 0 1 2 3 4 5 6 7

0 SP

1 helliphellip

15

16

32个

控制符

94个

图形字符

DEL

GB 2311-80 的八位编码结构图列

行 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0 SP 100

1

helliphellip

14

15

C0

32个

控制符

GL

94或 96个

图形字符

DEL

C1

32个

控制符

GR

94或 96个

图形字符

1515

2 GB 2312

bull GB 2312-80《信息交换用汉字编码字符集 middot基本集》是我国制定的一个使用最广泛的汉字编码的强制性国家标准由原第四机械工业部的华北计算机研究所(后改名为电子工业部第十五研究所)起草1980年批准 1981年 5月 1日起实施

bull GB 2312-80 是在已有的国家标准 GB 1988-80(对应于 ISO 646 )和 GB 2311-80 (对应于 ISO 2022 )的基础上制定的采用与 ISO 2022兼容的GB 2311 之 7位到八位的代码扩充办法用双字节编码表示汉字与 ASCII兼容

收录的字符bull GB 2312 对应的是汉字的基本集共收汉字 6 763 个

可达到 9999 的使用频率因此除了极少数生僻的人名地名和古文外 GB 2312 中的汉字已经能基本满足平时的使用了

bull 除了汉字外 GB 2312 还收录了 682 个非汉字图形符号包括 202 个一般符号(含间隔符标点运算符和制表符) 60 个序号符 22 个数字符 52 个英文字母 169 个日文假名 48 个希腊字母 66 个俄文字母 26 个汉语拼音符号和 37 个汉语注音字母

bull 所以在 GB 2312-80 标准中共收录了( 6 763 汉字 + 682 非汉字图符 = ) 7 445 图形字符

两级汉字bull GB 2312 将其收录的六千多个汉字分成两个级别bull 一级汉字有 3 755 个都为使用频率高的常用汉

字为便于检索像字典那样将这些汉字按拼音字母顺序排列(同音字再按笔顺的横竖撇捺点折序排列)

bull 二级汉字有 3 008 个大部分较生僻不易掌握读音所以按部首顺序排列(同部首的字按笔画数排列同笔画数的字再按笔顺排列)

编码方案bull GB 2312 对所有图形字符(包括汉字和非汉字图符)都采用两个字节表示每个字节的低七位用于编码最高位全为 1 这样可以兼容 ASCII 编码(字节的最高位全为 0 )

bull 虽然在一个字节中最高位为 1 的符号位置有 128 个但从前面 GB 2311 的分析可知为了与 ASCII 的代码结构兼容保留了( 32 + 2 = ) 34 个控制符位置最后只有( 128 ndash 34 = ) 94 个符号位可供图形字符编码使用

bull 图形字符在代码表中的位置用区位码表示将码表分成94 个区对应于编码的第一个字节取值 0x21~0x7E 每个区又分成 94 个位对应于编码的第二个字节取值 0x21~0x7E (参见表 2-6 )

bull 例如ldquo中山大学rdquo的编码为中 (0xD6D0) 山 (0xC9BD) 大 (0xB4F3) 学 (0xD1A7)

GB 2312-80 字符集结构 20 21 22 helliphellip 7D 7E 7F

位号

区号

1 2 helliphellip 93 94

20

21~29 1~9 非汉字图符(682个)

2A~2F 10~15 空白区

30~57 16~55 一级汉字(3 755个)

58~77 56~87 二级汉字(3 008个)

78~7E 88~94 空白区

7F

第 1 区的部分非汉字图符

1区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 middot ˉ ˇ uml 々 mdash ~ hellip lsquo rsquo ldquo

17~32 rdquo 〔 〕 〈 〉 《 》 「 」 『 』 〖 〗 【 】 plusmn

33~48 times divide ∶ and or sum prod cup cap isin ∷ radic perp ∥ ang

49~64 ⊙ int ∮ equiv ≌ asymp ∽ prop ne ltu gtu le ge infin ∵ there4

65~80 deg prime Prime $ curren ¢ £ permil sect

81~94 rarr larr uarr darr

第 16 区的部分一级汉字

16区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 啊 阿 埃 挨 哎 唉 哀 皑 癌 蔼 矮 艾 碍 爱 隘 鞍

17~32 氨 安 俺 按 暗 岸 胺 案 肮 昂 盎 凹 敖 熬 翱 袄

33~48 傲 奥 懊 澳 芭 捌 扒 叭 吧 笆 八 疤 巴 拔 跋 靶

49~64 把 耙 坝 霸 罢 爸 白 柏 百 摆 佰 败 拜 稗 斑 班

65~80 搬 扳 般 颁 板 版 扮 拌 伴 瓣 半 办 绊 邦 帮 梆

81~94 榜 膀 绑 棒 磅 蚌 镑 傍 谤 苞 胞 包 褒 剥

第 56 区的部分二级汉字

56区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 亍 丌 兀 丐 廿 卅 丕 亘 丞 鬲 孬 噩 丨 禺 丿 匕

17~32 乇 夭 爻 卮 氐 囟 胤 馗 毓 睾 鼗 丶 亟 鼐 乜 乩

33~48 亓 芈 孛 啬 嘏 仄 厍 厝 厣 厥 厮 靥 赝 匚 叵 匦

49~64 匮 匾 赜 卦 卣 刂 刈 刎 刭 刳 刿 剀 剌 剞 剡 剜

65~80 蒯 剽 劂 劁 劐 劓 冂 罔 亻 仃 仉 仂 仨 仡 仫 仞

81~94 伛 仳 伢 佤 仵 伥 伧 伉 伫 佞 佧 攸 佚 佝

3汉字编码的辅助集bull 除了GB 2312基本集的 6 763 个简体汉字外国家标

准还给出了汉字编码字符集的多个辅助集bull 第二 四辅助集分别增加了 7 237 7 039 个简体汉字bull 第一和三 五辅助集则分别是与基本集和第二 四辅助集所对应的繁体汉字字符集的国家标准

bull 基本集加上辅助集共有 21 039 个简体汉字和 21 142个繁体汉字

bull 繁体汉字之所以多一些是因为在第一辅助集中有时几个繁体字对应一个简体字因此比基本集多出 103 个汉字

bull 基本集和辅助集的代码页之间靠其编码字节的最高位来区分

编码字符的分页标志

双字节汉字编码的页面结构第二字节 列号

行号 0 middot middot middot 32 33 34 helliphellip 125 126 127 128middot middot 160 161 162 helliphellip 254 255 0 middot middot 32

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

33 34 middot middot middot 126

1 2 middot middot middot 94

第四五辅助集 (7 039个汉字)

127

(兼容ASCII)

128 middot middot 160

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

161 162 middot middot middot 254

1 2 middot middot middot 94

第二三辅助集 (7 237个汉字)

1 2 middot middot middot 94

基本集第一辅助集 (6 763 6 866个汉字) (682个非汉字图符)

第一字节

255

4 Big5

bull 除了中国大陆使用的简体汉字外在台湾香港澳门和海外华侨社区使用的是传统的繁体汉字

bull 简体汉字使用 GB (国标)系列编码标准bull 繁体汉字一般使用的是 Big5内码(大五码)即台湾的ldquo资讯工业策进会rdquo发布的《标准交换码 (Ⅲ码 )》收录汉字 13 053 个

bull Big5内码是 1984年由台湾财团法人资讯工业策进会与宏碁 (Acer) 神通 (MiTAC) 佳佳零壹 (Zero One) 大众 (FIC) 等五大软件公司联合推出故称为大五码

BIG5 的代码空间低位字节

00 hellip 3F 40 hellip 7E 7F hellip A0 A1 hellip FE FF

高位字节

00middot

80

81middot

A0用户定义区 用户定义区

A1A2A3

非汉字图符 非汉字图符

A4middot

C6常用汉字 常用汉字

C7C8

用户定义区 用户定义区

C9middot

F9次常用汉字 次常用汉字

FAmiddot

FE用户定义区 用户定义区

FF

5少数民族文字编码bull 中国共有 56 个民族除了汉回满族一般使用汉语外其他少数民族大多有自己的民族语言

bull 我国各民族使用的 50 多种文字可以分为字母式结构文字和非字母式结构文字两大类ndash 字母式结构的有拉丁文斯拉夫文蒙古文维吾尔文哈萨克文藏文和朝鲜文等字母式

ndash 非字母式结构的有汉字象形文字图画文字和音节文字等bull 各民族文字的书写方向也有不同

ndash 壮文藏文朝鲜文彝文等的字从左到右行从上到下ndash 维吾尔文哈萨克文和柯尔克孜文等的字从右到左行从上

到下ndash 蒙古文和满文的字从上到下行从左到右ndash 汉字的书写方向有两种

bull 大陆的简体汉字的字从左到右行从上到下bull 港台与古旧书的繁体汉字的字从上到下行从右到左

国家标准bull 下面按发布时间列出若干已经公布的我国少数民族文字

编码集的国家标准(这些字符集一般分成两类对字母式结构文字采用八位编码对非字母式结构文字采用双字节编码)ndash GB 8045-87《信息处理交换用蒙古文七位和八位编码图形字

符集》收 82 个蒙古文字母和 12 个其他符号共 94 个字符ndash GB 12050-89《信息处理交换用维吾尔文编码图形字符集》收 32 个维吾尔文字母一个维吾尔文复合字符和 37 个其他符号共 70 个字符

ndash GB 12052-89《信息交换用朝鲜文编码字符集》收 5297 个朝鲜文字和 682 个其他符号(与 GB 2132同)共 5 979 个字符

ndash GB 13134-91《信息交换用彝文编码字符集》收 1165 个彝文字符和 688 个其他符号共 1853 个字符

ndash GB 16959-1997《信息技术 信息交换用藏文编码字符集 基本集》收 41 个藏文字母 36 个藏文主字 13 个元音字符12 个语音字符 10 个藏文数字 10 个半值符一个控制用连接符和 46 个其他藏文图形符号共 169 个字符

6 GB 13000bull GB 13000 是与 ISOIEC 10646 等价的国际通用编码字符集标准收汉字 2万多个但是与 GB 2312 和 GBK 不兼容

bull 1993年 5月 ISO 与 IEC 联合推出了可用于世界各种文字的通用编码字符集的国际标准的第 1部分ndash ISOIEC 10646-11993 Information technology -- Universal Multiple-Octe

t Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane (信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

ndash 该标准收字符 96万个几乎涵盖世界上的所有文字其中包含汉字 21 003 个

bull 1993年底我国推出了等同于国际标准 ISOIEC 1064611993 的强制性国家标准 ndash GB 130001-93《信息技术 通用多八位编码字符集( UCS ) 第一部分

体系结构与基本多文种平面》ndash 该标准于 1993年 12月 24日被国家技术监督局批准 1994年 8月 1日起实施

GB 13000 的主要特点

bull 世界各语言文种字符统一编码避免冲突便于国际交流

bull 编码空间宽阔连续每个图形字符的编码唯一(一字一码)不再存在兼容性问题

bull 按文种而不是按语言编码避免重复和浪费(如中日韩汉字的统一编码 CJK )

bull 与 GB 2312 和 GBK 不兼容

体系结构bull UCS 的体系结构是基于所谓ldquo多八位rdquo的而ldquo八位rdquo就是一个字节ldquo多八位rdquo就是多个字节

bull UCS采用 4 个字节来表征组面行位的四维空间bull 整个 UCS空间包含 128 个组( 0x00组 ~0x7F组)每组有 256 个平面( 0x00 平面 ~0xFF 平面)每个平面有 256 行每行又由 256 个字位构成

bull UCS共有( 128 times 256 = ) 32 768 个平面每个平面有( 256 times 256 = ) 65 536 个字位每个字位对应于一个字符的编码

bull 目前的编码只限于 00组已经定义的平面有 00组的00 平面mdashmdash称之为基本多文种平面 BMP ( Basic Multilingual Plane ) 及若干辅助平面

UCS 的全部编码空间

每个平面256times256 个

字位

00组 00 平面

00组 FF 平面

01组 00 平面

7F组 00 平面00

01组

7F组

UCS 的 00组

BMPbull BMP = Basic Multilingual Plane 基本多文种平面bull BMP 用作双八位编码字符集称之为 UCS-2 它被

分成四个区ndash A- 区(字位 0x0000~0x4DFF 有 19 903 个字位)用于

字母文字音节文字以及各种符号ndash I- 区(字位 0x4E00~0x9FFF 共 20 992 个字位)用于中日韩统一汉字( CJK )

ndash O- 区(字位 0xA000~0xDFFF 共 16 384 个字位)保留未来标准化用

ndash R- 区(字位 0xE000~0xFFFD 共 8 190 个字位)为 BMP 的限制使用区包括专用字符变形显现形式及兼容字符

BMP总貌

A-区

00~33 拼音文字(见下页)

34~3D 朝鲜文

3E~44 朝鲜文补充 -A

45~4D 朝鲜文补充 -B

I-区 4E~9F CJK统一汉字O-区 A0~DF

R-区

E0~F8 专用区

F9~FA CJK兼容汉字FB 拼音文字变形显现形式

FC~FD 阿拉伯文变形显现形式 -A

FE半形组合用标志

CJK兼容形式

小写变体

阿拉伯文变形显现形式 -B

FF 半形及全形字符 特殊字符

BMP 的0x00~0x33

行字母文字区

00 基本拉丁文 拉丁文-1补充

01 拉丁文扩充-A 拉丁文扩充-B

02 拉丁文扩充-B 国际音标扩充 进格修饰字符

03 组合用发音符 基本希腊文 希腊符号及哥普特文

04 西里尔文

05 美亚尼亚文 希伯来文(基本和扩充)

06 基本阿拉伯文 阿拉伯文扩充

07

08

09 梵文 孟加拉文

0A 锡克教文 古吉拉特文

0B 奥利雅文 泰米尔文

0C 泰卢固文 卡纳达文

0D 德拉维族文

0E 泰文 老挝文

0F

10 格鲁吉亚文

11 朝鲜文字母

12~1D

1E 拉丁文扩充增补

1F 希腊文扩充

20 广义标点 上下标 货币符号 符号组合用区分标志

21 类似字母的符号 数字形式 箭头

22 数学运算符

23 零杂技术用符号

24 控制图符 光学识别符 带括号的字母数字

25 制表符 方块元素 几何图形符

26 零杂符号

27 示意符等

28~2F

30 CJK符号和标点 平假名 片假名

31 注音 朝鲜文兼容字母 CJK零杂字符

32 带括号的CJK字母及月份

33 CJK兼容字符

留作将来标准化用

非图形字符

表示形式bull GB 13000提供了字符编码表示的两种替代使用的形式

ndash 双八位 BMP 形式( UCS-2 )mdashmdash允许使用 BMP 中的字符且每个字符用两个字节表示

ndash 肆八位正则形式( UCS-4 )mdashmdash允许使用 GB 13000 中的全部字符且每个字符用四个字节表示

bull 除了 UCS-24外还有另外两种变形的表示形式ndash UTF-8 (单字节 ~ 多字节)ndash UTF-16 (双字节和 4 字节与 UCS-2 等价)ndash 目前在工业上的实现均为 UTF-16 ( UCS-2 )和 UTF-8ndash UTF = Unicode UCS Transformation Format 统一码 UC

S转换格式bull 关于统一码我们会在下一小节详细介绍

7 GBK 与 GB 18030bull 由于 GB 13000 标准与 GB 2312 标准的字符编码不兼容作为过渡在国家信息技术标准化委员会的主持下制定了与 GB 2312兼容的《汉字内码扩展规范( GBK )》( K 为扩展的ldquo扩rdquo字的拼音首字母)并于 1995年 12月 15日由原国家技术监督局标准司联合原电子工业部科技与质量监督司作为指导性技术规范发布实施

bull 2000年 GBK又被国家标准 GB 18030-2000《信息技术 信息交换用汉字编码字符集 基本集的扩充》所代替该标准收汉字 2万 7千个

bull 与 GB 2312 一样 GB 18030 也为中国的强制性国家标准微软公司的 Windows XPVista78 中文版与苹果公司的 Mac OS X 和 iOS 谷歌公司的 Android (安卓)等操作系统已经全面支持 GBK

GB 18030 的码位范围分布

字节数 码位空间 码位数目

单字节 0x00~0x7F 128

双字节第 1字节 第 2字节

23 9400x81~0xFE

0x40~0x7E 0x80~0xFE

四字节第 1字节 第 2字节 第 3字节 第 4字节

1 587 6000x81~0xFE 0x30~0x39 0x81~0xFE 0x30~0x39

GB 18030的

总体结构图

收录字符bull 单字节部分mdashmdash收录了GBT 11383 的 0x00~0x7F 全部 128 个字符(似 ASCI

I )bull 双字节部分mdashmdash收录内容如下 (21 003 个汉字和 884 个符号共 21 887 个字符 )

ndash GB 130001-93 的全部 CJK 统一汉字字符 20 902 个( GB 2312 的编码汉字在双字节 2 区其他 CJK 统一汉字在双字节 34 区)

ndash GB 130001-93 的 CJK兼容区挑选出来的 21 个汉字ldquo郎凉秊helliphellip﨨﨩rdquo( 0xFD9C~0xFDA0 和 0xFE40~0xFE4F )

ndash GB 130001-93 中收录而 GB 2312未收录的台湾地区使用的图形字符 139 个ldquoˊˋ˙helliphelliprdquo( 0xA840~0xA895 和 0xA940~0XA988 )

ndash GB 130001-93收录的其他字符 31 ( 13)个(在双字节 5 区)ndash GB 2312-80 中的非汉字字符 682 个( 0xA1A1~0xA9EF )ndash GB 12345-90 的竖排标点符号 19 ( 29)个ldquo︵︶︹helliphellip︳︴rdquo( 0xA6D9~0xA6

F5 )ndash GB 2312-80未收录的 10 个小写罗马数字ldquoⅰⅱⅲhelliphellipⅸⅹrdquo( 0xA2A1~ 0xA2A

A )ndash GB 2312-80未收录的带音调的汉语拼音字母 5 ( 4)个ldquo ńňǹrdquo 以及 ɑ 和 ɡ ( 0

xA8BB~0xA8C0 )ndash 汉字数字零ldquo〇rdquo (0xA996) 和欧元符ldquoeurordquo (0xA2E3)ndash 表意文字描述符 13 个ldquohelliphelliprdquo( 0xA989~0xA995 )ndash 对 GB 130001-93增补的汉字和部首 构件 80 个ldquohelliphellip䶮rdquo( 0xFE50~ 0x

FEA0 )bull 四字节部分mdashmdash收录了上述双字节字符之外的包括 CJK 统一汉字扩充 A 在内

的 GB 130001-93 中的全部字符

GB 18030双字节部分的码位安排

类别 区名 码位范围 码位数 字符数 内容

符号区双字节 1区 A1A1~A9FE 846 718

GB 2312非汉字字符等

双字节 5区 A840~A9A0 192 166 台湾图符等

汉字区双字节 2区 B0A1~F7FE 6768 6763 GB 2312汉字双字节 3区 8140~A0FE 6080 6080 CJK统一汉字双字节 4区 AA40~FEA0 8160 8160 CJK统一汉字等

用户自定义区双字节用户区 1 AAA1~AFFE 564

用户自定义字符双字节用户区 2 F8A1~FEFE 658

双字节用户区 3 A140~A7A0 672

GB 18030双字节部分的编码空间结构图 尾字节

0x40larr――rarr0x7E 0x80larr――rarr0xA0 0xA1larr――――――――――――rarr0xFE

0x81 uarr darr

0xA0

0xA1 uarr darr

0xA7

0xA8 0xA9

首字节

0xAA uarr | | | | | | | | | | darr

0xFE

双字节 3区

汉字区6 080个码位

双字节用户区 3

用户自定义区672个码位

双字节 5区 图形符号区192个码位

双字节 4区

汉字区8 160个码位

双字节 1区

图形符号区564个码位

双字节 2区

汉字区6 768个码位

双字节用户区 1 用户自定义区564个码位

双字节用户区 2 用户自定义区658个码位

223 国际通用字符编码

bull Unicode (统一码)是由多语言软件制造商组成的统一码协会( httpwwwUnicodeorg)所制定一种国际字符的编码标准

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull 本节主要介绍这两种关系密切的主流国际字符编码标准的来历编码方案各自特点与相互关系

1 Unicode 统一码bull 发展历史

ndash 1987年施乐( Xerox )公司的 Joe Becker 与 Lee Collins 和苹果( Apple )公司的 Mark Davis 等人开始讨论统一编码 1987年 12月 Joe Becker造词 Unicode (统一码)含义为ldquo unique universal and uniform character encodingrdquo (单一通用统一的字符编码) 1989年 2月开始定期召开统一码会议 1989年 9月公布 Unicode草案

ndash 1991年 1月 3 日由 Xerox Apple Sun IBM Aldis Microsoft 等公司出资在美国加州成立了统一码协会( Unicode Consortium )并由协会设立非盈利性的统一码公司( Unicode Inc )后来 HP Adobe Borland Digital Lotus Novell 等公司也纷纷加入 1991年 1月成立统一码技术委员会 UTC 并制定了其规程

ndash 1991年 2月在 Ed Hart 的推动下进行了ldquo统一码对 10464 国际标准草案 1rdquo 的对话Unicode 与 ISOIEC 10646开始走向融合

ndash 1991年 8月发布 Unicode 标准 10版的第 1卷(体系结构非表意字符) 1992年6月发表 Unicode 10版的第 2卷(表意字符) 1993年 6月发布 Unicode 11版与 1993年 5月公布的 ISOIEC 10646-11993 实现了合并

ndash 1996年 7月发布 Unicode 20版ndash 1999年 9月发布 Unicode 30版ndash 2003年 4月发布 Unicode 40版(对应于 ISOIEC 106462003 ) 2004年 3月 31日发布 Unicode 401版 2005年 3月 31日发布 Unicode 410版

ndash 2006年 7月 14日发布 Unicode 50版 2008年 4月 4日发布 Unicode 51版 2009年 12月 22日发布 Unicode 52版

ndash 2010年 10月发布 Unicode 60版 2012年 1月发布 Unicode 61版(对应于 ISOIEC 106462012 ) 2012年 9月推出 Unicode 62版 2013年 9月推出 Unicode 63版

ndash 2014年 6月 16日发布 Unicode 70版 ndash 2015年 6月 17日发布 Unicode 80版

字符集bull Unicode 字符集的空间分成双字节的基本多语言平面 (Basic Multilingual Pla

ne BMP) 和 4 字节的辅助多语言平面 (Supplementary Multilingual Plane SMP) 两种

bull BMPndash Unicode 的基本平面或基本多语言平面 BMP 对应于 ISOIEC 10646-1 的第 00组的 00 平面( BMP )即 Unicode 与 ISOIEC 10646 的 BMP 中的字符编码完全一致

bull SMPndash 鉴于 Unicode 原有的 16位元空间不足以应用从 Unicode 31版本开始设立了 16 个辅助平面使 Unicode 的可使用空间由六万多字增至约一百万字

ndash 原有的 Unicode双字节空间称为基本平面或基本多语言平面 BMP 辅助多语言平面 SMP 字符要用 4 字节来储存

ndash 第一辅助平面摆放拼音文字(主要为现时已不再使用的文字)及符号范围在 U+10000 - U+1FFFD

ndash 第二辅助平面又称为表意文字补充平面 (Supplementary Ideographic Plane 简称 SIP) 现时摆放ldquo中日韩统汉字扩展 B 区rdquo共 43253 个汉字范围在 U+20000 - U+2FFFD

ndash 第三至十三辅助平面尚未使用ndash 第十四辅助平面又称为特殊用途补充平面 (Supplementary Special-purpose Pl

ane 简称 SSP) 摆放 Language tags 和 Variation Selectors 它们都是控制字符范围在 U+E0000 - U+E01FF

ndash 第十五至十六辅助平面都是私人使用区它们的范围是 U+F0000 - U+FFFFD 及 U+100000 - U+1000FD

bull Unicode 字符集的具体编码方式参加第 4小节ldquo 4 UTFrdquo

2 ISOIEC 10646

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull ISOIEC 10646 标准由 ISO 与 IEC 联合成立的 ISOIEC JTC1SC2WG2 制定ndash JTC 1 ( Joint Technical Committee 1 on Information

technology ISOIEC信息技术联合技术委员会 1 )负责信息技术方面标准的制定工作

ndash SC 2 ( SubCommittee 2 on Coded character sets 编码字符集分会 2 )下的 WG 2 ( Working Group 2 on Universal coded character set 通用编码字符集工作组 2 )负责制定国际通用字符编码标准即后来公布的 ISOIEC 10646

发展历史bull 1984年 ISO 的一些会员国发起制定新的国际字符编码标准同年 4月 ISO

与 IEC 联合成立 ISOIEC JTC1SC2WG2 1987年 3月制定出编码架构1992年 6月投票通过第二版国际标准草案

bull 1993年 5月推出 10646 标准时将内容分成两个部分标准首先发布的是其中的第 1 个部分(体系结构与基本多文种平面)的第 1版( Edition 1 ) ISOIEC 10646-11993 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane(信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

bull 2000年 3月推出 10646 标准第一个部分的第 2版( Edition 2 ) ISOIEC 10646-12000 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane

bull 2001年 10月推出 10646 标准第 2版的第二个部分(辅助平面)的第 1版( Edition 1 ) ISOIEC 10646-22001 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 2 Supplementary Planes

bull 2003年 10月推出的 10646新标准(第 1版 Edition 1 )将老标准中的两个部分标准合并成了一个单一的标准 ISOIEC 106462003 Information technology -- Universal Multiple- Octet Coded Character Set (UCS) 后来又于 2010年 2012年和 2014年分别推出了 ISOIEC 106462010 (第 2版)ISOIEC 106462012 (第 3版)和 ISOIEC 106462014 (第 4版)

UCS 通用字符集bull 通用字符集( Universal Character Set UCS )是

ISOIEC 10646 标准所定义的字符编码方式采用 4字节编码又称为 Universal Multiple-Octet Coded Character Set (通用多八位编码字符集)

bull 通用字符集是所有包括了其他字符集它保证了与其他字符集的双向兼容即如果你将任何文本字符串翻译到 UCS 格式然后再翻译回原编码你不会丢失任何信息

bull UCS 包含了已知语言的所有字符除了拉丁语希腊语斯拉夫语希伯来语阿拉伯语亚美尼亚语格鲁吉亚语还包括中文日文韩文这样的象形文字 UCS 还包括大量的图形印刷数学科学符号

名字与组合字符bull UCS 不仅给每个字符分配一个代码而且赋予了

一个正式的名字表示一个 UCS 或 Unicode值的十六进制数通常在前面加上ldquo U+rdquo 例如ldquo U+0041rdquo代表字符ldquo Ardquo

bull UCS里有些编码点分配给了组合字符组合字符机制允许在任何字符后加上重音符或其他指示标记 这在科学符号中特别有用 比如数学方程式和国际音标字母 可能会需要在一个基本字符后组合上一个或多个指示标记

实现级别bull 并不是所有的系统都需要支持像组合字符这样的的先进

机制因此 ISO 10646 指定了如下三种实现级别ndash 级别 1不支持组合字符和韩语 Hangul Jamo 字符 ( 一种特

别的 更加复杂的韩国文的编码 使用两个或三个子字符来编码一个韩文音节 )

ndash 级别 2类似于级别 1 但在某些文字中允许一列固定的组合字符 (例如 希伯来文 阿拉伯文 Devangari 孟加拉语 果鲁穆奇语 Gujarati Oriya 泰米尔语 Telugo 印 埃纳德语 Malayalam 泰国语和老挝语 ) 因为如果没有最起码的几个组合字符 UCS就不能完整地表达这些语言

ndash 级别 3支持所有的 UCS 字符如可以在任意一个字符上加上一个箭头或 和一个 tilde(颚化符号即字母上面的~ )

编码方式bull UCS 有如下两种编码方式

ndash UCS-2与 Unicode 的 2 字节编码基本一样ndash UCS-4 4 字节编码目前是在 UCS-2 前加

上 2 个全零的字节bull UCS 还有 UTF 编码方式参见下面第 4小节ldquo 4 UTFrdquo

3 Unicode 与 ISOIEC 10646bull 关系

ndash 历史上存在两个独立的尝试创立单一字符集的组织即国际标准化组织( ISO )和多语言软件制造商组成的统一码协会组织( Unicodeorg )前者开发的 ISO 10646项目后者开发的 Unicode项目因此最初制定了不同的标准

ndash 1991年前后两个项目的参与者都认识到世界不需要两个不兼容的字符集于是它们开始合并双方的工作成果并为创立一个单一编码表而协同工作

ndash 从 Unicode20开始 Unicode采用了与 ISO 10646-1相同的字库和字码 ISO 也承诺 ISO10646 将不会替超出 U+10FFFF 的 UCS-4 编码赋值以使得两者保持一致

ndash 两个项目仍都存在并独立地公布各自的标准但 Unicode协会和 ISOIEC JTC1SC2 都同意保持两者标准的码表兼容并紧密地共同调整任何未来的扩展

异同bull Unicode协会公布的 Unicode 标准包含了 ISO 10646-1 实现级别

3 的基本多文种平面在两个标准里所有的字符都在相同的位置并且有相同的名字

bull ISO 10646 标准就像 ISO 8859 标准一样只不过是一个简单的字符集表它定义了一些编码的别名指定了一些与标准有关的术语并包括了规范说明指定了怎样使用 UCS连接其他 ISO 标准的实现等

bull Unicode 标准额外定义了许多与字符有关的语义符号学并详细说明了绘制某些语言(如阿拉伯语)表达形式的算法处理双向文字(比如拉丁文和希伯来文的混合文字)的算法排序与字符串比较所需的算法等等

bull 考虑到 Unicode 标准有一个易记的名字既便宜又包括更多的辅助信息因而它使用得更广泛然而

bull 一般认为用于打印 ISO 10646-1 标准的字体在某些方面的质量要高于用于打印 Unicode 20 的专业字体设计者总是被建议说要两个标准都实现但一些提供的样例字形有显著的区别 ISO 10646-1 标准同样使用四种不同的风格变体来显示表意文字如中文日文和韩文 (CJK) 而 Unicode 20 的表里只有中文的变体

4 UTFbull Unicode 和 UCS 都是一个字符集可以看作为内码bull UTF ( UnicodeUCS Transformation Format 统一码

通用字符集转换格式)是一种编码方式它的出现是因为 Unicode 和 UCS 不适宜在某些场合直接传输和处理

bull UCS 和 Unicode 只是分配整数给字符的编码表现在存在好几种将一串字符表示为一串字节的方法(如高或低位字节在前)

bull 最显而易见的两种方法是将 UCS 和 Unicode 文本存储为 2 个 或 4 个字节序列的串这两种方法的正式名称分别为 UCS-2 和 UCS-4

bull 常用的 UTF具体编码方式有 UTF-8 UTF-16 和 UTF-32

UTF-8

bull UTF-8 是 UTF 的一种具体编码方式在 ISO 10646-1 的附录 R 和 IETF 的 RFC 2279 里定义

bull 由于要使文档中的文字与 ASCII兼容故 UTF-8 选择了使用可变长度字节来储存 Unicode 和 UCS 例如ndash ASCII 字母继续使用 1 字节储存ndash 重音文字希腊字母或西里尔字母等使用 2 字节来储存ndash 常用的汉字就要使用 3 字节ndash 辅助平面字符则使用 4 字节ndash 即 ASCII 不作变换其他字符做变长编码每个字符 1~4 字节

bull UTF-8 通常作为外码bull 在 UTF-8 文件的开首很多时都放置一个 U+FEFF 字符

(UTF-8 以 EF BB BF 代表 ) 以显示这个文字档案是以UTF-8 编码

UTF-8 的优点bull 与 CPU 字节顺序无关可以在不同平台之间交流

bull 容错能力高任何一个字节损坏后最多只会导致一个编码码位损失不会链锁错误 ( 如 GB 码错一个字节就会整行乱码 )

UTF-8 的缺点bull UTF-8 使用可变长度字节储存使计算机程序设计变得复杂 (故此在计算机程序或操作系统内部多采用 UCS-2 编码 )

bull 在旧式的中文日文及朝鲜文编码之中每字符都使用 2 字节储存而 UTF-8 须使用 3 字节 (采用 UTF-16 编码则可只使用 2字节储存 )

bull 泰语以往使用的 ISO 8859-11 每字符只使用 1 字节储存而 UTF-8 须使用 3 字节

UTF-8储存的多字节串字符bull U-00000000 - U-0000007F 0xxxxxxx bull U-00000080 - U-000007FF 110xxxxx 10xxxxxx

bull U-00000800 - U-0000FFFF 1110xxxx 10xxxxxx

10xxxxxx bull U-00010000 - U-001FFFFF 11110xxx 10xxxxx

x 10xxxxxx 10xxxxxx bull 在多字节串中第一个字节的开头ldquo 1rdquo 的数目就

是整个串中字节的数目bull 每个使用 UTF-8储存的字符除了第一个字节外其余字节的头两个位元都是以 10 开始使文字处理器能够较快地找出每个字符的开始位置

UTF-16bull UTF-16 是 UTF 的另一种具体编码方式在 ISO 1064

6-1 的附录 Q 和 IETF 的 RFC 2781 里定义bull UTF-16 是变长码( 2 或 4 字节)大致相当于 20位编码值在 0 到 0x10FFFF 之间基本上就是 Unicode 编码的实现 UTF-16 与 CPU 字序有关但因为最省空间常作为网络传输的外码 UTF-16 是 Unicode 的完美编码

bull lt0x10000 的直接用其对应的 16位整数编码位于 0x10000 ~ 0x10FFFF 之间的用 0xD800~0xDBFF 的 16位整数后跟 0xDC00~0xDFFF 的 16位整数的 4 字节编码 gt 0x10FFFF 的不能用 UTF-16 表示

bull 在 Unicode 的 BMP 中定义的字符(无论是拉丁字母汉字或其他文字或符号)一律使用 2 字节存储而在辅助平面定义的字符则以两个 2 字节的值来存储

UTF-16 的特点bull UTF-16比起 UTF-8 的好处在于大部分字符都以固定长

度的 2 字节存储但 UTF-16却无法相容于 ASCII 编码bull UTF-16 有两种编码模式即大尾序( big Endian 高位字节在前)和小尾序( little Endian 高位字节在后)储存形式(一般來說以 Macintosh 制作和存储的文字使用大尾序格式以 Microsoft 或 Linux 制作和存储的文字使用小尾序格式)

bull 为了弄区分 UTF-16 文件的大小尾序在 UTF-16 文件的开头都会放置一个 U+FEFF 字符作为字节顺序标记 (UTF-16LE 以 FF FE代表 UTF-16BE 以 FE FF代表 ) 以显示该文档是以 UTF-16 编码的

UTF-32

bull UTF-32 仅使用了 Unicode范围 (0 到 0x10FFFF) 的 32位编码相当于 UCS-4 的子集

bull 由于 Unicode 和 ISOIEC 10646 的编码和结构与前面讲过的 GB 13000 类似或等价这里就不再做详细的介绍

5支持bull 现在 UnicodeUCS 已经获得了十分广泛的支

持ndash网络与浏览器(如 HTML 4050 XML 与 IE

Safari Netscape Firefox Chrome Opera Edge 等)

ndash操作系统(如 Windows NT2000XPVista7810 Mac OS X iOS Android和 Linux )

ndash 编程语言新版本(如 CC++JavaObjective-CC Swift 等)

Unicode 代码的浏览器显示代码 字符标准名称 (英语 )

浏览器的显示

amp65 大写拉丁字母 A A

amp223 小写拉丁字母 Sharp S szlig

amp254 小写拉丁字母 Thorn thorn

amp916 大写希腊字母 Delta Δ

amp1049 大写斯拉夫字母 Short I Й

amp1511 希伯来字母 Qof ק

amp1605 阿拉伯字母 Meem م

amp3671 泰文数字 7 ๗amp4688 埃塞俄比亚音节文字 Qha ቐ

amp12354 日语平假名 A あamp12450 日语片假名 A アamp21494 简体汉字 叶 叶amp33865 繁体汉字 葉 葉amp50685 韩国音节文字 Yeob 엽

23 文字输出bull 文字输出是指将计算机内的字符编码通过计算机的输出设备(如显示器打印机喇叭)展现出所对应字符的图形或声音供人们阅读或聆听

bull 本节主要介绍文字图示输出的字形技术bull 文字声音输出属于语音合成只在本节的末尾作简单的介绍

231 字形技术bull 文字 = 图形bull 不论是象形文字中的单字还是拼音文字

中的字母都是用图形来表示的bull 在计算机里文字的表示 输出(显示和打

印)涉及ndash 字型ndash 字体ndash 字库

1字型bull 字型指构造和生成字形的方法一般可分为

ndash 点阵字 DOS 显卡 ROM 金山 科印特点似位图显示快占空间(字库大)放大后有马赛克效应

bull 显示字母 88 汉字 1616bull 打印 2424 4848 6464

ndash 矢量字单线条用于笔式绘图仪特点字库小算法简单难看

ndash 轮廓字用曲线描绘字的轮廓输出效果好所见即所得(WYSWYG) 可无级放大易实现空心 阴影 填充 变形等各种特效功能轮廓曲线一般采用样条曲线如 TrueType (Apple 1991 Mac OS Microsoft 1992 Windows 31)用的是二次 B 样条 Bezier曲线中文之星 RichWin采用的是三次 B 样条 Bezier曲线

字型种类

2字体bull 字体指字的形状风格如

ndash 汉字的

ndash 英文的

宋体楷体黑体仿宋

行楷隶书新魏幼圆

Times New Roman Arial Narrow Courier New

常用汉字字体bull 宋体mdashmdash宋体来自于北宋时雕版刻书所采用的欧体字(唐朝欧阳询体)宋体字的横顿拉捺挑钩别具特色间架平正疏密适中字体秀丽遒劲但笔画横细竖粗适合于刀刻不宜于手写现在宋体广泛用于印刷常来表现文档的正文

bull 仿宋体mdashmdash 1920年钱塘的丁辅之与丁善之等人将明代以后盛行的方廓形字体加以改造创造出长形和方形的聚珍仿宋后来演化为现在的仿宋体仿宋体比较接近于手写体为宋体和楷体的折中是采用的宋体的结构和楷体的笔法而成现常来表现打印文件以及文档的摘要和注释等

bull 黑体mdashmdash黑体是适应工艺美术的发展而出现的一种等线体是从日本引进的黑体的结构与宋体没有什么差别只是其笔画粗细一致健实粗壮主要用于文档的标题和重点及标语广告等方面

bull 楷体mdashmdash楷体源于楷书楷体的笔画圆浑笔调灵活结构端正美观但不宜于木板雕刻所以直到清末西洋的石板印刷术传入后才开始广泛用于印刷现代的楷体创造于 20世纪的二三十年代主要用于文档的正文(多用于中小学教材)也可用于工艺美术等方面

3字库bull 字库为一种文字的某一字体的所有字符的集合一般存放在一个磁盘文件中

bull 由于象形文字中单字的数量大(成千上万)而拼音文字中字母的数量小(不到一百个)所以字库的大小有很大的差别

bull 为了使文档界面丰富多彩常见的字处理软件都支持多种字体带有众多字库

4点阵字型的国家标准bull 我国已经公布了若干字体的点阵字型之国家标准

ndash GB 50071-19852001 信息技术 汉字编码字符集(基本集) 24 点阵字型

ndash GB 50072-19852001 信息技术 汉字编码字符集(辅助集) 24 点阵字型

ndash GB 5199-19862001 信息技术 汉字编码字符集(基本集) 16 点阵字型 宋体

ndash GB 6345-19862001 信息技术 汉字编码字符集(基本集) 32 点阵字型 宋体

ndash GB 12041-2001 信息技术 汉字编码字符集(基本集) 48点阵字型 宋体

ndash GB 17698-1999 信息技术 通用多八位编码字符集( I 区) 汉字 16 点阵字型

232 语音合成bull 文字的声音输出主要使用的是语音合成的技术bull 语音合成功能是ldquo文rarr语rdquo转换bull 文语转换 TTS (Text-To-Speech) 是将文本形式的信息转换成自然语音的一种技术其最终目标是使计算机输出清晰而又自然的声音

bull 英语的语音合成在上世纪 80年代就早已成熟而中文 汉语的合成现在也趋于成熟并有了广泛的应用(如汽车导航仪智能手机等)

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 27: 第一篇  媒体

Microsoft Windows 的扩展 ASCII 显示字符表

222 中文编码bull 1 GB 1988 与 GB 2311

bull 2 GB 2312

bull 3汉字编码的辅助集bull 4 Big5

bull 5少数民族文字编码bull 6 GB 13000

bull 7 GBK 与 GB 18030

汉字编码bull 为了计算机处理汉字必须先对汉字进行编码由于汉

字数量大(《康熙字典》收字 47 035 个《汉语大字典》收字 54 678 个据统计在形成楷体后出现的汉字约有 9万个左右)显然不能像 ASCII那样用 7位或单字节来进行编码至少需要两个字节(最多可表示 6万5千多个字符)

bull 1980年我国制定了著名的 GB 2312-80双字节汉字编码标准(其中 GB 为ldquo国标rdquo这两个汉字的拼音首字母)收汉字 6 763 个

bull 1993年底又推出了等同于国际通用字符编码标准 ISOIEC 106461-1993 的国家标准 GB 130001-93 收汉字 20 902 个

bull 由于 GB 13000 与 GB 2312 的编码不兼容作为过渡2000年又公布了 GB 18030-2000 ( GBK )收汉字2万 7千个

1 GB 1988 与 GB 2311

bull 为了能够同时表示和处理汉字和英文实现中外文混排汉字编码必须兼容通用的 ASCII 编码因此1980年我国制定了与国际标准 ISO 6461972 (即ASCII )对应的国家标准 GB 1988-80《信息处理交换用的七位编码字符集》

bull 汉字成千上万不可能像 ASCII 一样只用单字节的七位来表示必须扩展到八位和多字节但是不能随意扩充而应该符合国际规范因此我国于 1980年又制定了与七位代码扩充到八位编码的国际标准 ISO 2022兼容的国家标准 GB 2311-80《信息处理交换用七位编码字符集的扩充办法》

GB 1988-80 ( ASCII )的代码结构图

行 0 1 2 3 4 5 6 7

0 SP

1 helliphellip

15

16

32个

控制符

94个

图形字符

DEL

GB 2311-80 的八位编码结构图列

行 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0 SP 100

1

helliphellip

14

15

C0

32个

控制符

GL

94或 96个

图形字符

DEL

C1

32个

控制符

GR

94或 96个

图形字符

1515

2 GB 2312

bull GB 2312-80《信息交换用汉字编码字符集 middot基本集》是我国制定的一个使用最广泛的汉字编码的强制性国家标准由原第四机械工业部的华北计算机研究所(后改名为电子工业部第十五研究所)起草1980年批准 1981年 5月 1日起实施

bull GB 2312-80 是在已有的国家标准 GB 1988-80(对应于 ISO 646 )和 GB 2311-80 (对应于 ISO 2022 )的基础上制定的采用与 ISO 2022兼容的GB 2311 之 7位到八位的代码扩充办法用双字节编码表示汉字与 ASCII兼容

收录的字符bull GB 2312 对应的是汉字的基本集共收汉字 6 763 个

可达到 9999 的使用频率因此除了极少数生僻的人名地名和古文外 GB 2312 中的汉字已经能基本满足平时的使用了

bull 除了汉字外 GB 2312 还收录了 682 个非汉字图形符号包括 202 个一般符号(含间隔符标点运算符和制表符) 60 个序号符 22 个数字符 52 个英文字母 169 个日文假名 48 个希腊字母 66 个俄文字母 26 个汉语拼音符号和 37 个汉语注音字母

bull 所以在 GB 2312-80 标准中共收录了( 6 763 汉字 + 682 非汉字图符 = ) 7 445 图形字符

两级汉字bull GB 2312 将其收录的六千多个汉字分成两个级别bull 一级汉字有 3 755 个都为使用频率高的常用汉

字为便于检索像字典那样将这些汉字按拼音字母顺序排列(同音字再按笔顺的横竖撇捺点折序排列)

bull 二级汉字有 3 008 个大部分较生僻不易掌握读音所以按部首顺序排列(同部首的字按笔画数排列同笔画数的字再按笔顺排列)

编码方案bull GB 2312 对所有图形字符(包括汉字和非汉字图符)都采用两个字节表示每个字节的低七位用于编码最高位全为 1 这样可以兼容 ASCII 编码(字节的最高位全为 0 )

bull 虽然在一个字节中最高位为 1 的符号位置有 128 个但从前面 GB 2311 的分析可知为了与 ASCII 的代码结构兼容保留了( 32 + 2 = ) 34 个控制符位置最后只有( 128 ndash 34 = ) 94 个符号位可供图形字符编码使用

bull 图形字符在代码表中的位置用区位码表示将码表分成94 个区对应于编码的第一个字节取值 0x21~0x7E 每个区又分成 94 个位对应于编码的第二个字节取值 0x21~0x7E (参见表 2-6 )

bull 例如ldquo中山大学rdquo的编码为中 (0xD6D0) 山 (0xC9BD) 大 (0xB4F3) 学 (0xD1A7)

GB 2312-80 字符集结构 20 21 22 helliphellip 7D 7E 7F

位号

区号

1 2 helliphellip 93 94

20

21~29 1~9 非汉字图符(682个)

2A~2F 10~15 空白区

30~57 16~55 一级汉字(3 755个)

58~77 56~87 二级汉字(3 008个)

78~7E 88~94 空白区

7F

第 1 区的部分非汉字图符

1区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 middot ˉ ˇ uml 々 mdash ~ hellip lsquo rsquo ldquo

17~32 rdquo 〔 〕 〈 〉 《 》 「 」 『 』 〖 〗 【 】 plusmn

33~48 times divide ∶ and or sum prod cup cap isin ∷ radic perp ∥ ang

49~64 ⊙ int ∮ equiv ≌ asymp ∽ prop ne ltu gtu le ge infin ∵ there4

65~80 deg prime Prime $ curren ¢ £ permil sect

81~94 rarr larr uarr darr

第 16 区的部分一级汉字

16区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 啊 阿 埃 挨 哎 唉 哀 皑 癌 蔼 矮 艾 碍 爱 隘 鞍

17~32 氨 安 俺 按 暗 岸 胺 案 肮 昂 盎 凹 敖 熬 翱 袄

33~48 傲 奥 懊 澳 芭 捌 扒 叭 吧 笆 八 疤 巴 拔 跋 靶

49~64 把 耙 坝 霸 罢 爸 白 柏 百 摆 佰 败 拜 稗 斑 班

65~80 搬 扳 般 颁 板 版 扮 拌 伴 瓣 半 办 绊 邦 帮 梆

81~94 榜 膀 绑 棒 磅 蚌 镑 傍 谤 苞 胞 包 褒 剥

第 56 区的部分二级汉字

56区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 亍 丌 兀 丐 廿 卅 丕 亘 丞 鬲 孬 噩 丨 禺 丿 匕

17~32 乇 夭 爻 卮 氐 囟 胤 馗 毓 睾 鼗 丶 亟 鼐 乜 乩

33~48 亓 芈 孛 啬 嘏 仄 厍 厝 厣 厥 厮 靥 赝 匚 叵 匦

49~64 匮 匾 赜 卦 卣 刂 刈 刎 刭 刳 刿 剀 剌 剞 剡 剜

65~80 蒯 剽 劂 劁 劐 劓 冂 罔 亻 仃 仉 仂 仨 仡 仫 仞

81~94 伛 仳 伢 佤 仵 伥 伧 伉 伫 佞 佧 攸 佚 佝

3汉字编码的辅助集bull 除了GB 2312基本集的 6 763 个简体汉字外国家标

准还给出了汉字编码字符集的多个辅助集bull 第二 四辅助集分别增加了 7 237 7 039 个简体汉字bull 第一和三 五辅助集则分别是与基本集和第二 四辅助集所对应的繁体汉字字符集的国家标准

bull 基本集加上辅助集共有 21 039 个简体汉字和 21 142个繁体汉字

bull 繁体汉字之所以多一些是因为在第一辅助集中有时几个繁体字对应一个简体字因此比基本集多出 103 个汉字

bull 基本集和辅助集的代码页之间靠其编码字节的最高位来区分

编码字符的分页标志

双字节汉字编码的页面结构第二字节 列号

行号 0 middot middot middot 32 33 34 helliphellip 125 126 127 128middot middot 160 161 162 helliphellip 254 255 0 middot middot 32

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

33 34 middot middot middot 126

1 2 middot middot middot 94

第四五辅助集 (7 039个汉字)

127

(兼容ASCII)

128 middot middot 160

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

161 162 middot middot middot 254

1 2 middot middot middot 94

第二三辅助集 (7 237个汉字)

1 2 middot middot middot 94

基本集第一辅助集 (6 763 6 866个汉字) (682个非汉字图符)

第一字节

255

4 Big5

bull 除了中国大陆使用的简体汉字外在台湾香港澳门和海外华侨社区使用的是传统的繁体汉字

bull 简体汉字使用 GB (国标)系列编码标准bull 繁体汉字一般使用的是 Big5内码(大五码)即台湾的ldquo资讯工业策进会rdquo发布的《标准交换码 (Ⅲ码 )》收录汉字 13 053 个

bull Big5内码是 1984年由台湾财团法人资讯工业策进会与宏碁 (Acer) 神通 (MiTAC) 佳佳零壹 (Zero One) 大众 (FIC) 等五大软件公司联合推出故称为大五码

BIG5 的代码空间低位字节

00 hellip 3F 40 hellip 7E 7F hellip A0 A1 hellip FE FF

高位字节

00middot

80

81middot

A0用户定义区 用户定义区

A1A2A3

非汉字图符 非汉字图符

A4middot

C6常用汉字 常用汉字

C7C8

用户定义区 用户定义区

C9middot

F9次常用汉字 次常用汉字

FAmiddot

FE用户定义区 用户定义区

FF

5少数民族文字编码bull 中国共有 56 个民族除了汉回满族一般使用汉语外其他少数民族大多有自己的民族语言

bull 我国各民族使用的 50 多种文字可以分为字母式结构文字和非字母式结构文字两大类ndash 字母式结构的有拉丁文斯拉夫文蒙古文维吾尔文哈萨克文藏文和朝鲜文等字母式

ndash 非字母式结构的有汉字象形文字图画文字和音节文字等bull 各民族文字的书写方向也有不同

ndash 壮文藏文朝鲜文彝文等的字从左到右行从上到下ndash 维吾尔文哈萨克文和柯尔克孜文等的字从右到左行从上

到下ndash 蒙古文和满文的字从上到下行从左到右ndash 汉字的书写方向有两种

bull 大陆的简体汉字的字从左到右行从上到下bull 港台与古旧书的繁体汉字的字从上到下行从右到左

国家标准bull 下面按发布时间列出若干已经公布的我国少数民族文字

编码集的国家标准(这些字符集一般分成两类对字母式结构文字采用八位编码对非字母式结构文字采用双字节编码)ndash GB 8045-87《信息处理交换用蒙古文七位和八位编码图形字

符集》收 82 个蒙古文字母和 12 个其他符号共 94 个字符ndash GB 12050-89《信息处理交换用维吾尔文编码图形字符集》收 32 个维吾尔文字母一个维吾尔文复合字符和 37 个其他符号共 70 个字符

ndash GB 12052-89《信息交换用朝鲜文编码字符集》收 5297 个朝鲜文字和 682 个其他符号(与 GB 2132同)共 5 979 个字符

ndash GB 13134-91《信息交换用彝文编码字符集》收 1165 个彝文字符和 688 个其他符号共 1853 个字符

ndash GB 16959-1997《信息技术 信息交换用藏文编码字符集 基本集》收 41 个藏文字母 36 个藏文主字 13 个元音字符12 个语音字符 10 个藏文数字 10 个半值符一个控制用连接符和 46 个其他藏文图形符号共 169 个字符

6 GB 13000bull GB 13000 是与 ISOIEC 10646 等价的国际通用编码字符集标准收汉字 2万多个但是与 GB 2312 和 GBK 不兼容

bull 1993年 5月 ISO 与 IEC 联合推出了可用于世界各种文字的通用编码字符集的国际标准的第 1部分ndash ISOIEC 10646-11993 Information technology -- Universal Multiple-Octe

t Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane (信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

ndash 该标准收字符 96万个几乎涵盖世界上的所有文字其中包含汉字 21 003 个

bull 1993年底我国推出了等同于国际标准 ISOIEC 1064611993 的强制性国家标准 ndash GB 130001-93《信息技术 通用多八位编码字符集( UCS ) 第一部分

体系结构与基本多文种平面》ndash 该标准于 1993年 12月 24日被国家技术监督局批准 1994年 8月 1日起实施

GB 13000 的主要特点

bull 世界各语言文种字符统一编码避免冲突便于国际交流

bull 编码空间宽阔连续每个图形字符的编码唯一(一字一码)不再存在兼容性问题

bull 按文种而不是按语言编码避免重复和浪费(如中日韩汉字的统一编码 CJK )

bull 与 GB 2312 和 GBK 不兼容

体系结构bull UCS 的体系结构是基于所谓ldquo多八位rdquo的而ldquo八位rdquo就是一个字节ldquo多八位rdquo就是多个字节

bull UCS采用 4 个字节来表征组面行位的四维空间bull 整个 UCS空间包含 128 个组( 0x00组 ~0x7F组)每组有 256 个平面( 0x00 平面 ~0xFF 平面)每个平面有 256 行每行又由 256 个字位构成

bull UCS共有( 128 times 256 = ) 32 768 个平面每个平面有( 256 times 256 = ) 65 536 个字位每个字位对应于一个字符的编码

bull 目前的编码只限于 00组已经定义的平面有 00组的00 平面mdashmdash称之为基本多文种平面 BMP ( Basic Multilingual Plane ) 及若干辅助平面

UCS 的全部编码空间

每个平面256times256 个

字位

00组 00 平面

00组 FF 平面

01组 00 平面

7F组 00 平面00

01组

7F组

UCS 的 00组

BMPbull BMP = Basic Multilingual Plane 基本多文种平面bull BMP 用作双八位编码字符集称之为 UCS-2 它被

分成四个区ndash A- 区(字位 0x0000~0x4DFF 有 19 903 个字位)用于

字母文字音节文字以及各种符号ndash I- 区(字位 0x4E00~0x9FFF 共 20 992 个字位)用于中日韩统一汉字( CJK )

ndash O- 区(字位 0xA000~0xDFFF 共 16 384 个字位)保留未来标准化用

ndash R- 区(字位 0xE000~0xFFFD 共 8 190 个字位)为 BMP 的限制使用区包括专用字符变形显现形式及兼容字符

BMP总貌

A-区

00~33 拼音文字(见下页)

34~3D 朝鲜文

3E~44 朝鲜文补充 -A

45~4D 朝鲜文补充 -B

I-区 4E~9F CJK统一汉字O-区 A0~DF

R-区

E0~F8 专用区

F9~FA CJK兼容汉字FB 拼音文字变形显现形式

FC~FD 阿拉伯文变形显现形式 -A

FE半形组合用标志

CJK兼容形式

小写变体

阿拉伯文变形显现形式 -B

FF 半形及全形字符 特殊字符

BMP 的0x00~0x33

行字母文字区

00 基本拉丁文 拉丁文-1补充

01 拉丁文扩充-A 拉丁文扩充-B

02 拉丁文扩充-B 国际音标扩充 进格修饰字符

03 组合用发音符 基本希腊文 希腊符号及哥普特文

04 西里尔文

05 美亚尼亚文 希伯来文(基本和扩充)

06 基本阿拉伯文 阿拉伯文扩充

07

08

09 梵文 孟加拉文

0A 锡克教文 古吉拉特文

0B 奥利雅文 泰米尔文

0C 泰卢固文 卡纳达文

0D 德拉维族文

0E 泰文 老挝文

0F

10 格鲁吉亚文

11 朝鲜文字母

12~1D

1E 拉丁文扩充增补

1F 希腊文扩充

20 广义标点 上下标 货币符号 符号组合用区分标志

21 类似字母的符号 数字形式 箭头

22 数学运算符

23 零杂技术用符号

24 控制图符 光学识别符 带括号的字母数字

25 制表符 方块元素 几何图形符

26 零杂符号

27 示意符等

28~2F

30 CJK符号和标点 平假名 片假名

31 注音 朝鲜文兼容字母 CJK零杂字符

32 带括号的CJK字母及月份

33 CJK兼容字符

留作将来标准化用

非图形字符

表示形式bull GB 13000提供了字符编码表示的两种替代使用的形式

ndash 双八位 BMP 形式( UCS-2 )mdashmdash允许使用 BMP 中的字符且每个字符用两个字节表示

ndash 肆八位正则形式( UCS-4 )mdashmdash允许使用 GB 13000 中的全部字符且每个字符用四个字节表示

bull 除了 UCS-24外还有另外两种变形的表示形式ndash UTF-8 (单字节 ~ 多字节)ndash UTF-16 (双字节和 4 字节与 UCS-2 等价)ndash 目前在工业上的实现均为 UTF-16 ( UCS-2 )和 UTF-8ndash UTF = Unicode UCS Transformation Format 统一码 UC

S转换格式bull 关于统一码我们会在下一小节详细介绍

7 GBK 与 GB 18030bull 由于 GB 13000 标准与 GB 2312 标准的字符编码不兼容作为过渡在国家信息技术标准化委员会的主持下制定了与 GB 2312兼容的《汉字内码扩展规范( GBK )》( K 为扩展的ldquo扩rdquo字的拼音首字母)并于 1995年 12月 15日由原国家技术监督局标准司联合原电子工业部科技与质量监督司作为指导性技术规范发布实施

bull 2000年 GBK又被国家标准 GB 18030-2000《信息技术 信息交换用汉字编码字符集 基本集的扩充》所代替该标准收汉字 2万 7千个

bull 与 GB 2312 一样 GB 18030 也为中国的强制性国家标准微软公司的 Windows XPVista78 中文版与苹果公司的 Mac OS X 和 iOS 谷歌公司的 Android (安卓)等操作系统已经全面支持 GBK

GB 18030 的码位范围分布

字节数 码位空间 码位数目

单字节 0x00~0x7F 128

双字节第 1字节 第 2字节

23 9400x81~0xFE

0x40~0x7E 0x80~0xFE

四字节第 1字节 第 2字节 第 3字节 第 4字节

1 587 6000x81~0xFE 0x30~0x39 0x81~0xFE 0x30~0x39

GB 18030的

总体结构图

收录字符bull 单字节部分mdashmdash收录了GBT 11383 的 0x00~0x7F 全部 128 个字符(似 ASCI

I )bull 双字节部分mdashmdash收录内容如下 (21 003 个汉字和 884 个符号共 21 887 个字符 )

ndash GB 130001-93 的全部 CJK 统一汉字字符 20 902 个( GB 2312 的编码汉字在双字节 2 区其他 CJK 统一汉字在双字节 34 区)

ndash GB 130001-93 的 CJK兼容区挑选出来的 21 个汉字ldquo郎凉秊helliphellip﨨﨩rdquo( 0xFD9C~0xFDA0 和 0xFE40~0xFE4F )

ndash GB 130001-93 中收录而 GB 2312未收录的台湾地区使用的图形字符 139 个ldquoˊˋ˙helliphelliprdquo( 0xA840~0xA895 和 0xA940~0XA988 )

ndash GB 130001-93收录的其他字符 31 ( 13)个(在双字节 5 区)ndash GB 2312-80 中的非汉字字符 682 个( 0xA1A1~0xA9EF )ndash GB 12345-90 的竖排标点符号 19 ( 29)个ldquo︵︶︹helliphellip︳︴rdquo( 0xA6D9~0xA6

F5 )ndash GB 2312-80未收录的 10 个小写罗马数字ldquoⅰⅱⅲhelliphellipⅸⅹrdquo( 0xA2A1~ 0xA2A

A )ndash GB 2312-80未收录的带音调的汉语拼音字母 5 ( 4)个ldquo ńňǹrdquo 以及 ɑ 和 ɡ ( 0

xA8BB~0xA8C0 )ndash 汉字数字零ldquo〇rdquo (0xA996) 和欧元符ldquoeurordquo (0xA2E3)ndash 表意文字描述符 13 个ldquohelliphelliprdquo( 0xA989~0xA995 )ndash 对 GB 130001-93增补的汉字和部首 构件 80 个ldquohelliphellip䶮rdquo( 0xFE50~ 0x

FEA0 )bull 四字节部分mdashmdash收录了上述双字节字符之外的包括 CJK 统一汉字扩充 A 在内

的 GB 130001-93 中的全部字符

GB 18030双字节部分的码位安排

类别 区名 码位范围 码位数 字符数 内容

符号区双字节 1区 A1A1~A9FE 846 718

GB 2312非汉字字符等

双字节 5区 A840~A9A0 192 166 台湾图符等

汉字区双字节 2区 B0A1~F7FE 6768 6763 GB 2312汉字双字节 3区 8140~A0FE 6080 6080 CJK统一汉字双字节 4区 AA40~FEA0 8160 8160 CJK统一汉字等

用户自定义区双字节用户区 1 AAA1~AFFE 564

用户自定义字符双字节用户区 2 F8A1~FEFE 658

双字节用户区 3 A140~A7A0 672

GB 18030双字节部分的编码空间结构图 尾字节

0x40larr――rarr0x7E 0x80larr――rarr0xA0 0xA1larr――――――――――――rarr0xFE

0x81 uarr darr

0xA0

0xA1 uarr darr

0xA7

0xA8 0xA9

首字节

0xAA uarr | | | | | | | | | | darr

0xFE

双字节 3区

汉字区6 080个码位

双字节用户区 3

用户自定义区672个码位

双字节 5区 图形符号区192个码位

双字节 4区

汉字区8 160个码位

双字节 1区

图形符号区564个码位

双字节 2区

汉字区6 768个码位

双字节用户区 1 用户自定义区564个码位

双字节用户区 2 用户自定义区658个码位

223 国际通用字符编码

bull Unicode (统一码)是由多语言软件制造商组成的统一码协会( httpwwwUnicodeorg)所制定一种国际字符的编码标准

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull 本节主要介绍这两种关系密切的主流国际字符编码标准的来历编码方案各自特点与相互关系

1 Unicode 统一码bull 发展历史

ndash 1987年施乐( Xerox )公司的 Joe Becker 与 Lee Collins 和苹果( Apple )公司的 Mark Davis 等人开始讨论统一编码 1987年 12月 Joe Becker造词 Unicode (统一码)含义为ldquo unique universal and uniform character encodingrdquo (单一通用统一的字符编码) 1989年 2月开始定期召开统一码会议 1989年 9月公布 Unicode草案

ndash 1991年 1月 3 日由 Xerox Apple Sun IBM Aldis Microsoft 等公司出资在美国加州成立了统一码协会( Unicode Consortium )并由协会设立非盈利性的统一码公司( Unicode Inc )后来 HP Adobe Borland Digital Lotus Novell 等公司也纷纷加入 1991年 1月成立统一码技术委员会 UTC 并制定了其规程

ndash 1991年 2月在 Ed Hart 的推动下进行了ldquo统一码对 10464 国际标准草案 1rdquo 的对话Unicode 与 ISOIEC 10646开始走向融合

ndash 1991年 8月发布 Unicode 标准 10版的第 1卷(体系结构非表意字符) 1992年6月发表 Unicode 10版的第 2卷(表意字符) 1993年 6月发布 Unicode 11版与 1993年 5月公布的 ISOIEC 10646-11993 实现了合并

ndash 1996年 7月发布 Unicode 20版ndash 1999年 9月发布 Unicode 30版ndash 2003年 4月发布 Unicode 40版(对应于 ISOIEC 106462003 ) 2004年 3月 31日发布 Unicode 401版 2005年 3月 31日发布 Unicode 410版

ndash 2006年 7月 14日发布 Unicode 50版 2008年 4月 4日发布 Unicode 51版 2009年 12月 22日发布 Unicode 52版

ndash 2010年 10月发布 Unicode 60版 2012年 1月发布 Unicode 61版(对应于 ISOIEC 106462012 ) 2012年 9月推出 Unicode 62版 2013年 9月推出 Unicode 63版

ndash 2014年 6月 16日发布 Unicode 70版 ndash 2015年 6月 17日发布 Unicode 80版

字符集bull Unicode 字符集的空间分成双字节的基本多语言平面 (Basic Multilingual Pla

ne BMP) 和 4 字节的辅助多语言平面 (Supplementary Multilingual Plane SMP) 两种

bull BMPndash Unicode 的基本平面或基本多语言平面 BMP 对应于 ISOIEC 10646-1 的第 00组的 00 平面( BMP )即 Unicode 与 ISOIEC 10646 的 BMP 中的字符编码完全一致

bull SMPndash 鉴于 Unicode 原有的 16位元空间不足以应用从 Unicode 31版本开始设立了 16 个辅助平面使 Unicode 的可使用空间由六万多字增至约一百万字

ndash 原有的 Unicode双字节空间称为基本平面或基本多语言平面 BMP 辅助多语言平面 SMP 字符要用 4 字节来储存

ndash 第一辅助平面摆放拼音文字(主要为现时已不再使用的文字)及符号范围在 U+10000 - U+1FFFD

ndash 第二辅助平面又称为表意文字补充平面 (Supplementary Ideographic Plane 简称 SIP) 现时摆放ldquo中日韩统汉字扩展 B 区rdquo共 43253 个汉字范围在 U+20000 - U+2FFFD

ndash 第三至十三辅助平面尚未使用ndash 第十四辅助平面又称为特殊用途补充平面 (Supplementary Special-purpose Pl

ane 简称 SSP) 摆放 Language tags 和 Variation Selectors 它们都是控制字符范围在 U+E0000 - U+E01FF

ndash 第十五至十六辅助平面都是私人使用区它们的范围是 U+F0000 - U+FFFFD 及 U+100000 - U+1000FD

bull Unicode 字符集的具体编码方式参加第 4小节ldquo 4 UTFrdquo

2 ISOIEC 10646

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull ISOIEC 10646 标准由 ISO 与 IEC 联合成立的 ISOIEC JTC1SC2WG2 制定ndash JTC 1 ( Joint Technical Committee 1 on Information

technology ISOIEC信息技术联合技术委员会 1 )负责信息技术方面标准的制定工作

ndash SC 2 ( SubCommittee 2 on Coded character sets 编码字符集分会 2 )下的 WG 2 ( Working Group 2 on Universal coded character set 通用编码字符集工作组 2 )负责制定国际通用字符编码标准即后来公布的 ISOIEC 10646

发展历史bull 1984年 ISO 的一些会员国发起制定新的国际字符编码标准同年 4月 ISO

与 IEC 联合成立 ISOIEC JTC1SC2WG2 1987年 3月制定出编码架构1992年 6月投票通过第二版国际标准草案

bull 1993年 5月推出 10646 标准时将内容分成两个部分标准首先发布的是其中的第 1 个部分(体系结构与基本多文种平面)的第 1版( Edition 1 ) ISOIEC 10646-11993 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane(信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

bull 2000年 3月推出 10646 标准第一个部分的第 2版( Edition 2 ) ISOIEC 10646-12000 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane

bull 2001年 10月推出 10646 标准第 2版的第二个部分(辅助平面)的第 1版( Edition 1 ) ISOIEC 10646-22001 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 2 Supplementary Planes

bull 2003年 10月推出的 10646新标准(第 1版 Edition 1 )将老标准中的两个部分标准合并成了一个单一的标准 ISOIEC 106462003 Information technology -- Universal Multiple- Octet Coded Character Set (UCS) 后来又于 2010年 2012年和 2014年分别推出了 ISOIEC 106462010 (第 2版)ISOIEC 106462012 (第 3版)和 ISOIEC 106462014 (第 4版)

UCS 通用字符集bull 通用字符集( Universal Character Set UCS )是

ISOIEC 10646 标准所定义的字符编码方式采用 4字节编码又称为 Universal Multiple-Octet Coded Character Set (通用多八位编码字符集)

bull 通用字符集是所有包括了其他字符集它保证了与其他字符集的双向兼容即如果你将任何文本字符串翻译到 UCS 格式然后再翻译回原编码你不会丢失任何信息

bull UCS 包含了已知语言的所有字符除了拉丁语希腊语斯拉夫语希伯来语阿拉伯语亚美尼亚语格鲁吉亚语还包括中文日文韩文这样的象形文字 UCS 还包括大量的图形印刷数学科学符号

名字与组合字符bull UCS 不仅给每个字符分配一个代码而且赋予了

一个正式的名字表示一个 UCS 或 Unicode值的十六进制数通常在前面加上ldquo U+rdquo 例如ldquo U+0041rdquo代表字符ldquo Ardquo

bull UCS里有些编码点分配给了组合字符组合字符机制允许在任何字符后加上重音符或其他指示标记 这在科学符号中特别有用 比如数学方程式和国际音标字母 可能会需要在一个基本字符后组合上一个或多个指示标记

实现级别bull 并不是所有的系统都需要支持像组合字符这样的的先进

机制因此 ISO 10646 指定了如下三种实现级别ndash 级别 1不支持组合字符和韩语 Hangul Jamo 字符 ( 一种特

别的 更加复杂的韩国文的编码 使用两个或三个子字符来编码一个韩文音节 )

ndash 级别 2类似于级别 1 但在某些文字中允许一列固定的组合字符 (例如 希伯来文 阿拉伯文 Devangari 孟加拉语 果鲁穆奇语 Gujarati Oriya 泰米尔语 Telugo 印 埃纳德语 Malayalam 泰国语和老挝语 ) 因为如果没有最起码的几个组合字符 UCS就不能完整地表达这些语言

ndash 级别 3支持所有的 UCS 字符如可以在任意一个字符上加上一个箭头或 和一个 tilde(颚化符号即字母上面的~ )

编码方式bull UCS 有如下两种编码方式

ndash UCS-2与 Unicode 的 2 字节编码基本一样ndash UCS-4 4 字节编码目前是在 UCS-2 前加

上 2 个全零的字节bull UCS 还有 UTF 编码方式参见下面第 4小节ldquo 4 UTFrdquo

3 Unicode 与 ISOIEC 10646bull 关系

ndash 历史上存在两个独立的尝试创立单一字符集的组织即国际标准化组织( ISO )和多语言软件制造商组成的统一码协会组织( Unicodeorg )前者开发的 ISO 10646项目后者开发的 Unicode项目因此最初制定了不同的标准

ndash 1991年前后两个项目的参与者都认识到世界不需要两个不兼容的字符集于是它们开始合并双方的工作成果并为创立一个单一编码表而协同工作

ndash 从 Unicode20开始 Unicode采用了与 ISO 10646-1相同的字库和字码 ISO 也承诺 ISO10646 将不会替超出 U+10FFFF 的 UCS-4 编码赋值以使得两者保持一致

ndash 两个项目仍都存在并独立地公布各自的标准但 Unicode协会和 ISOIEC JTC1SC2 都同意保持两者标准的码表兼容并紧密地共同调整任何未来的扩展

异同bull Unicode协会公布的 Unicode 标准包含了 ISO 10646-1 实现级别

3 的基本多文种平面在两个标准里所有的字符都在相同的位置并且有相同的名字

bull ISO 10646 标准就像 ISO 8859 标准一样只不过是一个简单的字符集表它定义了一些编码的别名指定了一些与标准有关的术语并包括了规范说明指定了怎样使用 UCS连接其他 ISO 标准的实现等

bull Unicode 标准额外定义了许多与字符有关的语义符号学并详细说明了绘制某些语言(如阿拉伯语)表达形式的算法处理双向文字(比如拉丁文和希伯来文的混合文字)的算法排序与字符串比较所需的算法等等

bull 考虑到 Unicode 标准有一个易记的名字既便宜又包括更多的辅助信息因而它使用得更广泛然而

bull 一般认为用于打印 ISO 10646-1 标准的字体在某些方面的质量要高于用于打印 Unicode 20 的专业字体设计者总是被建议说要两个标准都实现但一些提供的样例字形有显著的区别 ISO 10646-1 标准同样使用四种不同的风格变体来显示表意文字如中文日文和韩文 (CJK) 而 Unicode 20 的表里只有中文的变体

4 UTFbull Unicode 和 UCS 都是一个字符集可以看作为内码bull UTF ( UnicodeUCS Transformation Format 统一码

通用字符集转换格式)是一种编码方式它的出现是因为 Unicode 和 UCS 不适宜在某些场合直接传输和处理

bull UCS 和 Unicode 只是分配整数给字符的编码表现在存在好几种将一串字符表示为一串字节的方法(如高或低位字节在前)

bull 最显而易见的两种方法是将 UCS 和 Unicode 文本存储为 2 个 或 4 个字节序列的串这两种方法的正式名称分别为 UCS-2 和 UCS-4

bull 常用的 UTF具体编码方式有 UTF-8 UTF-16 和 UTF-32

UTF-8

bull UTF-8 是 UTF 的一种具体编码方式在 ISO 10646-1 的附录 R 和 IETF 的 RFC 2279 里定义

bull 由于要使文档中的文字与 ASCII兼容故 UTF-8 选择了使用可变长度字节来储存 Unicode 和 UCS 例如ndash ASCII 字母继续使用 1 字节储存ndash 重音文字希腊字母或西里尔字母等使用 2 字节来储存ndash 常用的汉字就要使用 3 字节ndash 辅助平面字符则使用 4 字节ndash 即 ASCII 不作变换其他字符做变长编码每个字符 1~4 字节

bull UTF-8 通常作为外码bull 在 UTF-8 文件的开首很多时都放置一个 U+FEFF 字符

(UTF-8 以 EF BB BF 代表 ) 以显示这个文字档案是以UTF-8 编码

UTF-8 的优点bull 与 CPU 字节顺序无关可以在不同平台之间交流

bull 容错能力高任何一个字节损坏后最多只会导致一个编码码位损失不会链锁错误 ( 如 GB 码错一个字节就会整行乱码 )

UTF-8 的缺点bull UTF-8 使用可变长度字节储存使计算机程序设计变得复杂 (故此在计算机程序或操作系统内部多采用 UCS-2 编码 )

bull 在旧式的中文日文及朝鲜文编码之中每字符都使用 2 字节储存而 UTF-8 须使用 3 字节 (采用 UTF-16 编码则可只使用 2字节储存 )

bull 泰语以往使用的 ISO 8859-11 每字符只使用 1 字节储存而 UTF-8 须使用 3 字节

UTF-8储存的多字节串字符bull U-00000000 - U-0000007F 0xxxxxxx bull U-00000080 - U-000007FF 110xxxxx 10xxxxxx

bull U-00000800 - U-0000FFFF 1110xxxx 10xxxxxx

10xxxxxx bull U-00010000 - U-001FFFFF 11110xxx 10xxxxx

x 10xxxxxx 10xxxxxx bull 在多字节串中第一个字节的开头ldquo 1rdquo 的数目就

是整个串中字节的数目bull 每个使用 UTF-8储存的字符除了第一个字节外其余字节的头两个位元都是以 10 开始使文字处理器能够较快地找出每个字符的开始位置

UTF-16bull UTF-16 是 UTF 的另一种具体编码方式在 ISO 1064

6-1 的附录 Q 和 IETF 的 RFC 2781 里定义bull UTF-16 是变长码( 2 或 4 字节)大致相当于 20位编码值在 0 到 0x10FFFF 之间基本上就是 Unicode 编码的实现 UTF-16 与 CPU 字序有关但因为最省空间常作为网络传输的外码 UTF-16 是 Unicode 的完美编码

bull lt0x10000 的直接用其对应的 16位整数编码位于 0x10000 ~ 0x10FFFF 之间的用 0xD800~0xDBFF 的 16位整数后跟 0xDC00~0xDFFF 的 16位整数的 4 字节编码 gt 0x10FFFF 的不能用 UTF-16 表示

bull 在 Unicode 的 BMP 中定义的字符(无论是拉丁字母汉字或其他文字或符号)一律使用 2 字节存储而在辅助平面定义的字符则以两个 2 字节的值来存储

UTF-16 的特点bull UTF-16比起 UTF-8 的好处在于大部分字符都以固定长

度的 2 字节存储但 UTF-16却无法相容于 ASCII 编码bull UTF-16 有两种编码模式即大尾序( big Endian 高位字节在前)和小尾序( little Endian 高位字节在后)储存形式(一般來說以 Macintosh 制作和存储的文字使用大尾序格式以 Microsoft 或 Linux 制作和存储的文字使用小尾序格式)

bull 为了弄区分 UTF-16 文件的大小尾序在 UTF-16 文件的开头都会放置一个 U+FEFF 字符作为字节顺序标记 (UTF-16LE 以 FF FE代表 UTF-16BE 以 FE FF代表 ) 以显示该文档是以 UTF-16 编码的

UTF-32

bull UTF-32 仅使用了 Unicode范围 (0 到 0x10FFFF) 的 32位编码相当于 UCS-4 的子集

bull 由于 Unicode 和 ISOIEC 10646 的编码和结构与前面讲过的 GB 13000 类似或等价这里就不再做详细的介绍

5支持bull 现在 UnicodeUCS 已经获得了十分广泛的支

持ndash网络与浏览器(如 HTML 4050 XML 与 IE

Safari Netscape Firefox Chrome Opera Edge 等)

ndash操作系统(如 Windows NT2000XPVista7810 Mac OS X iOS Android和 Linux )

ndash 编程语言新版本(如 CC++JavaObjective-CC Swift 等)

Unicode 代码的浏览器显示代码 字符标准名称 (英语 )

浏览器的显示

amp65 大写拉丁字母 A A

amp223 小写拉丁字母 Sharp S szlig

amp254 小写拉丁字母 Thorn thorn

amp916 大写希腊字母 Delta Δ

amp1049 大写斯拉夫字母 Short I Й

amp1511 希伯来字母 Qof ק

amp1605 阿拉伯字母 Meem م

amp3671 泰文数字 7 ๗amp4688 埃塞俄比亚音节文字 Qha ቐ

amp12354 日语平假名 A あamp12450 日语片假名 A アamp21494 简体汉字 叶 叶amp33865 繁体汉字 葉 葉amp50685 韩国音节文字 Yeob 엽

23 文字输出bull 文字输出是指将计算机内的字符编码通过计算机的输出设备(如显示器打印机喇叭)展现出所对应字符的图形或声音供人们阅读或聆听

bull 本节主要介绍文字图示输出的字形技术bull 文字声音输出属于语音合成只在本节的末尾作简单的介绍

231 字形技术bull 文字 = 图形bull 不论是象形文字中的单字还是拼音文字

中的字母都是用图形来表示的bull 在计算机里文字的表示 输出(显示和打

印)涉及ndash 字型ndash 字体ndash 字库

1字型bull 字型指构造和生成字形的方法一般可分为

ndash 点阵字 DOS 显卡 ROM 金山 科印特点似位图显示快占空间(字库大)放大后有马赛克效应

bull 显示字母 88 汉字 1616bull 打印 2424 4848 6464

ndash 矢量字单线条用于笔式绘图仪特点字库小算法简单难看

ndash 轮廓字用曲线描绘字的轮廓输出效果好所见即所得(WYSWYG) 可无级放大易实现空心 阴影 填充 变形等各种特效功能轮廓曲线一般采用样条曲线如 TrueType (Apple 1991 Mac OS Microsoft 1992 Windows 31)用的是二次 B 样条 Bezier曲线中文之星 RichWin采用的是三次 B 样条 Bezier曲线

字型种类

2字体bull 字体指字的形状风格如

ndash 汉字的

ndash 英文的

宋体楷体黑体仿宋

行楷隶书新魏幼圆

Times New Roman Arial Narrow Courier New

常用汉字字体bull 宋体mdashmdash宋体来自于北宋时雕版刻书所采用的欧体字(唐朝欧阳询体)宋体字的横顿拉捺挑钩别具特色间架平正疏密适中字体秀丽遒劲但笔画横细竖粗适合于刀刻不宜于手写现在宋体广泛用于印刷常来表现文档的正文

bull 仿宋体mdashmdash 1920年钱塘的丁辅之与丁善之等人将明代以后盛行的方廓形字体加以改造创造出长形和方形的聚珍仿宋后来演化为现在的仿宋体仿宋体比较接近于手写体为宋体和楷体的折中是采用的宋体的结构和楷体的笔法而成现常来表现打印文件以及文档的摘要和注释等

bull 黑体mdashmdash黑体是适应工艺美术的发展而出现的一种等线体是从日本引进的黑体的结构与宋体没有什么差别只是其笔画粗细一致健实粗壮主要用于文档的标题和重点及标语广告等方面

bull 楷体mdashmdash楷体源于楷书楷体的笔画圆浑笔调灵活结构端正美观但不宜于木板雕刻所以直到清末西洋的石板印刷术传入后才开始广泛用于印刷现代的楷体创造于 20世纪的二三十年代主要用于文档的正文(多用于中小学教材)也可用于工艺美术等方面

3字库bull 字库为一种文字的某一字体的所有字符的集合一般存放在一个磁盘文件中

bull 由于象形文字中单字的数量大(成千上万)而拼音文字中字母的数量小(不到一百个)所以字库的大小有很大的差别

bull 为了使文档界面丰富多彩常见的字处理软件都支持多种字体带有众多字库

4点阵字型的国家标准bull 我国已经公布了若干字体的点阵字型之国家标准

ndash GB 50071-19852001 信息技术 汉字编码字符集(基本集) 24 点阵字型

ndash GB 50072-19852001 信息技术 汉字编码字符集(辅助集) 24 点阵字型

ndash GB 5199-19862001 信息技术 汉字编码字符集(基本集) 16 点阵字型 宋体

ndash GB 6345-19862001 信息技术 汉字编码字符集(基本集) 32 点阵字型 宋体

ndash GB 12041-2001 信息技术 汉字编码字符集(基本集) 48点阵字型 宋体

ndash GB 17698-1999 信息技术 通用多八位编码字符集( I 区) 汉字 16 点阵字型

232 语音合成bull 文字的声音输出主要使用的是语音合成的技术bull 语音合成功能是ldquo文rarr语rdquo转换bull 文语转换 TTS (Text-To-Speech) 是将文本形式的信息转换成自然语音的一种技术其最终目标是使计算机输出清晰而又自然的声音

bull 英语的语音合成在上世纪 80年代就早已成熟而中文 汉语的合成现在也趋于成熟并有了广泛的应用(如汽车导航仪智能手机等)

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 28: 第一篇  媒体

222 中文编码bull 1 GB 1988 与 GB 2311

bull 2 GB 2312

bull 3汉字编码的辅助集bull 4 Big5

bull 5少数民族文字编码bull 6 GB 13000

bull 7 GBK 与 GB 18030

汉字编码bull 为了计算机处理汉字必须先对汉字进行编码由于汉

字数量大(《康熙字典》收字 47 035 个《汉语大字典》收字 54 678 个据统计在形成楷体后出现的汉字约有 9万个左右)显然不能像 ASCII那样用 7位或单字节来进行编码至少需要两个字节(最多可表示 6万5千多个字符)

bull 1980年我国制定了著名的 GB 2312-80双字节汉字编码标准(其中 GB 为ldquo国标rdquo这两个汉字的拼音首字母)收汉字 6 763 个

bull 1993年底又推出了等同于国际通用字符编码标准 ISOIEC 106461-1993 的国家标准 GB 130001-93 收汉字 20 902 个

bull 由于 GB 13000 与 GB 2312 的编码不兼容作为过渡2000年又公布了 GB 18030-2000 ( GBK )收汉字2万 7千个

1 GB 1988 与 GB 2311

bull 为了能够同时表示和处理汉字和英文实现中外文混排汉字编码必须兼容通用的 ASCII 编码因此1980年我国制定了与国际标准 ISO 6461972 (即ASCII )对应的国家标准 GB 1988-80《信息处理交换用的七位编码字符集》

bull 汉字成千上万不可能像 ASCII 一样只用单字节的七位来表示必须扩展到八位和多字节但是不能随意扩充而应该符合国际规范因此我国于 1980年又制定了与七位代码扩充到八位编码的国际标准 ISO 2022兼容的国家标准 GB 2311-80《信息处理交换用七位编码字符集的扩充办法》

GB 1988-80 ( ASCII )的代码结构图

行 0 1 2 3 4 5 6 7

0 SP

1 helliphellip

15

16

32个

控制符

94个

图形字符

DEL

GB 2311-80 的八位编码结构图列

行 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0 SP 100

1

helliphellip

14

15

C0

32个

控制符

GL

94或 96个

图形字符

DEL

C1

32个

控制符

GR

94或 96个

图形字符

1515

2 GB 2312

bull GB 2312-80《信息交换用汉字编码字符集 middot基本集》是我国制定的一个使用最广泛的汉字编码的强制性国家标准由原第四机械工业部的华北计算机研究所(后改名为电子工业部第十五研究所)起草1980年批准 1981年 5月 1日起实施

bull GB 2312-80 是在已有的国家标准 GB 1988-80(对应于 ISO 646 )和 GB 2311-80 (对应于 ISO 2022 )的基础上制定的采用与 ISO 2022兼容的GB 2311 之 7位到八位的代码扩充办法用双字节编码表示汉字与 ASCII兼容

收录的字符bull GB 2312 对应的是汉字的基本集共收汉字 6 763 个

可达到 9999 的使用频率因此除了极少数生僻的人名地名和古文外 GB 2312 中的汉字已经能基本满足平时的使用了

bull 除了汉字外 GB 2312 还收录了 682 个非汉字图形符号包括 202 个一般符号(含间隔符标点运算符和制表符) 60 个序号符 22 个数字符 52 个英文字母 169 个日文假名 48 个希腊字母 66 个俄文字母 26 个汉语拼音符号和 37 个汉语注音字母

bull 所以在 GB 2312-80 标准中共收录了( 6 763 汉字 + 682 非汉字图符 = ) 7 445 图形字符

两级汉字bull GB 2312 将其收录的六千多个汉字分成两个级别bull 一级汉字有 3 755 个都为使用频率高的常用汉

字为便于检索像字典那样将这些汉字按拼音字母顺序排列(同音字再按笔顺的横竖撇捺点折序排列)

bull 二级汉字有 3 008 个大部分较生僻不易掌握读音所以按部首顺序排列(同部首的字按笔画数排列同笔画数的字再按笔顺排列)

编码方案bull GB 2312 对所有图形字符(包括汉字和非汉字图符)都采用两个字节表示每个字节的低七位用于编码最高位全为 1 这样可以兼容 ASCII 编码(字节的最高位全为 0 )

bull 虽然在一个字节中最高位为 1 的符号位置有 128 个但从前面 GB 2311 的分析可知为了与 ASCII 的代码结构兼容保留了( 32 + 2 = ) 34 个控制符位置最后只有( 128 ndash 34 = ) 94 个符号位可供图形字符编码使用

bull 图形字符在代码表中的位置用区位码表示将码表分成94 个区对应于编码的第一个字节取值 0x21~0x7E 每个区又分成 94 个位对应于编码的第二个字节取值 0x21~0x7E (参见表 2-6 )

bull 例如ldquo中山大学rdquo的编码为中 (0xD6D0) 山 (0xC9BD) 大 (0xB4F3) 学 (0xD1A7)

GB 2312-80 字符集结构 20 21 22 helliphellip 7D 7E 7F

位号

区号

1 2 helliphellip 93 94

20

21~29 1~9 非汉字图符(682个)

2A~2F 10~15 空白区

30~57 16~55 一级汉字(3 755个)

58~77 56~87 二级汉字(3 008个)

78~7E 88~94 空白区

7F

第 1 区的部分非汉字图符

1区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 middot ˉ ˇ uml 々 mdash ~ hellip lsquo rsquo ldquo

17~32 rdquo 〔 〕 〈 〉 《 》 「 」 『 』 〖 〗 【 】 plusmn

33~48 times divide ∶ and or sum prod cup cap isin ∷ radic perp ∥ ang

49~64 ⊙ int ∮ equiv ≌ asymp ∽ prop ne ltu gtu le ge infin ∵ there4

65~80 deg prime Prime $ curren ¢ £ permil sect

81~94 rarr larr uarr darr

第 16 区的部分一级汉字

16区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 啊 阿 埃 挨 哎 唉 哀 皑 癌 蔼 矮 艾 碍 爱 隘 鞍

17~32 氨 安 俺 按 暗 岸 胺 案 肮 昂 盎 凹 敖 熬 翱 袄

33~48 傲 奥 懊 澳 芭 捌 扒 叭 吧 笆 八 疤 巴 拔 跋 靶

49~64 把 耙 坝 霸 罢 爸 白 柏 百 摆 佰 败 拜 稗 斑 班

65~80 搬 扳 般 颁 板 版 扮 拌 伴 瓣 半 办 绊 邦 帮 梆

81~94 榜 膀 绑 棒 磅 蚌 镑 傍 谤 苞 胞 包 褒 剥

第 56 区的部分二级汉字

56区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 亍 丌 兀 丐 廿 卅 丕 亘 丞 鬲 孬 噩 丨 禺 丿 匕

17~32 乇 夭 爻 卮 氐 囟 胤 馗 毓 睾 鼗 丶 亟 鼐 乜 乩

33~48 亓 芈 孛 啬 嘏 仄 厍 厝 厣 厥 厮 靥 赝 匚 叵 匦

49~64 匮 匾 赜 卦 卣 刂 刈 刎 刭 刳 刿 剀 剌 剞 剡 剜

65~80 蒯 剽 劂 劁 劐 劓 冂 罔 亻 仃 仉 仂 仨 仡 仫 仞

81~94 伛 仳 伢 佤 仵 伥 伧 伉 伫 佞 佧 攸 佚 佝

3汉字编码的辅助集bull 除了GB 2312基本集的 6 763 个简体汉字外国家标

准还给出了汉字编码字符集的多个辅助集bull 第二 四辅助集分别增加了 7 237 7 039 个简体汉字bull 第一和三 五辅助集则分别是与基本集和第二 四辅助集所对应的繁体汉字字符集的国家标准

bull 基本集加上辅助集共有 21 039 个简体汉字和 21 142个繁体汉字

bull 繁体汉字之所以多一些是因为在第一辅助集中有时几个繁体字对应一个简体字因此比基本集多出 103 个汉字

bull 基本集和辅助集的代码页之间靠其编码字节的最高位来区分

编码字符的分页标志

双字节汉字编码的页面结构第二字节 列号

行号 0 middot middot middot 32 33 34 helliphellip 125 126 127 128middot middot 160 161 162 helliphellip 254 255 0 middot middot 32

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

33 34 middot middot middot 126

1 2 middot middot middot 94

第四五辅助集 (7 039个汉字)

127

(兼容ASCII)

128 middot middot 160

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

161 162 middot middot middot 254

1 2 middot middot middot 94

第二三辅助集 (7 237个汉字)

1 2 middot middot middot 94

基本集第一辅助集 (6 763 6 866个汉字) (682个非汉字图符)

第一字节

255

4 Big5

bull 除了中国大陆使用的简体汉字外在台湾香港澳门和海外华侨社区使用的是传统的繁体汉字

bull 简体汉字使用 GB (国标)系列编码标准bull 繁体汉字一般使用的是 Big5内码(大五码)即台湾的ldquo资讯工业策进会rdquo发布的《标准交换码 (Ⅲ码 )》收录汉字 13 053 个

bull Big5内码是 1984年由台湾财团法人资讯工业策进会与宏碁 (Acer) 神通 (MiTAC) 佳佳零壹 (Zero One) 大众 (FIC) 等五大软件公司联合推出故称为大五码

BIG5 的代码空间低位字节

00 hellip 3F 40 hellip 7E 7F hellip A0 A1 hellip FE FF

高位字节

00middot

80

81middot

A0用户定义区 用户定义区

A1A2A3

非汉字图符 非汉字图符

A4middot

C6常用汉字 常用汉字

C7C8

用户定义区 用户定义区

C9middot

F9次常用汉字 次常用汉字

FAmiddot

FE用户定义区 用户定义区

FF

5少数民族文字编码bull 中国共有 56 个民族除了汉回满族一般使用汉语外其他少数民族大多有自己的民族语言

bull 我国各民族使用的 50 多种文字可以分为字母式结构文字和非字母式结构文字两大类ndash 字母式结构的有拉丁文斯拉夫文蒙古文维吾尔文哈萨克文藏文和朝鲜文等字母式

ndash 非字母式结构的有汉字象形文字图画文字和音节文字等bull 各民族文字的书写方向也有不同

ndash 壮文藏文朝鲜文彝文等的字从左到右行从上到下ndash 维吾尔文哈萨克文和柯尔克孜文等的字从右到左行从上

到下ndash 蒙古文和满文的字从上到下行从左到右ndash 汉字的书写方向有两种

bull 大陆的简体汉字的字从左到右行从上到下bull 港台与古旧书的繁体汉字的字从上到下行从右到左

国家标准bull 下面按发布时间列出若干已经公布的我国少数民族文字

编码集的国家标准(这些字符集一般分成两类对字母式结构文字采用八位编码对非字母式结构文字采用双字节编码)ndash GB 8045-87《信息处理交换用蒙古文七位和八位编码图形字

符集》收 82 个蒙古文字母和 12 个其他符号共 94 个字符ndash GB 12050-89《信息处理交换用维吾尔文编码图形字符集》收 32 个维吾尔文字母一个维吾尔文复合字符和 37 个其他符号共 70 个字符

ndash GB 12052-89《信息交换用朝鲜文编码字符集》收 5297 个朝鲜文字和 682 个其他符号(与 GB 2132同)共 5 979 个字符

ndash GB 13134-91《信息交换用彝文编码字符集》收 1165 个彝文字符和 688 个其他符号共 1853 个字符

ndash GB 16959-1997《信息技术 信息交换用藏文编码字符集 基本集》收 41 个藏文字母 36 个藏文主字 13 个元音字符12 个语音字符 10 个藏文数字 10 个半值符一个控制用连接符和 46 个其他藏文图形符号共 169 个字符

6 GB 13000bull GB 13000 是与 ISOIEC 10646 等价的国际通用编码字符集标准收汉字 2万多个但是与 GB 2312 和 GBK 不兼容

bull 1993年 5月 ISO 与 IEC 联合推出了可用于世界各种文字的通用编码字符集的国际标准的第 1部分ndash ISOIEC 10646-11993 Information technology -- Universal Multiple-Octe

t Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane (信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

ndash 该标准收字符 96万个几乎涵盖世界上的所有文字其中包含汉字 21 003 个

bull 1993年底我国推出了等同于国际标准 ISOIEC 1064611993 的强制性国家标准 ndash GB 130001-93《信息技术 通用多八位编码字符集( UCS ) 第一部分

体系结构与基本多文种平面》ndash 该标准于 1993年 12月 24日被国家技术监督局批准 1994年 8月 1日起实施

GB 13000 的主要特点

bull 世界各语言文种字符统一编码避免冲突便于国际交流

bull 编码空间宽阔连续每个图形字符的编码唯一(一字一码)不再存在兼容性问题

bull 按文种而不是按语言编码避免重复和浪费(如中日韩汉字的统一编码 CJK )

bull 与 GB 2312 和 GBK 不兼容

体系结构bull UCS 的体系结构是基于所谓ldquo多八位rdquo的而ldquo八位rdquo就是一个字节ldquo多八位rdquo就是多个字节

bull UCS采用 4 个字节来表征组面行位的四维空间bull 整个 UCS空间包含 128 个组( 0x00组 ~0x7F组)每组有 256 个平面( 0x00 平面 ~0xFF 平面)每个平面有 256 行每行又由 256 个字位构成

bull UCS共有( 128 times 256 = ) 32 768 个平面每个平面有( 256 times 256 = ) 65 536 个字位每个字位对应于一个字符的编码

bull 目前的编码只限于 00组已经定义的平面有 00组的00 平面mdashmdash称之为基本多文种平面 BMP ( Basic Multilingual Plane ) 及若干辅助平面

UCS 的全部编码空间

每个平面256times256 个

字位

00组 00 平面

00组 FF 平面

01组 00 平面

7F组 00 平面00

01组

7F组

UCS 的 00组

BMPbull BMP = Basic Multilingual Plane 基本多文种平面bull BMP 用作双八位编码字符集称之为 UCS-2 它被

分成四个区ndash A- 区(字位 0x0000~0x4DFF 有 19 903 个字位)用于

字母文字音节文字以及各种符号ndash I- 区(字位 0x4E00~0x9FFF 共 20 992 个字位)用于中日韩统一汉字( CJK )

ndash O- 区(字位 0xA000~0xDFFF 共 16 384 个字位)保留未来标准化用

ndash R- 区(字位 0xE000~0xFFFD 共 8 190 个字位)为 BMP 的限制使用区包括专用字符变形显现形式及兼容字符

BMP总貌

A-区

00~33 拼音文字(见下页)

34~3D 朝鲜文

3E~44 朝鲜文补充 -A

45~4D 朝鲜文补充 -B

I-区 4E~9F CJK统一汉字O-区 A0~DF

R-区

E0~F8 专用区

F9~FA CJK兼容汉字FB 拼音文字变形显现形式

FC~FD 阿拉伯文变形显现形式 -A

FE半形组合用标志

CJK兼容形式

小写变体

阿拉伯文变形显现形式 -B

FF 半形及全形字符 特殊字符

BMP 的0x00~0x33

行字母文字区

00 基本拉丁文 拉丁文-1补充

01 拉丁文扩充-A 拉丁文扩充-B

02 拉丁文扩充-B 国际音标扩充 进格修饰字符

03 组合用发音符 基本希腊文 希腊符号及哥普特文

04 西里尔文

05 美亚尼亚文 希伯来文(基本和扩充)

06 基本阿拉伯文 阿拉伯文扩充

07

08

09 梵文 孟加拉文

0A 锡克教文 古吉拉特文

0B 奥利雅文 泰米尔文

0C 泰卢固文 卡纳达文

0D 德拉维族文

0E 泰文 老挝文

0F

10 格鲁吉亚文

11 朝鲜文字母

12~1D

1E 拉丁文扩充增补

1F 希腊文扩充

20 广义标点 上下标 货币符号 符号组合用区分标志

21 类似字母的符号 数字形式 箭头

22 数学运算符

23 零杂技术用符号

24 控制图符 光学识别符 带括号的字母数字

25 制表符 方块元素 几何图形符

26 零杂符号

27 示意符等

28~2F

30 CJK符号和标点 平假名 片假名

31 注音 朝鲜文兼容字母 CJK零杂字符

32 带括号的CJK字母及月份

33 CJK兼容字符

留作将来标准化用

非图形字符

表示形式bull GB 13000提供了字符编码表示的两种替代使用的形式

ndash 双八位 BMP 形式( UCS-2 )mdashmdash允许使用 BMP 中的字符且每个字符用两个字节表示

ndash 肆八位正则形式( UCS-4 )mdashmdash允许使用 GB 13000 中的全部字符且每个字符用四个字节表示

bull 除了 UCS-24外还有另外两种变形的表示形式ndash UTF-8 (单字节 ~ 多字节)ndash UTF-16 (双字节和 4 字节与 UCS-2 等价)ndash 目前在工业上的实现均为 UTF-16 ( UCS-2 )和 UTF-8ndash UTF = Unicode UCS Transformation Format 统一码 UC

S转换格式bull 关于统一码我们会在下一小节详细介绍

7 GBK 与 GB 18030bull 由于 GB 13000 标准与 GB 2312 标准的字符编码不兼容作为过渡在国家信息技术标准化委员会的主持下制定了与 GB 2312兼容的《汉字内码扩展规范( GBK )》( K 为扩展的ldquo扩rdquo字的拼音首字母)并于 1995年 12月 15日由原国家技术监督局标准司联合原电子工业部科技与质量监督司作为指导性技术规范发布实施

bull 2000年 GBK又被国家标准 GB 18030-2000《信息技术 信息交换用汉字编码字符集 基本集的扩充》所代替该标准收汉字 2万 7千个

bull 与 GB 2312 一样 GB 18030 也为中国的强制性国家标准微软公司的 Windows XPVista78 中文版与苹果公司的 Mac OS X 和 iOS 谷歌公司的 Android (安卓)等操作系统已经全面支持 GBK

GB 18030 的码位范围分布

字节数 码位空间 码位数目

单字节 0x00~0x7F 128

双字节第 1字节 第 2字节

23 9400x81~0xFE

0x40~0x7E 0x80~0xFE

四字节第 1字节 第 2字节 第 3字节 第 4字节

1 587 6000x81~0xFE 0x30~0x39 0x81~0xFE 0x30~0x39

GB 18030的

总体结构图

收录字符bull 单字节部分mdashmdash收录了GBT 11383 的 0x00~0x7F 全部 128 个字符(似 ASCI

I )bull 双字节部分mdashmdash收录内容如下 (21 003 个汉字和 884 个符号共 21 887 个字符 )

ndash GB 130001-93 的全部 CJK 统一汉字字符 20 902 个( GB 2312 的编码汉字在双字节 2 区其他 CJK 统一汉字在双字节 34 区)

ndash GB 130001-93 的 CJK兼容区挑选出来的 21 个汉字ldquo郎凉秊helliphellip﨨﨩rdquo( 0xFD9C~0xFDA0 和 0xFE40~0xFE4F )

ndash GB 130001-93 中收录而 GB 2312未收录的台湾地区使用的图形字符 139 个ldquoˊˋ˙helliphelliprdquo( 0xA840~0xA895 和 0xA940~0XA988 )

ndash GB 130001-93收录的其他字符 31 ( 13)个(在双字节 5 区)ndash GB 2312-80 中的非汉字字符 682 个( 0xA1A1~0xA9EF )ndash GB 12345-90 的竖排标点符号 19 ( 29)个ldquo︵︶︹helliphellip︳︴rdquo( 0xA6D9~0xA6

F5 )ndash GB 2312-80未收录的 10 个小写罗马数字ldquoⅰⅱⅲhelliphellipⅸⅹrdquo( 0xA2A1~ 0xA2A

A )ndash GB 2312-80未收录的带音调的汉语拼音字母 5 ( 4)个ldquo ńňǹrdquo 以及 ɑ 和 ɡ ( 0

xA8BB~0xA8C0 )ndash 汉字数字零ldquo〇rdquo (0xA996) 和欧元符ldquoeurordquo (0xA2E3)ndash 表意文字描述符 13 个ldquohelliphelliprdquo( 0xA989~0xA995 )ndash 对 GB 130001-93增补的汉字和部首 构件 80 个ldquohelliphellip䶮rdquo( 0xFE50~ 0x

FEA0 )bull 四字节部分mdashmdash收录了上述双字节字符之外的包括 CJK 统一汉字扩充 A 在内

的 GB 130001-93 中的全部字符

GB 18030双字节部分的码位安排

类别 区名 码位范围 码位数 字符数 内容

符号区双字节 1区 A1A1~A9FE 846 718

GB 2312非汉字字符等

双字节 5区 A840~A9A0 192 166 台湾图符等

汉字区双字节 2区 B0A1~F7FE 6768 6763 GB 2312汉字双字节 3区 8140~A0FE 6080 6080 CJK统一汉字双字节 4区 AA40~FEA0 8160 8160 CJK统一汉字等

用户自定义区双字节用户区 1 AAA1~AFFE 564

用户自定义字符双字节用户区 2 F8A1~FEFE 658

双字节用户区 3 A140~A7A0 672

GB 18030双字节部分的编码空间结构图 尾字节

0x40larr――rarr0x7E 0x80larr――rarr0xA0 0xA1larr――――――――――――rarr0xFE

0x81 uarr darr

0xA0

0xA1 uarr darr

0xA7

0xA8 0xA9

首字节

0xAA uarr | | | | | | | | | | darr

0xFE

双字节 3区

汉字区6 080个码位

双字节用户区 3

用户自定义区672个码位

双字节 5区 图形符号区192个码位

双字节 4区

汉字区8 160个码位

双字节 1区

图形符号区564个码位

双字节 2区

汉字区6 768个码位

双字节用户区 1 用户自定义区564个码位

双字节用户区 2 用户自定义区658个码位

223 国际通用字符编码

bull Unicode (统一码)是由多语言软件制造商组成的统一码协会( httpwwwUnicodeorg)所制定一种国际字符的编码标准

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull 本节主要介绍这两种关系密切的主流国际字符编码标准的来历编码方案各自特点与相互关系

1 Unicode 统一码bull 发展历史

ndash 1987年施乐( Xerox )公司的 Joe Becker 与 Lee Collins 和苹果( Apple )公司的 Mark Davis 等人开始讨论统一编码 1987年 12月 Joe Becker造词 Unicode (统一码)含义为ldquo unique universal and uniform character encodingrdquo (单一通用统一的字符编码) 1989年 2月开始定期召开统一码会议 1989年 9月公布 Unicode草案

ndash 1991年 1月 3 日由 Xerox Apple Sun IBM Aldis Microsoft 等公司出资在美国加州成立了统一码协会( Unicode Consortium )并由协会设立非盈利性的统一码公司( Unicode Inc )后来 HP Adobe Borland Digital Lotus Novell 等公司也纷纷加入 1991年 1月成立统一码技术委员会 UTC 并制定了其规程

ndash 1991年 2月在 Ed Hart 的推动下进行了ldquo统一码对 10464 国际标准草案 1rdquo 的对话Unicode 与 ISOIEC 10646开始走向融合

ndash 1991年 8月发布 Unicode 标准 10版的第 1卷(体系结构非表意字符) 1992年6月发表 Unicode 10版的第 2卷(表意字符) 1993年 6月发布 Unicode 11版与 1993年 5月公布的 ISOIEC 10646-11993 实现了合并

ndash 1996年 7月发布 Unicode 20版ndash 1999年 9月发布 Unicode 30版ndash 2003年 4月发布 Unicode 40版(对应于 ISOIEC 106462003 ) 2004年 3月 31日发布 Unicode 401版 2005年 3月 31日发布 Unicode 410版

ndash 2006年 7月 14日发布 Unicode 50版 2008年 4月 4日发布 Unicode 51版 2009年 12月 22日发布 Unicode 52版

ndash 2010年 10月发布 Unicode 60版 2012年 1月发布 Unicode 61版(对应于 ISOIEC 106462012 ) 2012年 9月推出 Unicode 62版 2013年 9月推出 Unicode 63版

ndash 2014年 6月 16日发布 Unicode 70版 ndash 2015年 6月 17日发布 Unicode 80版

字符集bull Unicode 字符集的空间分成双字节的基本多语言平面 (Basic Multilingual Pla

ne BMP) 和 4 字节的辅助多语言平面 (Supplementary Multilingual Plane SMP) 两种

bull BMPndash Unicode 的基本平面或基本多语言平面 BMP 对应于 ISOIEC 10646-1 的第 00组的 00 平面( BMP )即 Unicode 与 ISOIEC 10646 的 BMP 中的字符编码完全一致

bull SMPndash 鉴于 Unicode 原有的 16位元空间不足以应用从 Unicode 31版本开始设立了 16 个辅助平面使 Unicode 的可使用空间由六万多字增至约一百万字

ndash 原有的 Unicode双字节空间称为基本平面或基本多语言平面 BMP 辅助多语言平面 SMP 字符要用 4 字节来储存

ndash 第一辅助平面摆放拼音文字(主要为现时已不再使用的文字)及符号范围在 U+10000 - U+1FFFD

ndash 第二辅助平面又称为表意文字补充平面 (Supplementary Ideographic Plane 简称 SIP) 现时摆放ldquo中日韩统汉字扩展 B 区rdquo共 43253 个汉字范围在 U+20000 - U+2FFFD

ndash 第三至十三辅助平面尚未使用ndash 第十四辅助平面又称为特殊用途补充平面 (Supplementary Special-purpose Pl

ane 简称 SSP) 摆放 Language tags 和 Variation Selectors 它们都是控制字符范围在 U+E0000 - U+E01FF

ndash 第十五至十六辅助平面都是私人使用区它们的范围是 U+F0000 - U+FFFFD 及 U+100000 - U+1000FD

bull Unicode 字符集的具体编码方式参加第 4小节ldquo 4 UTFrdquo

2 ISOIEC 10646

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull ISOIEC 10646 标准由 ISO 与 IEC 联合成立的 ISOIEC JTC1SC2WG2 制定ndash JTC 1 ( Joint Technical Committee 1 on Information

technology ISOIEC信息技术联合技术委员会 1 )负责信息技术方面标准的制定工作

ndash SC 2 ( SubCommittee 2 on Coded character sets 编码字符集分会 2 )下的 WG 2 ( Working Group 2 on Universal coded character set 通用编码字符集工作组 2 )负责制定国际通用字符编码标准即后来公布的 ISOIEC 10646

发展历史bull 1984年 ISO 的一些会员国发起制定新的国际字符编码标准同年 4月 ISO

与 IEC 联合成立 ISOIEC JTC1SC2WG2 1987年 3月制定出编码架构1992年 6月投票通过第二版国际标准草案

bull 1993年 5月推出 10646 标准时将内容分成两个部分标准首先发布的是其中的第 1 个部分(体系结构与基本多文种平面)的第 1版( Edition 1 ) ISOIEC 10646-11993 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane(信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

bull 2000年 3月推出 10646 标准第一个部分的第 2版( Edition 2 ) ISOIEC 10646-12000 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane

bull 2001年 10月推出 10646 标准第 2版的第二个部分(辅助平面)的第 1版( Edition 1 ) ISOIEC 10646-22001 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 2 Supplementary Planes

bull 2003年 10月推出的 10646新标准(第 1版 Edition 1 )将老标准中的两个部分标准合并成了一个单一的标准 ISOIEC 106462003 Information technology -- Universal Multiple- Octet Coded Character Set (UCS) 后来又于 2010年 2012年和 2014年分别推出了 ISOIEC 106462010 (第 2版)ISOIEC 106462012 (第 3版)和 ISOIEC 106462014 (第 4版)

UCS 通用字符集bull 通用字符集( Universal Character Set UCS )是

ISOIEC 10646 标准所定义的字符编码方式采用 4字节编码又称为 Universal Multiple-Octet Coded Character Set (通用多八位编码字符集)

bull 通用字符集是所有包括了其他字符集它保证了与其他字符集的双向兼容即如果你将任何文本字符串翻译到 UCS 格式然后再翻译回原编码你不会丢失任何信息

bull UCS 包含了已知语言的所有字符除了拉丁语希腊语斯拉夫语希伯来语阿拉伯语亚美尼亚语格鲁吉亚语还包括中文日文韩文这样的象形文字 UCS 还包括大量的图形印刷数学科学符号

名字与组合字符bull UCS 不仅给每个字符分配一个代码而且赋予了

一个正式的名字表示一个 UCS 或 Unicode值的十六进制数通常在前面加上ldquo U+rdquo 例如ldquo U+0041rdquo代表字符ldquo Ardquo

bull UCS里有些编码点分配给了组合字符组合字符机制允许在任何字符后加上重音符或其他指示标记 这在科学符号中特别有用 比如数学方程式和国际音标字母 可能会需要在一个基本字符后组合上一个或多个指示标记

实现级别bull 并不是所有的系统都需要支持像组合字符这样的的先进

机制因此 ISO 10646 指定了如下三种实现级别ndash 级别 1不支持组合字符和韩语 Hangul Jamo 字符 ( 一种特

别的 更加复杂的韩国文的编码 使用两个或三个子字符来编码一个韩文音节 )

ndash 级别 2类似于级别 1 但在某些文字中允许一列固定的组合字符 (例如 希伯来文 阿拉伯文 Devangari 孟加拉语 果鲁穆奇语 Gujarati Oriya 泰米尔语 Telugo 印 埃纳德语 Malayalam 泰国语和老挝语 ) 因为如果没有最起码的几个组合字符 UCS就不能完整地表达这些语言

ndash 级别 3支持所有的 UCS 字符如可以在任意一个字符上加上一个箭头或 和一个 tilde(颚化符号即字母上面的~ )

编码方式bull UCS 有如下两种编码方式

ndash UCS-2与 Unicode 的 2 字节编码基本一样ndash UCS-4 4 字节编码目前是在 UCS-2 前加

上 2 个全零的字节bull UCS 还有 UTF 编码方式参见下面第 4小节ldquo 4 UTFrdquo

3 Unicode 与 ISOIEC 10646bull 关系

ndash 历史上存在两个独立的尝试创立单一字符集的组织即国际标准化组织( ISO )和多语言软件制造商组成的统一码协会组织( Unicodeorg )前者开发的 ISO 10646项目后者开发的 Unicode项目因此最初制定了不同的标准

ndash 1991年前后两个项目的参与者都认识到世界不需要两个不兼容的字符集于是它们开始合并双方的工作成果并为创立一个单一编码表而协同工作

ndash 从 Unicode20开始 Unicode采用了与 ISO 10646-1相同的字库和字码 ISO 也承诺 ISO10646 将不会替超出 U+10FFFF 的 UCS-4 编码赋值以使得两者保持一致

ndash 两个项目仍都存在并独立地公布各自的标准但 Unicode协会和 ISOIEC JTC1SC2 都同意保持两者标准的码表兼容并紧密地共同调整任何未来的扩展

异同bull Unicode协会公布的 Unicode 标准包含了 ISO 10646-1 实现级别

3 的基本多文种平面在两个标准里所有的字符都在相同的位置并且有相同的名字

bull ISO 10646 标准就像 ISO 8859 标准一样只不过是一个简单的字符集表它定义了一些编码的别名指定了一些与标准有关的术语并包括了规范说明指定了怎样使用 UCS连接其他 ISO 标准的实现等

bull Unicode 标准额外定义了许多与字符有关的语义符号学并详细说明了绘制某些语言(如阿拉伯语)表达形式的算法处理双向文字(比如拉丁文和希伯来文的混合文字)的算法排序与字符串比较所需的算法等等

bull 考虑到 Unicode 标准有一个易记的名字既便宜又包括更多的辅助信息因而它使用得更广泛然而

bull 一般认为用于打印 ISO 10646-1 标准的字体在某些方面的质量要高于用于打印 Unicode 20 的专业字体设计者总是被建议说要两个标准都实现但一些提供的样例字形有显著的区别 ISO 10646-1 标准同样使用四种不同的风格变体来显示表意文字如中文日文和韩文 (CJK) 而 Unicode 20 的表里只有中文的变体

4 UTFbull Unicode 和 UCS 都是一个字符集可以看作为内码bull UTF ( UnicodeUCS Transformation Format 统一码

通用字符集转换格式)是一种编码方式它的出现是因为 Unicode 和 UCS 不适宜在某些场合直接传输和处理

bull UCS 和 Unicode 只是分配整数给字符的编码表现在存在好几种将一串字符表示为一串字节的方法(如高或低位字节在前)

bull 最显而易见的两种方法是将 UCS 和 Unicode 文本存储为 2 个 或 4 个字节序列的串这两种方法的正式名称分别为 UCS-2 和 UCS-4

bull 常用的 UTF具体编码方式有 UTF-8 UTF-16 和 UTF-32

UTF-8

bull UTF-8 是 UTF 的一种具体编码方式在 ISO 10646-1 的附录 R 和 IETF 的 RFC 2279 里定义

bull 由于要使文档中的文字与 ASCII兼容故 UTF-8 选择了使用可变长度字节来储存 Unicode 和 UCS 例如ndash ASCII 字母继续使用 1 字节储存ndash 重音文字希腊字母或西里尔字母等使用 2 字节来储存ndash 常用的汉字就要使用 3 字节ndash 辅助平面字符则使用 4 字节ndash 即 ASCII 不作变换其他字符做变长编码每个字符 1~4 字节

bull UTF-8 通常作为外码bull 在 UTF-8 文件的开首很多时都放置一个 U+FEFF 字符

(UTF-8 以 EF BB BF 代表 ) 以显示这个文字档案是以UTF-8 编码

UTF-8 的优点bull 与 CPU 字节顺序无关可以在不同平台之间交流

bull 容错能力高任何一个字节损坏后最多只会导致一个编码码位损失不会链锁错误 ( 如 GB 码错一个字节就会整行乱码 )

UTF-8 的缺点bull UTF-8 使用可变长度字节储存使计算机程序设计变得复杂 (故此在计算机程序或操作系统内部多采用 UCS-2 编码 )

bull 在旧式的中文日文及朝鲜文编码之中每字符都使用 2 字节储存而 UTF-8 须使用 3 字节 (采用 UTF-16 编码则可只使用 2字节储存 )

bull 泰语以往使用的 ISO 8859-11 每字符只使用 1 字节储存而 UTF-8 须使用 3 字节

UTF-8储存的多字节串字符bull U-00000000 - U-0000007F 0xxxxxxx bull U-00000080 - U-000007FF 110xxxxx 10xxxxxx

bull U-00000800 - U-0000FFFF 1110xxxx 10xxxxxx

10xxxxxx bull U-00010000 - U-001FFFFF 11110xxx 10xxxxx

x 10xxxxxx 10xxxxxx bull 在多字节串中第一个字节的开头ldquo 1rdquo 的数目就

是整个串中字节的数目bull 每个使用 UTF-8储存的字符除了第一个字节外其余字节的头两个位元都是以 10 开始使文字处理器能够较快地找出每个字符的开始位置

UTF-16bull UTF-16 是 UTF 的另一种具体编码方式在 ISO 1064

6-1 的附录 Q 和 IETF 的 RFC 2781 里定义bull UTF-16 是变长码( 2 或 4 字节)大致相当于 20位编码值在 0 到 0x10FFFF 之间基本上就是 Unicode 编码的实现 UTF-16 与 CPU 字序有关但因为最省空间常作为网络传输的外码 UTF-16 是 Unicode 的完美编码

bull lt0x10000 的直接用其对应的 16位整数编码位于 0x10000 ~ 0x10FFFF 之间的用 0xD800~0xDBFF 的 16位整数后跟 0xDC00~0xDFFF 的 16位整数的 4 字节编码 gt 0x10FFFF 的不能用 UTF-16 表示

bull 在 Unicode 的 BMP 中定义的字符(无论是拉丁字母汉字或其他文字或符号)一律使用 2 字节存储而在辅助平面定义的字符则以两个 2 字节的值来存储

UTF-16 的特点bull UTF-16比起 UTF-8 的好处在于大部分字符都以固定长

度的 2 字节存储但 UTF-16却无法相容于 ASCII 编码bull UTF-16 有两种编码模式即大尾序( big Endian 高位字节在前)和小尾序( little Endian 高位字节在后)储存形式(一般來說以 Macintosh 制作和存储的文字使用大尾序格式以 Microsoft 或 Linux 制作和存储的文字使用小尾序格式)

bull 为了弄区分 UTF-16 文件的大小尾序在 UTF-16 文件的开头都会放置一个 U+FEFF 字符作为字节顺序标记 (UTF-16LE 以 FF FE代表 UTF-16BE 以 FE FF代表 ) 以显示该文档是以 UTF-16 编码的

UTF-32

bull UTF-32 仅使用了 Unicode范围 (0 到 0x10FFFF) 的 32位编码相当于 UCS-4 的子集

bull 由于 Unicode 和 ISOIEC 10646 的编码和结构与前面讲过的 GB 13000 类似或等价这里就不再做详细的介绍

5支持bull 现在 UnicodeUCS 已经获得了十分广泛的支

持ndash网络与浏览器(如 HTML 4050 XML 与 IE

Safari Netscape Firefox Chrome Opera Edge 等)

ndash操作系统(如 Windows NT2000XPVista7810 Mac OS X iOS Android和 Linux )

ndash 编程语言新版本(如 CC++JavaObjective-CC Swift 等)

Unicode 代码的浏览器显示代码 字符标准名称 (英语 )

浏览器的显示

amp65 大写拉丁字母 A A

amp223 小写拉丁字母 Sharp S szlig

amp254 小写拉丁字母 Thorn thorn

amp916 大写希腊字母 Delta Δ

amp1049 大写斯拉夫字母 Short I Й

amp1511 希伯来字母 Qof ק

amp1605 阿拉伯字母 Meem م

amp3671 泰文数字 7 ๗amp4688 埃塞俄比亚音节文字 Qha ቐ

amp12354 日语平假名 A あamp12450 日语片假名 A アamp21494 简体汉字 叶 叶amp33865 繁体汉字 葉 葉amp50685 韩国音节文字 Yeob 엽

23 文字输出bull 文字输出是指将计算机内的字符编码通过计算机的输出设备(如显示器打印机喇叭)展现出所对应字符的图形或声音供人们阅读或聆听

bull 本节主要介绍文字图示输出的字形技术bull 文字声音输出属于语音合成只在本节的末尾作简单的介绍

231 字形技术bull 文字 = 图形bull 不论是象形文字中的单字还是拼音文字

中的字母都是用图形来表示的bull 在计算机里文字的表示 输出(显示和打

印)涉及ndash 字型ndash 字体ndash 字库

1字型bull 字型指构造和生成字形的方法一般可分为

ndash 点阵字 DOS 显卡 ROM 金山 科印特点似位图显示快占空间(字库大)放大后有马赛克效应

bull 显示字母 88 汉字 1616bull 打印 2424 4848 6464

ndash 矢量字单线条用于笔式绘图仪特点字库小算法简单难看

ndash 轮廓字用曲线描绘字的轮廓输出效果好所见即所得(WYSWYG) 可无级放大易实现空心 阴影 填充 变形等各种特效功能轮廓曲线一般采用样条曲线如 TrueType (Apple 1991 Mac OS Microsoft 1992 Windows 31)用的是二次 B 样条 Bezier曲线中文之星 RichWin采用的是三次 B 样条 Bezier曲线

字型种类

2字体bull 字体指字的形状风格如

ndash 汉字的

ndash 英文的

宋体楷体黑体仿宋

行楷隶书新魏幼圆

Times New Roman Arial Narrow Courier New

常用汉字字体bull 宋体mdashmdash宋体来自于北宋时雕版刻书所采用的欧体字(唐朝欧阳询体)宋体字的横顿拉捺挑钩别具特色间架平正疏密适中字体秀丽遒劲但笔画横细竖粗适合于刀刻不宜于手写现在宋体广泛用于印刷常来表现文档的正文

bull 仿宋体mdashmdash 1920年钱塘的丁辅之与丁善之等人将明代以后盛行的方廓形字体加以改造创造出长形和方形的聚珍仿宋后来演化为现在的仿宋体仿宋体比较接近于手写体为宋体和楷体的折中是采用的宋体的结构和楷体的笔法而成现常来表现打印文件以及文档的摘要和注释等

bull 黑体mdashmdash黑体是适应工艺美术的发展而出现的一种等线体是从日本引进的黑体的结构与宋体没有什么差别只是其笔画粗细一致健实粗壮主要用于文档的标题和重点及标语广告等方面

bull 楷体mdashmdash楷体源于楷书楷体的笔画圆浑笔调灵活结构端正美观但不宜于木板雕刻所以直到清末西洋的石板印刷术传入后才开始广泛用于印刷现代的楷体创造于 20世纪的二三十年代主要用于文档的正文(多用于中小学教材)也可用于工艺美术等方面

3字库bull 字库为一种文字的某一字体的所有字符的集合一般存放在一个磁盘文件中

bull 由于象形文字中单字的数量大(成千上万)而拼音文字中字母的数量小(不到一百个)所以字库的大小有很大的差别

bull 为了使文档界面丰富多彩常见的字处理软件都支持多种字体带有众多字库

4点阵字型的国家标准bull 我国已经公布了若干字体的点阵字型之国家标准

ndash GB 50071-19852001 信息技术 汉字编码字符集(基本集) 24 点阵字型

ndash GB 50072-19852001 信息技术 汉字编码字符集(辅助集) 24 点阵字型

ndash GB 5199-19862001 信息技术 汉字编码字符集(基本集) 16 点阵字型 宋体

ndash GB 6345-19862001 信息技术 汉字编码字符集(基本集) 32 点阵字型 宋体

ndash GB 12041-2001 信息技术 汉字编码字符集(基本集) 48点阵字型 宋体

ndash GB 17698-1999 信息技术 通用多八位编码字符集( I 区) 汉字 16 点阵字型

232 语音合成bull 文字的声音输出主要使用的是语音合成的技术bull 语音合成功能是ldquo文rarr语rdquo转换bull 文语转换 TTS (Text-To-Speech) 是将文本形式的信息转换成自然语音的一种技术其最终目标是使计算机输出清晰而又自然的声音

bull 英语的语音合成在上世纪 80年代就早已成熟而中文 汉语的合成现在也趋于成熟并有了广泛的应用(如汽车导航仪智能手机等)

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 29: 第一篇  媒体

汉字编码bull 为了计算机处理汉字必须先对汉字进行编码由于汉

字数量大(《康熙字典》收字 47 035 个《汉语大字典》收字 54 678 个据统计在形成楷体后出现的汉字约有 9万个左右)显然不能像 ASCII那样用 7位或单字节来进行编码至少需要两个字节(最多可表示 6万5千多个字符)

bull 1980年我国制定了著名的 GB 2312-80双字节汉字编码标准(其中 GB 为ldquo国标rdquo这两个汉字的拼音首字母)收汉字 6 763 个

bull 1993年底又推出了等同于国际通用字符编码标准 ISOIEC 106461-1993 的国家标准 GB 130001-93 收汉字 20 902 个

bull 由于 GB 13000 与 GB 2312 的编码不兼容作为过渡2000年又公布了 GB 18030-2000 ( GBK )收汉字2万 7千个

1 GB 1988 与 GB 2311

bull 为了能够同时表示和处理汉字和英文实现中外文混排汉字编码必须兼容通用的 ASCII 编码因此1980年我国制定了与国际标准 ISO 6461972 (即ASCII )对应的国家标准 GB 1988-80《信息处理交换用的七位编码字符集》

bull 汉字成千上万不可能像 ASCII 一样只用单字节的七位来表示必须扩展到八位和多字节但是不能随意扩充而应该符合国际规范因此我国于 1980年又制定了与七位代码扩充到八位编码的国际标准 ISO 2022兼容的国家标准 GB 2311-80《信息处理交换用七位编码字符集的扩充办法》

GB 1988-80 ( ASCII )的代码结构图

行 0 1 2 3 4 5 6 7

0 SP

1 helliphellip

15

16

32个

控制符

94个

图形字符

DEL

GB 2311-80 的八位编码结构图列

行 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0 SP 100

1

helliphellip

14

15

C0

32个

控制符

GL

94或 96个

图形字符

DEL

C1

32个

控制符

GR

94或 96个

图形字符

1515

2 GB 2312

bull GB 2312-80《信息交换用汉字编码字符集 middot基本集》是我国制定的一个使用最广泛的汉字编码的强制性国家标准由原第四机械工业部的华北计算机研究所(后改名为电子工业部第十五研究所)起草1980年批准 1981年 5月 1日起实施

bull GB 2312-80 是在已有的国家标准 GB 1988-80(对应于 ISO 646 )和 GB 2311-80 (对应于 ISO 2022 )的基础上制定的采用与 ISO 2022兼容的GB 2311 之 7位到八位的代码扩充办法用双字节编码表示汉字与 ASCII兼容

收录的字符bull GB 2312 对应的是汉字的基本集共收汉字 6 763 个

可达到 9999 的使用频率因此除了极少数生僻的人名地名和古文外 GB 2312 中的汉字已经能基本满足平时的使用了

bull 除了汉字外 GB 2312 还收录了 682 个非汉字图形符号包括 202 个一般符号(含间隔符标点运算符和制表符) 60 个序号符 22 个数字符 52 个英文字母 169 个日文假名 48 个希腊字母 66 个俄文字母 26 个汉语拼音符号和 37 个汉语注音字母

bull 所以在 GB 2312-80 标准中共收录了( 6 763 汉字 + 682 非汉字图符 = ) 7 445 图形字符

两级汉字bull GB 2312 将其收录的六千多个汉字分成两个级别bull 一级汉字有 3 755 个都为使用频率高的常用汉

字为便于检索像字典那样将这些汉字按拼音字母顺序排列(同音字再按笔顺的横竖撇捺点折序排列)

bull 二级汉字有 3 008 个大部分较生僻不易掌握读音所以按部首顺序排列(同部首的字按笔画数排列同笔画数的字再按笔顺排列)

编码方案bull GB 2312 对所有图形字符(包括汉字和非汉字图符)都采用两个字节表示每个字节的低七位用于编码最高位全为 1 这样可以兼容 ASCII 编码(字节的最高位全为 0 )

bull 虽然在一个字节中最高位为 1 的符号位置有 128 个但从前面 GB 2311 的分析可知为了与 ASCII 的代码结构兼容保留了( 32 + 2 = ) 34 个控制符位置最后只有( 128 ndash 34 = ) 94 个符号位可供图形字符编码使用

bull 图形字符在代码表中的位置用区位码表示将码表分成94 个区对应于编码的第一个字节取值 0x21~0x7E 每个区又分成 94 个位对应于编码的第二个字节取值 0x21~0x7E (参见表 2-6 )

bull 例如ldquo中山大学rdquo的编码为中 (0xD6D0) 山 (0xC9BD) 大 (0xB4F3) 学 (0xD1A7)

GB 2312-80 字符集结构 20 21 22 helliphellip 7D 7E 7F

位号

区号

1 2 helliphellip 93 94

20

21~29 1~9 非汉字图符(682个)

2A~2F 10~15 空白区

30~57 16~55 一级汉字(3 755个)

58~77 56~87 二级汉字(3 008个)

78~7E 88~94 空白区

7F

第 1 区的部分非汉字图符

1区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 middot ˉ ˇ uml 々 mdash ~ hellip lsquo rsquo ldquo

17~32 rdquo 〔 〕 〈 〉 《 》 「 」 『 』 〖 〗 【 】 plusmn

33~48 times divide ∶ and or sum prod cup cap isin ∷ radic perp ∥ ang

49~64 ⊙ int ∮ equiv ≌ asymp ∽ prop ne ltu gtu le ge infin ∵ there4

65~80 deg prime Prime $ curren ¢ £ permil sect

81~94 rarr larr uarr darr

第 16 区的部分一级汉字

16区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 啊 阿 埃 挨 哎 唉 哀 皑 癌 蔼 矮 艾 碍 爱 隘 鞍

17~32 氨 安 俺 按 暗 岸 胺 案 肮 昂 盎 凹 敖 熬 翱 袄

33~48 傲 奥 懊 澳 芭 捌 扒 叭 吧 笆 八 疤 巴 拔 跋 靶

49~64 把 耙 坝 霸 罢 爸 白 柏 百 摆 佰 败 拜 稗 斑 班

65~80 搬 扳 般 颁 板 版 扮 拌 伴 瓣 半 办 绊 邦 帮 梆

81~94 榜 膀 绑 棒 磅 蚌 镑 傍 谤 苞 胞 包 褒 剥

第 56 区的部分二级汉字

56区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 亍 丌 兀 丐 廿 卅 丕 亘 丞 鬲 孬 噩 丨 禺 丿 匕

17~32 乇 夭 爻 卮 氐 囟 胤 馗 毓 睾 鼗 丶 亟 鼐 乜 乩

33~48 亓 芈 孛 啬 嘏 仄 厍 厝 厣 厥 厮 靥 赝 匚 叵 匦

49~64 匮 匾 赜 卦 卣 刂 刈 刎 刭 刳 刿 剀 剌 剞 剡 剜

65~80 蒯 剽 劂 劁 劐 劓 冂 罔 亻 仃 仉 仂 仨 仡 仫 仞

81~94 伛 仳 伢 佤 仵 伥 伧 伉 伫 佞 佧 攸 佚 佝

3汉字编码的辅助集bull 除了GB 2312基本集的 6 763 个简体汉字外国家标

准还给出了汉字编码字符集的多个辅助集bull 第二 四辅助集分别增加了 7 237 7 039 个简体汉字bull 第一和三 五辅助集则分别是与基本集和第二 四辅助集所对应的繁体汉字字符集的国家标准

bull 基本集加上辅助集共有 21 039 个简体汉字和 21 142个繁体汉字

bull 繁体汉字之所以多一些是因为在第一辅助集中有时几个繁体字对应一个简体字因此比基本集多出 103 个汉字

bull 基本集和辅助集的代码页之间靠其编码字节的最高位来区分

编码字符的分页标志

双字节汉字编码的页面结构第二字节 列号

行号 0 middot middot middot 32 33 34 helliphellip 125 126 127 128middot middot 160 161 162 helliphellip 254 255 0 middot middot 32

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

33 34 middot middot middot 126

1 2 middot middot middot 94

第四五辅助集 (7 039个汉字)

127

(兼容ASCII)

128 middot middot 160

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

161 162 middot middot middot 254

1 2 middot middot middot 94

第二三辅助集 (7 237个汉字)

1 2 middot middot middot 94

基本集第一辅助集 (6 763 6 866个汉字) (682个非汉字图符)

第一字节

255

4 Big5

bull 除了中国大陆使用的简体汉字外在台湾香港澳门和海外华侨社区使用的是传统的繁体汉字

bull 简体汉字使用 GB (国标)系列编码标准bull 繁体汉字一般使用的是 Big5内码(大五码)即台湾的ldquo资讯工业策进会rdquo发布的《标准交换码 (Ⅲ码 )》收录汉字 13 053 个

bull Big5内码是 1984年由台湾财团法人资讯工业策进会与宏碁 (Acer) 神通 (MiTAC) 佳佳零壹 (Zero One) 大众 (FIC) 等五大软件公司联合推出故称为大五码

BIG5 的代码空间低位字节

00 hellip 3F 40 hellip 7E 7F hellip A0 A1 hellip FE FF

高位字节

00middot

80

81middot

A0用户定义区 用户定义区

A1A2A3

非汉字图符 非汉字图符

A4middot

C6常用汉字 常用汉字

C7C8

用户定义区 用户定义区

C9middot

F9次常用汉字 次常用汉字

FAmiddot

FE用户定义区 用户定义区

FF

5少数民族文字编码bull 中国共有 56 个民族除了汉回满族一般使用汉语外其他少数民族大多有自己的民族语言

bull 我国各民族使用的 50 多种文字可以分为字母式结构文字和非字母式结构文字两大类ndash 字母式结构的有拉丁文斯拉夫文蒙古文维吾尔文哈萨克文藏文和朝鲜文等字母式

ndash 非字母式结构的有汉字象形文字图画文字和音节文字等bull 各民族文字的书写方向也有不同

ndash 壮文藏文朝鲜文彝文等的字从左到右行从上到下ndash 维吾尔文哈萨克文和柯尔克孜文等的字从右到左行从上

到下ndash 蒙古文和满文的字从上到下行从左到右ndash 汉字的书写方向有两种

bull 大陆的简体汉字的字从左到右行从上到下bull 港台与古旧书的繁体汉字的字从上到下行从右到左

国家标准bull 下面按发布时间列出若干已经公布的我国少数民族文字

编码集的国家标准(这些字符集一般分成两类对字母式结构文字采用八位编码对非字母式结构文字采用双字节编码)ndash GB 8045-87《信息处理交换用蒙古文七位和八位编码图形字

符集》收 82 个蒙古文字母和 12 个其他符号共 94 个字符ndash GB 12050-89《信息处理交换用维吾尔文编码图形字符集》收 32 个维吾尔文字母一个维吾尔文复合字符和 37 个其他符号共 70 个字符

ndash GB 12052-89《信息交换用朝鲜文编码字符集》收 5297 个朝鲜文字和 682 个其他符号(与 GB 2132同)共 5 979 个字符

ndash GB 13134-91《信息交换用彝文编码字符集》收 1165 个彝文字符和 688 个其他符号共 1853 个字符

ndash GB 16959-1997《信息技术 信息交换用藏文编码字符集 基本集》收 41 个藏文字母 36 个藏文主字 13 个元音字符12 个语音字符 10 个藏文数字 10 个半值符一个控制用连接符和 46 个其他藏文图形符号共 169 个字符

6 GB 13000bull GB 13000 是与 ISOIEC 10646 等价的国际通用编码字符集标准收汉字 2万多个但是与 GB 2312 和 GBK 不兼容

bull 1993年 5月 ISO 与 IEC 联合推出了可用于世界各种文字的通用编码字符集的国际标准的第 1部分ndash ISOIEC 10646-11993 Information technology -- Universal Multiple-Octe

t Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane (信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

ndash 该标准收字符 96万个几乎涵盖世界上的所有文字其中包含汉字 21 003 个

bull 1993年底我国推出了等同于国际标准 ISOIEC 1064611993 的强制性国家标准 ndash GB 130001-93《信息技术 通用多八位编码字符集( UCS ) 第一部分

体系结构与基本多文种平面》ndash 该标准于 1993年 12月 24日被国家技术监督局批准 1994年 8月 1日起实施

GB 13000 的主要特点

bull 世界各语言文种字符统一编码避免冲突便于国际交流

bull 编码空间宽阔连续每个图形字符的编码唯一(一字一码)不再存在兼容性问题

bull 按文种而不是按语言编码避免重复和浪费(如中日韩汉字的统一编码 CJK )

bull 与 GB 2312 和 GBK 不兼容

体系结构bull UCS 的体系结构是基于所谓ldquo多八位rdquo的而ldquo八位rdquo就是一个字节ldquo多八位rdquo就是多个字节

bull UCS采用 4 个字节来表征组面行位的四维空间bull 整个 UCS空间包含 128 个组( 0x00组 ~0x7F组)每组有 256 个平面( 0x00 平面 ~0xFF 平面)每个平面有 256 行每行又由 256 个字位构成

bull UCS共有( 128 times 256 = ) 32 768 个平面每个平面有( 256 times 256 = ) 65 536 个字位每个字位对应于一个字符的编码

bull 目前的编码只限于 00组已经定义的平面有 00组的00 平面mdashmdash称之为基本多文种平面 BMP ( Basic Multilingual Plane ) 及若干辅助平面

UCS 的全部编码空间

每个平面256times256 个

字位

00组 00 平面

00组 FF 平面

01组 00 平面

7F组 00 平面00

01组

7F组

UCS 的 00组

BMPbull BMP = Basic Multilingual Plane 基本多文种平面bull BMP 用作双八位编码字符集称之为 UCS-2 它被

分成四个区ndash A- 区(字位 0x0000~0x4DFF 有 19 903 个字位)用于

字母文字音节文字以及各种符号ndash I- 区(字位 0x4E00~0x9FFF 共 20 992 个字位)用于中日韩统一汉字( CJK )

ndash O- 区(字位 0xA000~0xDFFF 共 16 384 个字位)保留未来标准化用

ndash R- 区(字位 0xE000~0xFFFD 共 8 190 个字位)为 BMP 的限制使用区包括专用字符变形显现形式及兼容字符

BMP总貌

A-区

00~33 拼音文字(见下页)

34~3D 朝鲜文

3E~44 朝鲜文补充 -A

45~4D 朝鲜文补充 -B

I-区 4E~9F CJK统一汉字O-区 A0~DF

R-区

E0~F8 专用区

F9~FA CJK兼容汉字FB 拼音文字变形显现形式

FC~FD 阿拉伯文变形显现形式 -A

FE半形组合用标志

CJK兼容形式

小写变体

阿拉伯文变形显现形式 -B

FF 半形及全形字符 特殊字符

BMP 的0x00~0x33

行字母文字区

00 基本拉丁文 拉丁文-1补充

01 拉丁文扩充-A 拉丁文扩充-B

02 拉丁文扩充-B 国际音标扩充 进格修饰字符

03 组合用发音符 基本希腊文 希腊符号及哥普特文

04 西里尔文

05 美亚尼亚文 希伯来文(基本和扩充)

06 基本阿拉伯文 阿拉伯文扩充

07

08

09 梵文 孟加拉文

0A 锡克教文 古吉拉特文

0B 奥利雅文 泰米尔文

0C 泰卢固文 卡纳达文

0D 德拉维族文

0E 泰文 老挝文

0F

10 格鲁吉亚文

11 朝鲜文字母

12~1D

1E 拉丁文扩充增补

1F 希腊文扩充

20 广义标点 上下标 货币符号 符号组合用区分标志

21 类似字母的符号 数字形式 箭头

22 数学运算符

23 零杂技术用符号

24 控制图符 光学识别符 带括号的字母数字

25 制表符 方块元素 几何图形符

26 零杂符号

27 示意符等

28~2F

30 CJK符号和标点 平假名 片假名

31 注音 朝鲜文兼容字母 CJK零杂字符

32 带括号的CJK字母及月份

33 CJK兼容字符

留作将来标准化用

非图形字符

表示形式bull GB 13000提供了字符编码表示的两种替代使用的形式

ndash 双八位 BMP 形式( UCS-2 )mdashmdash允许使用 BMP 中的字符且每个字符用两个字节表示

ndash 肆八位正则形式( UCS-4 )mdashmdash允许使用 GB 13000 中的全部字符且每个字符用四个字节表示

bull 除了 UCS-24外还有另外两种变形的表示形式ndash UTF-8 (单字节 ~ 多字节)ndash UTF-16 (双字节和 4 字节与 UCS-2 等价)ndash 目前在工业上的实现均为 UTF-16 ( UCS-2 )和 UTF-8ndash UTF = Unicode UCS Transformation Format 统一码 UC

S转换格式bull 关于统一码我们会在下一小节详细介绍

7 GBK 与 GB 18030bull 由于 GB 13000 标准与 GB 2312 标准的字符编码不兼容作为过渡在国家信息技术标准化委员会的主持下制定了与 GB 2312兼容的《汉字内码扩展规范( GBK )》( K 为扩展的ldquo扩rdquo字的拼音首字母)并于 1995年 12月 15日由原国家技术监督局标准司联合原电子工业部科技与质量监督司作为指导性技术规范发布实施

bull 2000年 GBK又被国家标准 GB 18030-2000《信息技术 信息交换用汉字编码字符集 基本集的扩充》所代替该标准收汉字 2万 7千个

bull 与 GB 2312 一样 GB 18030 也为中国的强制性国家标准微软公司的 Windows XPVista78 中文版与苹果公司的 Mac OS X 和 iOS 谷歌公司的 Android (安卓)等操作系统已经全面支持 GBK

GB 18030 的码位范围分布

字节数 码位空间 码位数目

单字节 0x00~0x7F 128

双字节第 1字节 第 2字节

23 9400x81~0xFE

0x40~0x7E 0x80~0xFE

四字节第 1字节 第 2字节 第 3字节 第 4字节

1 587 6000x81~0xFE 0x30~0x39 0x81~0xFE 0x30~0x39

GB 18030的

总体结构图

收录字符bull 单字节部分mdashmdash收录了GBT 11383 的 0x00~0x7F 全部 128 个字符(似 ASCI

I )bull 双字节部分mdashmdash收录内容如下 (21 003 个汉字和 884 个符号共 21 887 个字符 )

ndash GB 130001-93 的全部 CJK 统一汉字字符 20 902 个( GB 2312 的编码汉字在双字节 2 区其他 CJK 统一汉字在双字节 34 区)

ndash GB 130001-93 的 CJK兼容区挑选出来的 21 个汉字ldquo郎凉秊helliphellip﨨﨩rdquo( 0xFD9C~0xFDA0 和 0xFE40~0xFE4F )

ndash GB 130001-93 中收录而 GB 2312未收录的台湾地区使用的图形字符 139 个ldquoˊˋ˙helliphelliprdquo( 0xA840~0xA895 和 0xA940~0XA988 )

ndash GB 130001-93收录的其他字符 31 ( 13)个(在双字节 5 区)ndash GB 2312-80 中的非汉字字符 682 个( 0xA1A1~0xA9EF )ndash GB 12345-90 的竖排标点符号 19 ( 29)个ldquo︵︶︹helliphellip︳︴rdquo( 0xA6D9~0xA6

F5 )ndash GB 2312-80未收录的 10 个小写罗马数字ldquoⅰⅱⅲhelliphellipⅸⅹrdquo( 0xA2A1~ 0xA2A

A )ndash GB 2312-80未收录的带音调的汉语拼音字母 5 ( 4)个ldquo ńňǹrdquo 以及 ɑ 和 ɡ ( 0

xA8BB~0xA8C0 )ndash 汉字数字零ldquo〇rdquo (0xA996) 和欧元符ldquoeurordquo (0xA2E3)ndash 表意文字描述符 13 个ldquohelliphelliprdquo( 0xA989~0xA995 )ndash 对 GB 130001-93增补的汉字和部首 构件 80 个ldquohelliphellip䶮rdquo( 0xFE50~ 0x

FEA0 )bull 四字节部分mdashmdash收录了上述双字节字符之外的包括 CJK 统一汉字扩充 A 在内

的 GB 130001-93 中的全部字符

GB 18030双字节部分的码位安排

类别 区名 码位范围 码位数 字符数 内容

符号区双字节 1区 A1A1~A9FE 846 718

GB 2312非汉字字符等

双字节 5区 A840~A9A0 192 166 台湾图符等

汉字区双字节 2区 B0A1~F7FE 6768 6763 GB 2312汉字双字节 3区 8140~A0FE 6080 6080 CJK统一汉字双字节 4区 AA40~FEA0 8160 8160 CJK统一汉字等

用户自定义区双字节用户区 1 AAA1~AFFE 564

用户自定义字符双字节用户区 2 F8A1~FEFE 658

双字节用户区 3 A140~A7A0 672

GB 18030双字节部分的编码空间结构图 尾字节

0x40larr――rarr0x7E 0x80larr――rarr0xA0 0xA1larr――――――――――――rarr0xFE

0x81 uarr darr

0xA0

0xA1 uarr darr

0xA7

0xA8 0xA9

首字节

0xAA uarr | | | | | | | | | | darr

0xFE

双字节 3区

汉字区6 080个码位

双字节用户区 3

用户自定义区672个码位

双字节 5区 图形符号区192个码位

双字节 4区

汉字区8 160个码位

双字节 1区

图形符号区564个码位

双字节 2区

汉字区6 768个码位

双字节用户区 1 用户自定义区564个码位

双字节用户区 2 用户自定义区658个码位

223 国际通用字符编码

bull Unicode (统一码)是由多语言软件制造商组成的统一码协会( httpwwwUnicodeorg)所制定一种国际字符的编码标准

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull 本节主要介绍这两种关系密切的主流国际字符编码标准的来历编码方案各自特点与相互关系

1 Unicode 统一码bull 发展历史

ndash 1987年施乐( Xerox )公司的 Joe Becker 与 Lee Collins 和苹果( Apple )公司的 Mark Davis 等人开始讨论统一编码 1987年 12月 Joe Becker造词 Unicode (统一码)含义为ldquo unique universal and uniform character encodingrdquo (单一通用统一的字符编码) 1989年 2月开始定期召开统一码会议 1989年 9月公布 Unicode草案

ndash 1991年 1月 3 日由 Xerox Apple Sun IBM Aldis Microsoft 等公司出资在美国加州成立了统一码协会( Unicode Consortium )并由协会设立非盈利性的统一码公司( Unicode Inc )后来 HP Adobe Borland Digital Lotus Novell 等公司也纷纷加入 1991年 1月成立统一码技术委员会 UTC 并制定了其规程

ndash 1991年 2月在 Ed Hart 的推动下进行了ldquo统一码对 10464 国际标准草案 1rdquo 的对话Unicode 与 ISOIEC 10646开始走向融合

ndash 1991年 8月发布 Unicode 标准 10版的第 1卷(体系结构非表意字符) 1992年6月发表 Unicode 10版的第 2卷(表意字符) 1993年 6月发布 Unicode 11版与 1993年 5月公布的 ISOIEC 10646-11993 实现了合并

ndash 1996年 7月发布 Unicode 20版ndash 1999年 9月发布 Unicode 30版ndash 2003年 4月发布 Unicode 40版(对应于 ISOIEC 106462003 ) 2004年 3月 31日发布 Unicode 401版 2005年 3月 31日发布 Unicode 410版

ndash 2006年 7月 14日发布 Unicode 50版 2008年 4月 4日发布 Unicode 51版 2009年 12月 22日发布 Unicode 52版

ndash 2010年 10月发布 Unicode 60版 2012年 1月发布 Unicode 61版(对应于 ISOIEC 106462012 ) 2012年 9月推出 Unicode 62版 2013年 9月推出 Unicode 63版

ndash 2014年 6月 16日发布 Unicode 70版 ndash 2015年 6月 17日发布 Unicode 80版

字符集bull Unicode 字符集的空间分成双字节的基本多语言平面 (Basic Multilingual Pla

ne BMP) 和 4 字节的辅助多语言平面 (Supplementary Multilingual Plane SMP) 两种

bull BMPndash Unicode 的基本平面或基本多语言平面 BMP 对应于 ISOIEC 10646-1 的第 00组的 00 平面( BMP )即 Unicode 与 ISOIEC 10646 的 BMP 中的字符编码完全一致

bull SMPndash 鉴于 Unicode 原有的 16位元空间不足以应用从 Unicode 31版本开始设立了 16 个辅助平面使 Unicode 的可使用空间由六万多字增至约一百万字

ndash 原有的 Unicode双字节空间称为基本平面或基本多语言平面 BMP 辅助多语言平面 SMP 字符要用 4 字节来储存

ndash 第一辅助平面摆放拼音文字(主要为现时已不再使用的文字)及符号范围在 U+10000 - U+1FFFD

ndash 第二辅助平面又称为表意文字补充平面 (Supplementary Ideographic Plane 简称 SIP) 现时摆放ldquo中日韩统汉字扩展 B 区rdquo共 43253 个汉字范围在 U+20000 - U+2FFFD

ndash 第三至十三辅助平面尚未使用ndash 第十四辅助平面又称为特殊用途补充平面 (Supplementary Special-purpose Pl

ane 简称 SSP) 摆放 Language tags 和 Variation Selectors 它们都是控制字符范围在 U+E0000 - U+E01FF

ndash 第十五至十六辅助平面都是私人使用区它们的范围是 U+F0000 - U+FFFFD 及 U+100000 - U+1000FD

bull Unicode 字符集的具体编码方式参加第 4小节ldquo 4 UTFrdquo

2 ISOIEC 10646

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull ISOIEC 10646 标准由 ISO 与 IEC 联合成立的 ISOIEC JTC1SC2WG2 制定ndash JTC 1 ( Joint Technical Committee 1 on Information

technology ISOIEC信息技术联合技术委员会 1 )负责信息技术方面标准的制定工作

ndash SC 2 ( SubCommittee 2 on Coded character sets 编码字符集分会 2 )下的 WG 2 ( Working Group 2 on Universal coded character set 通用编码字符集工作组 2 )负责制定国际通用字符编码标准即后来公布的 ISOIEC 10646

发展历史bull 1984年 ISO 的一些会员国发起制定新的国际字符编码标准同年 4月 ISO

与 IEC 联合成立 ISOIEC JTC1SC2WG2 1987年 3月制定出编码架构1992年 6月投票通过第二版国际标准草案

bull 1993年 5月推出 10646 标准时将内容分成两个部分标准首先发布的是其中的第 1 个部分(体系结构与基本多文种平面)的第 1版( Edition 1 ) ISOIEC 10646-11993 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane(信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

bull 2000年 3月推出 10646 标准第一个部分的第 2版( Edition 2 ) ISOIEC 10646-12000 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane

bull 2001年 10月推出 10646 标准第 2版的第二个部分(辅助平面)的第 1版( Edition 1 ) ISOIEC 10646-22001 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 2 Supplementary Planes

bull 2003年 10月推出的 10646新标准(第 1版 Edition 1 )将老标准中的两个部分标准合并成了一个单一的标准 ISOIEC 106462003 Information technology -- Universal Multiple- Octet Coded Character Set (UCS) 后来又于 2010年 2012年和 2014年分别推出了 ISOIEC 106462010 (第 2版)ISOIEC 106462012 (第 3版)和 ISOIEC 106462014 (第 4版)

UCS 通用字符集bull 通用字符集( Universal Character Set UCS )是

ISOIEC 10646 标准所定义的字符编码方式采用 4字节编码又称为 Universal Multiple-Octet Coded Character Set (通用多八位编码字符集)

bull 通用字符集是所有包括了其他字符集它保证了与其他字符集的双向兼容即如果你将任何文本字符串翻译到 UCS 格式然后再翻译回原编码你不会丢失任何信息

bull UCS 包含了已知语言的所有字符除了拉丁语希腊语斯拉夫语希伯来语阿拉伯语亚美尼亚语格鲁吉亚语还包括中文日文韩文这样的象形文字 UCS 还包括大量的图形印刷数学科学符号

名字与组合字符bull UCS 不仅给每个字符分配一个代码而且赋予了

一个正式的名字表示一个 UCS 或 Unicode值的十六进制数通常在前面加上ldquo U+rdquo 例如ldquo U+0041rdquo代表字符ldquo Ardquo

bull UCS里有些编码点分配给了组合字符组合字符机制允许在任何字符后加上重音符或其他指示标记 这在科学符号中特别有用 比如数学方程式和国际音标字母 可能会需要在一个基本字符后组合上一个或多个指示标记

实现级别bull 并不是所有的系统都需要支持像组合字符这样的的先进

机制因此 ISO 10646 指定了如下三种实现级别ndash 级别 1不支持组合字符和韩语 Hangul Jamo 字符 ( 一种特

别的 更加复杂的韩国文的编码 使用两个或三个子字符来编码一个韩文音节 )

ndash 级别 2类似于级别 1 但在某些文字中允许一列固定的组合字符 (例如 希伯来文 阿拉伯文 Devangari 孟加拉语 果鲁穆奇语 Gujarati Oriya 泰米尔语 Telugo 印 埃纳德语 Malayalam 泰国语和老挝语 ) 因为如果没有最起码的几个组合字符 UCS就不能完整地表达这些语言

ndash 级别 3支持所有的 UCS 字符如可以在任意一个字符上加上一个箭头或 和一个 tilde(颚化符号即字母上面的~ )

编码方式bull UCS 有如下两种编码方式

ndash UCS-2与 Unicode 的 2 字节编码基本一样ndash UCS-4 4 字节编码目前是在 UCS-2 前加

上 2 个全零的字节bull UCS 还有 UTF 编码方式参见下面第 4小节ldquo 4 UTFrdquo

3 Unicode 与 ISOIEC 10646bull 关系

ndash 历史上存在两个独立的尝试创立单一字符集的组织即国际标准化组织( ISO )和多语言软件制造商组成的统一码协会组织( Unicodeorg )前者开发的 ISO 10646项目后者开发的 Unicode项目因此最初制定了不同的标准

ndash 1991年前后两个项目的参与者都认识到世界不需要两个不兼容的字符集于是它们开始合并双方的工作成果并为创立一个单一编码表而协同工作

ndash 从 Unicode20开始 Unicode采用了与 ISO 10646-1相同的字库和字码 ISO 也承诺 ISO10646 将不会替超出 U+10FFFF 的 UCS-4 编码赋值以使得两者保持一致

ndash 两个项目仍都存在并独立地公布各自的标准但 Unicode协会和 ISOIEC JTC1SC2 都同意保持两者标准的码表兼容并紧密地共同调整任何未来的扩展

异同bull Unicode协会公布的 Unicode 标准包含了 ISO 10646-1 实现级别

3 的基本多文种平面在两个标准里所有的字符都在相同的位置并且有相同的名字

bull ISO 10646 标准就像 ISO 8859 标准一样只不过是一个简单的字符集表它定义了一些编码的别名指定了一些与标准有关的术语并包括了规范说明指定了怎样使用 UCS连接其他 ISO 标准的实现等

bull Unicode 标准额外定义了许多与字符有关的语义符号学并详细说明了绘制某些语言(如阿拉伯语)表达形式的算法处理双向文字(比如拉丁文和希伯来文的混合文字)的算法排序与字符串比较所需的算法等等

bull 考虑到 Unicode 标准有一个易记的名字既便宜又包括更多的辅助信息因而它使用得更广泛然而

bull 一般认为用于打印 ISO 10646-1 标准的字体在某些方面的质量要高于用于打印 Unicode 20 的专业字体设计者总是被建议说要两个标准都实现但一些提供的样例字形有显著的区别 ISO 10646-1 标准同样使用四种不同的风格变体来显示表意文字如中文日文和韩文 (CJK) 而 Unicode 20 的表里只有中文的变体

4 UTFbull Unicode 和 UCS 都是一个字符集可以看作为内码bull UTF ( UnicodeUCS Transformation Format 统一码

通用字符集转换格式)是一种编码方式它的出现是因为 Unicode 和 UCS 不适宜在某些场合直接传输和处理

bull UCS 和 Unicode 只是分配整数给字符的编码表现在存在好几种将一串字符表示为一串字节的方法(如高或低位字节在前)

bull 最显而易见的两种方法是将 UCS 和 Unicode 文本存储为 2 个 或 4 个字节序列的串这两种方法的正式名称分别为 UCS-2 和 UCS-4

bull 常用的 UTF具体编码方式有 UTF-8 UTF-16 和 UTF-32

UTF-8

bull UTF-8 是 UTF 的一种具体编码方式在 ISO 10646-1 的附录 R 和 IETF 的 RFC 2279 里定义

bull 由于要使文档中的文字与 ASCII兼容故 UTF-8 选择了使用可变长度字节来储存 Unicode 和 UCS 例如ndash ASCII 字母继续使用 1 字节储存ndash 重音文字希腊字母或西里尔字母等使用 2 字节来储存ndash 常用的汉字就要使用 3 字节ndash 辅助平面字符则使用 4 字节ndash 即 ASCII 不作变换其他字符做变长编码每个字符 1~4 字节

bull UTF-8 通常作为外码bull 在 UTF-8 文件的开首很多时都放置一个 U+FEFF 字符

(UTF-8 以 EF BB BF 代表 ) 以显示这个文字档案是以UTF-8 编码

UTF-8 的优点bull 与 CPU 字节顺序无关可以在不同平台之间交流

bull 容错能力高任何一个字节损坏后最多只会导致一个编码码位损失不会链锁错误 ( 如 GB 码错一个字节就会整行乱码 )

UTF-8 的缺点bull UTF-8 使用可变长度字节储存使计算机程序设计变得复杂 (故此在计算机程序或操作系统内部多采用 UCS-2 编码 )

bull 在旧式的中文日文及朝鲜文编码之中每字符都使用 2 字节储存而 UTF-8 须使用 3 字节 (采用 UTF-16 编码则可只使用 2字节储存 )

bull 泰语以往使用的 ISO 8859-11 每字符只使用 1 字节储存而 UTF-8 须使用 3 字节

UTF-8储存的多字节串字符bull U-00000000 - U-0000007F 0xxxxxxx bull U-00000080 - U-000007FF 110xxxxx 10xxxxxx

bull U-00000800 - U-0000FFFF 1110xxxx 10xxxxxx

10xxxxxx bull U-00010000 - U-001FFFFF 11110xxx 10xxxxx

x 10xxxxxx 10xxxxxx bull 在多字节串中第一个字节的开头ldquo 1rdquo 的数目就

是整个串中字节的数目bull 每个使用 UTF-8储存的字符除了第一个字节外其余字节的头两个位元都是以 10 开始使文字处理器能够较快地找出每个字符的开始位置

UTF-16bull UTF-16 是 UTF 的另一种具体编码方式在 ISO 1064

6-1 的附录 Q 和 IETF 的 RFC 2781 里定义bull UTF-16 是变长码( 2 或 4 字节)大致相当于 20位编码值在 0 到 0x10FFFF 之间基本上就是 Unicode 编码的实现 UTF-16 与 CPU 字序有关但因为最省空间常作为网络传输的外码 UTF-16 是 Unicode 的完美编码

bull lt0x10000 的直接用其对应的 16位整数编码位于 0x10000 ~ 0x10FFFF 之间的用 0xD800~0xDBFF 的 16位整数后跟 0xDC00~0xDFFF 的 16位整数的 4 字节编码 gt 0x10FFFF 的不能用 UTF-16 表示

bull 在 Unicode 的 BMP 中定义的字符(无论是拉丁字母汉字或其他文字或符号)一律使用 2 字节存储而在辅助平面定义的字符则以两个 2 字节的值来存储

UTF-16 的特点bull UTF-16比起 UTF-8 的好处在于大部分字符都以固定长

度的 2 字节存储但 UTF-16却无法相容于 ASCII 编码bull UTF-16 有两种编码模式即大尾序( big Endian 高位字节在前)和小尾序( little Endian 高位字节在后)储存形式(一般來說以 Macintosh 制作和存储的文字使用大尾序格式以 Microsoft 或 Linux 制作和存储的文字使用小尾序格式)

bull 为了弄区分 UTF-16 文件的大小尾序在 UTF-16 文件的开头都会放置一个 U+FEFF 字符作为字节顺序标记 (UTF-16LE 以 FF FE代表 UTF-16BE 以 FE FF代表 ) 以显示该文档是以 UTF-16 编码的

UTF-32

bull UTF-32 仅使用了 Unicode范围 (0 到 0x10FFFF) 的 32位编码相当于 UCS-4 的子集

bull 由于 Unicode 和 ISOIEC 10646 的编码和结构与前面讲过的 GB 13000 类似或等价这里就不再做详细的介绍

5支持bull 现在 UnicodeUCS 已经获得了十分广泛的支

持ndash网络与浏览器(如 HTML 4050 XML 与 IE

Safari Netscape Firefox Chrome Opera Edge 等)

ndash操作系统(如 Windows NT2000XPVista7810 Mac OS X iOS Android和 Linux )

ndash 编程语言新版本(如 CC++JavaObjective-CC Swift 等)

Unicode 代码的浏览器显示代码 字符标准名称 (英语 )

浏览器的显示

amp65 大写拉丁字母 A A

amp223 小写拉丁字母 Sharp S szlig

amp254 小写拉丁字母 Thorn thorn

amp916 大写希腊字母 Delta Δ

amp1049 大写斯拉夫字母 Short I Й

amp1511 希伯来字母 Qof ק

amp1605 阿拉伯字母 Meem م

amp3671 泰文数字 7 ๗amp4688 埃塞俄比亚音节文字 Qha ቐ

amp12354 日语平假名 A あamp12450 日语片假名 A アamp21494 简体汉字 叶 叶amp33865 繁体汉字 葉 葉amp50685 韩国音节文字 Yeob 엽

23 文字输出bull 文字输出是指将计算机内的字符编码通过计算机的输出设备(如显示器打印机喇叭)展现出所对应字符的图形或声音供人们阅读或聆听

bull 本节主要介绍文字图示输出的字形技术bull 文字声音输出属于语音合成只在本节的末尾作简单的介绍

231 字形技术bull 文字 = 图形bull 不论是象形文字中的单字还是拼音文字

中的字母都是用图形来表示的bull 在计算机里文字的表示 输出(显示和打

印)涉及ndash 字型ndash 字体ndash 字库

1字型bull 字型指构造和生成字形的方法一般可分为

ndash 点阵字 DOS 显卡 ROM 金山 科印特点似位图显示快占空间(字库大)放大后有马赛克效应

bull 显示字母 88 汉字 1616bull 打印 2424 4848 6464

ndash 矢量字单线条用于笔式绘图仪特点字库小算法简单难看

ndash 轮廓字用曲线描绘字的轮廓输出效果好所见即所得(WYSWYG) 可无级放大易实现空心 阴影 填充 变形等各种特效功能轮廓曲线一般采用样条曲线如 TrueType (Apple 1991 Mac OS Microsoft 1992 Windows 31)用的是二次 B 样条 Bezier曲线中文之星 RichWin采用的是三次 B 样条 Bezier曲线

字型种类

2字体bull 字体指字的形状风格如

ndash 汉字的

ndash 英文的

宋体楷体黑体仿宋

行楷隶书新魏幼圆

Times New Roman Arial Narrow Courier New

常用汉字字体bull 宋体mdashmdash宋体来自于北宋时雕版刻书所采用的欧体字(唐朝欧阳询体)宋体字的横顿拉捺挑钩别具特色间架平正疏密适中字体秀丽遒劲但笔画横细竖粗适合于刀刻不宜于手写现在宋体广泛用于印刷常来表现文档的正文

bull 仿宋体mdashmdash 1920年钱塘的丁辅之与丁善之等人将明代以后盛行的方廓形字体加以改造创造出长形和方形的聚珍仿宋后来演化为现在的仿宋体仿宋体比较接近于手写体为宋体和楷体的折中是采用的宋体的结构和楷体的笔法而成现常来表现打印文件以及文档的摘要和注释等

bull 黑体mdashmdash黑体是适应工艺美术的发展而出现的一种等线体是从日本引进的黑体的结构与宋体没有什么差别只是其笔画粗细一致健实粗壮主要用于文档的标题和重点及标语广告等方面

bull 楷体mdashmdash楷体源于楷书楷体的笔画圆浑笔调灵活结构端正美观但不宜于木板雕刻所以直到清末西洋的石板印刷术传入后才开始广泛用于印刷现代的楷体创造于 20世纪的二三十年代主要用于文档的正文(多用于中小学教材)也可用于工艺美术等方面

3字库bull 字库为一种文字的某一字体的所有字符的集合一般存放在一个磁盘文件中

bull 由于象形文字中单字的数量大(成千上万)而拼音文字中字母的数量小(不到一百个)所以字库的大小有很大的差别

bull 为了使文档界面丰富多彩常见的字处理软件都支持多种字体带有众多字库

4点阵字型的国家标准bull 我国已经公布了若干字体的点阵字型之国家标准

ndash GB 50071-19852001 信息技术 汉字编码字符集(基本集) 24 点阵字型

ndash GB 50072-19852001 信息技术 汉字编码字符集(辅助集) 24 点阵字型

ndash GB 5199-19862001 信息技术 汉字编码字符集(基本集) 16 点阵字型 宋体

ndash GB 6345-19862001 信息技术 汉字编码字符集(基本集) 32 点阵字型 宋体

ndash GB 12041-2001 信息技术 汉字编码字符集(基本集) 48点阵字型 宋体

ndash GB 17698-1999 信息技术 通用多八位编码字符集( I 区) 汉字 16 点阵字型

232 语音合成bull 文字的声音输出主要使用的是语音合成的技术bull 语音合成功能是ldquo文rarr语rdquo转换bull 文语转换 TTS (Text-To-Speech) 是将文本形式的信息转换成自然语音的一种技术其最终目标是使计算机输出清晰而又自然的声音

bull 英语的语音合成在上世纪 80年代就早已成熟而中文 汉语的合成现在也趋于成熟并有了广泛的应用(如汽车导航仪智能手机等)

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 30: 第一篇  媒体

1 GB 1988 与 GB 2311

bull 为了能够同时表示和处理汉字和英文实现中外文混排汉字编码必须兼容通用的 ASCII 编码因此1980年我国制定了与国际标准 ISO 6461972 (即ASCII )对应的国家标准 GB 1988-80《信息处理交换用的七位编码字符集》

bull 汉字成千上万不可能像 ASCII 一样只用单字节的七位来表示必须扩展到八位和多字节但是不能随意扩充而应该符合国际规范因此我国于 1980年又制定了与七位代码扩充到八位编码的国际标准 ISO 2022兼容的国家标准 GB 2311-80《信息处理交换用七位编码字符集的扩充办法》

GB 1988-80 ( ASCII )的代码结构图

行 0 1 2 3 4 5 6 7

0 SP

1 helliphellip

15

16

32个

控制符

94个

图形字符

DEL

GB 2311-80 的八位编码结构图列

行 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0 SP 100

1

helliphellip

14

15

C0

32个

控制符

GL

94或 96个

图形字符

DEL

C1

32个

控制符

GR

94或 96个

图形字符

1515

2 GB 2312

bull GB 2312-80《信息交换用汉字编码字符集 middot基本集》是我国制定的一个使用最广泛的汉字编码的强制性国家标准由原第四机械工业部的华北计算机研究所(后改名为电子工业部第十五研究所)起草1980年批准 1981年 5月 1日起实施

bull GB 2312-80 是在已有的国家标准 GB 1988-80(对应于 ISO 646 )和 GB 2311-80 (对应于 ISO 2022 )的基础上制定的采用与 ISO 2022兼容的GB 2311 之 7位到八位的代码扩充办法用双字节编码表示汉字与 ASCII兼容

收录的字符bull GB 2312 对应的是汉字的基本集共收汉字 6 763 个

可达到 9999 的使用频率因此除了极少数生僻的人名地名和古文外 GB 2312 中的汉字已经能基本满足平时的使用了

bull 除了汉字外 GB 2312 还收录了 682 个非汉字图形符号包括 202 个一般符号(含间隔符标点运算符和制表符) 60 个序号符 22 个数字符 52 个英文字母 169 个日文假名 48 个希腊字母 66 个俄文字母 26 个汉语拼音符号和 37 个汉语注音字母

bull 所以在 GB 2312-80 标准中共收录了( 6 763 汉字 + 682 非汉字图符 = ) 7 445 图形字符

两级汉字bull GB 2312 将其收录的六千多个汉字分成两个级别bull 一级汉字有 3 755 个都为使用频率高的常用汉

字为便于检索像字典那样将这些汉字按拼音字母顺序排列(同音字再按笔顺的横竖撇捺点折序排列)

bull 二级汉字有 3 008 个大部分较生僻不易掌握读音所以按部首顺序排列(同部首的字按笔画数排列同笔画数的字再按笔顺排列)

编码方案bull GB 2312 对所有图形字符(包括汉字和非汉字图符)都采用两个字节表示每个字节的低七位用于编码最高位全为 1 这样可以兼容 ASCII 编码(字节的最高位全为 0 )

bull 虽然在一个字节中最高位为 1 的符号位置有 128 个但从前面 GB 2311 的分析可知为了与 ASCII 的代码结构兼容保留了( 32 + 2 = ) 34 个控制符位置最后只有( 128 ndash 34 = ) 94 个符号位可供图形字符编码使用

bull 图形字符在代码表中的位置用区位码表示将码表分成94 个区对应于编码的第一个字节取值 0x21~0x7E 每个区又分成 94 个位对应于编码的第二个字节取值 0x21~0x7E (参见表 2-6 )

bull 例如ldquo中山大学rdquo的编码为中 (0xD6D0) 山 (0xC9BD) 大 (0xB4F3) 学 (0xD1A7)

GB 2312-80 字符集结构 20 21 22 helliphellip 7D 7E 7F

位号

区号

1 2 helliphellip 93 94

20

21~29 1~9 非汉字图符(682个)

2A~2F 10~15 空白区

30~57 16~55 一级汉字(3 755个)

58~77 56~87 二级汉字(3 008个)

78~7E 88~94 空白区

7F

第 1 区的部分非汉字图符

1区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 middot ˉ ˇ uml 々 mdash ~ hellip lsquo rsquo ldquo

17~32 rdquo 〔 〕 〈 〉 《 》 「 」 『 』 〖 〗 【 】 plusmn

33~48 times divide ∶ and or sum prod cup cap isin ∷ radic perp ∥ ang

49~64 ⊙ int ∮ equiv ≌ asymp ∽ prop ne ltu gtu le ge infin ∵ there4

65~80 deg prime Prime $ curren ¢ £ permil sect

81~94 rarr larr uarr darr

第 16 区的部分一级汉字

16区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 啊 阿 埃 挨 哎 唉 哀 皑 癌 蔼 矮 艾 碍 爱 隘 鞍

17~32 氨 安 俺 按 暗 岸 胺 案 肮 昂 盎 凹 敖 熬 翱 袄

33~48 傲 奥 懊 澳 芭 捌 扒 叭 吧 笆 八 疤 巴 拔 跋 靶

49~64 把 耙 坝 霸 罢 爸 白 柏 百 摆 佰 败 拜 稗 斑 班

65~80 搬 扳 般 颁 板 版 扮 拌 伴 瓣 半 办 绊 邦 帮 梆

81~94 榜 膀 绑 棒 磅 蚌 镑 傍 谤 苞 胞 包 褒 剥

第 56 区的部分二级汉字

56区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 亍 丌 兀 丐 廿 卅 丕 亘 丞 鬲 孬 噩 丨 禺 丿 匕

17~32 乇 夭 爻 卮 氐 囟 胤 馗 毓 睾 鼗 丶 亟 鼐 乜 乩

33~48 亓 芈 孛 啬 嘏 仄 厍 厝 厣 厥 厮 靥 赝 匚 叵 匦

49~64 匮 匾 赜 卦 卣 刂 刈 刎 刭 刳 刿 剀 剌 剞 剡 剜

65~80 蒯 剽 劂 劁 劐 劓 冂 罔 亻 仃 仉 仂 仨 仡 仫 仞

81~94 伛 仳 伢 佤 仵 伥 伧 伉 伫 佞 佧 攸 佚 佝

3汉字编码的辅助集bull 除了GB 2312基本集的 6 763 个简体汉字外国家标

准还给出了汉字编码字符集的多个辅助集bull 第二 四辅助集分别增加了 7 237 7 039 个简体汉字bull 第一和三 五辅助集则分别是与基本集和第二 四辅助集所对应的繁体汉字字符集的国家标准

bull 基本集加上辅助集共有 21 039 个简体汉字和 21 142个繁体汉字

bull 繁体汉字之所以多一些是因为在第一辅助集中有时几个繁体字对应一个简体字因此比基本集多出 103 个汉字

bull 基本集和辅助集的代码页之间靠其编码字节的最高位来区分

编码字符的分页标志

双字节汉字编码的页面结构第二字节 列号

行号 0 middot middot middot 32 33 34 helliphellip 125 126 127 128middot middot 160 161 162 helliphellip 254 255 0 middot middot 32

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

33 34 middot middot middot 126

1 2 middot middot middot 94

第四五辅助集 (7 039个汉字)

127

(兼容ASCII)

128 middot middot 160

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

161 162 middot middot middot 254

1 2 middot middot middot 94

第二三辅助集 (7 237个汉字)

1 2 middot middot middot 94

基本集第一辅助集 (6 763 6 866个汉字) (682个非汉字图符)

第一字节

255

4 Big5

bull 除了中国大陆使用的简体汉字外在台湾香港澳门和海外华侨社区使用的是传统的繁体汉字

bull 简体汉字使用 GB (国标)系列编码标准bull 繁体汉字一般使用的是 Big5内码(大五码)即台湾的ldquo资讯工业策进会rdquo发布的《标准交换码 (Ⅲ码 )》收录汉字 13 053 个

bull Big5内码是 1984年由台湾财团法人资讯工业策进会与宏碁 (Acer) 神通 (MiTAC) 佳佳零壹 (Zero One) 大众 (FIC) 等五大软件公司联合推出故称为大五码

BIG5 的代码空间低位字节

00 hellip 3F 40 hellip 7E 7F hellip A0 A1 hellip FE FF

高位字节

00middot

80

81middot

A0用户定义区 用户定义区

A1A2A3

非汉字图符 非汉字图符

A4middot

C6常用汉字 常用汉字

C7C8

用户定义区 用户定义区

C9middot

F9次常用汉字 次常用汉字

FAmiddot

FE用户定义区 用户定义区

FF

5少数民族文字编码bull 中国共有 56 个民族除了汉回满族一般使用汉语外其他少数民族大多有自己的民族语言

bull 我国各民族使用的 50 多种文字可以分为字母式结构文字和非字母式结构文字两大类ndash 字母式结构的有拉丁文斯拉夫文蒙古文维吾尔文哈萨克文藏文和朝鲜文等字母式

ndash 非字母式结构的有汉字象形文字图画文字和音节文字等bull 各民族文字的书写方向也有不同

ndash 壮文藏文朝鲜文彝文等的字从左到右行从上到下ndash 维吾尔文哈萨克文和柯尔克孜文等的字从右到左行从上

到下ndash 蒙古文和满文的字从上到下行从左到右ndash 汉字的书写方向有两种

bull 大陆的简体汉字的字从左到右行从上到下bull 港台与古旧书的繁体汉字的字从上到下行从右到左

国家标准bull 下面按发布时间列出若干已经公布的我国少数民族文字

编码集的国家标准(这些字符集一般分成两类对字母式结构文字采用八位编码对非字母式结构文字采用双字节编码)ndash GB 8045-87《信息处理交换用蒙古文七位和八位编码图形字

符集》收 82 个蒙古文字母和 12 个其他符号共 94 个字符ndash GB 12050-89《信息处理交换用维吾尔文编码图形字符集》收 32 个维吾尔文字母一个维吾尔文复合字符和 37 个其他符号共 70 个字符

ndash GB 12052-89《信息交换用朝鲜文编码字符集》收 5297 个朝鲜文字和 682 个其他符号(与 GB 2132同)共 5 979 个字符

ndash GB 13134-91《信息交换用彝文编码字符集》收 1165 个彝文字符和 688 个其他符号共 1853 个字符

ndash GB 16959-1997《信息技术 信息交换用藏文编码字符集 基本集》收 41 个藏文字母 36 个藏文主字 13 个元音字符12 个语音字符 10 个藏文数字 10 个半值符一个控制用连接符和 46 个其他藏文图形符号共 169 个字符

6 GB 13000bull GB 13000 是与 ISOIEC 10646 等价的国际通用编码字符集标准收汉字 2万多个但是与 GB 2312 和 GBK 不兼容

bull 1993年 5月 ISO 与 IEC 联合推出了可用于世界各种文字的通用编码字符集的国际标准的第 1部分ndash ISOIEC 10646-11993 Information technology -- Universal Multiple-Octe

t Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane (信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

ndash 该标准收字符 96万个几乎涵盖世界上的所有文字其中包含汉字 21 003 个

bull 1993年底我国推出了等同于国际标准 ISOIEC 1064611993 的强制性国家标准 ndash GB 130001-93《信息技术 通用多八位编码字符集( UCS ) 第一部分

体系结构与基本多文种平面》ndash 该标准于 1993年 12月 24日被国家技术监督局批准 1994年 8月 1日起实施

GB 13000 的主要特点

bull 世界各语言文种字符统一编码避免冲突便于国际交流

bull 编码空间宽阔连续每个图形字符的编码唯一(一字一码)不再存在兼容性问题

bull 按文种而不是按语言编码避免重复和浪费(如中日韩汉字的统一编码 CJK )

bull 与 GB 2312 和 GBK 不兼容

体系结构bull UCS 的体系结构是基于所谓ldquo多八位rdquo的而ldquo八位rdquo就是一个字节ldquo多八位rdquo就是多个字节

bull UCS采用 4 个字节来表征组面行位的四维空间bull 整个 UCS空间包含 128 个组( 0x00组 ~0x7F组)每组有 256 个平面( 0x00 平面 ~0xFF 平面)每个平面有 256 行每行又由 256 个字位构成

bull UCS共有( 128 times 256 = ) 32 768 个平面每个平面有( 256 times 256 = ) 65 536 个字位每个字位对应于一个字符的编码

bull 目前的编码只限于 00组已经定义的平面有 00组的00 平面mdashmdash称之为基本多文种平面 BMP ( Basic Multilingual Plane ) 及若干辅助平面

UCS 的全部编码空间

每个平面256times256 个

字位

00组 00 平面

00组 FF 平面

01组 00 平面

7F组 00 平面00

01组

7F组

UCS 的 00组

BMPbull BMP = Basic Multilingual Plane 基本多文种平面bull BMP 用作双八位编码字符集称之为 UCS-2 它被

分成四个区ndash A- 区(字位 0x0000~0x4DFF 有 19 903 个字位)用于

字母文字音节文字以及各种符号ndash I- 区(字位 0x4E00~0x9FFF 共 20 992 个字位)用于中日韩统一汉字( CJK )

ndash O- 区(字位 0xA000~0xDFFF 共 16 384 个字位)保留未来标准化用

ndash R- 区(字位 0xE000~0xFFFD 共 8 190 个字位)为 BMP 的限制使用区包括专用字符变形显现形式及兼容字符

BMP总貌

A-区

00~33 拼音文字(见下页)

34~3D 朝鲜文

3E~44 朝鲜文补充 -A

45~4D 朝鲜文补充 -B

I-区 4E~9F CJK统一汉字O-区 A0~DF

R-区

E0~F8 专用区

F9~FA CJK兼容汉字FB 拼音文字变形显现形式

FC~FD 阿拉伯文变形显现形式 -A

FE半形组合用标志

CJK兼容形式

小写变体

阿拉伯文变形显现形式 -B

FF 半形及全形字符 特殊字符

BMP 的0x00~0x33

行字母文字区

00 基本拉丁文 拉丁文-1补充

01 拉丁文扩充-A 拉丁文扩充-B

02 拉丁文扩充-B 国际音标扩充 进格修饰字符

03 组合用发音符 基本希腊文 希腊符号及哥普特文

04 西里尔文

05 美亚尼亚文 希伯来文(基本和扩充)

06 基本阿拉伯文 阿拉伯文扩充

07

08

09 梵文 孟加拉文

0A 锡克教文 古吉拉特文

0B 奥利雅文 泰米尔文

0C 泰卢固文 卡纳达文

0D 德拉维族文

0E 泰文 老挝文

0F

10 格鲁吉亚文

11 朝鲜文字母

12~1D

1E 拉丁文扩充增补

1F 希腊文扩充

20 广义标点 上下标 货币符号 符号组合用区分标志

21 类似字母的符号 数字形式 箭头

22 数学运算符

23 零杂技术用符号

24 控制图符 光学识别符 带括号的字母数字

25 制表符 方块元素 几何图形符

26 零杂符号

27 示意符等

28~2F

30 CJK符号和标点 平假名 片假名

31 注音 朝鲜文兼容字母 CJK零杂字符

32 带括号的CJK字母及月份

33 CJK兼容字符

留作将来标准化用

非图形字符

表示形式bull GB 13000提供了字符编码表示的两种替代使用的形式

ndash 双八位 BMP 形式( UCS-2 )mdashmdash允许使用 BMP 中的字符且每个字符用两个字节表示

ndash 肆八位正则形式( UCS-4 )mdashmdash允许使用 GB 13000 中的全部字符且每个字符用四个字节表示

bull 除了 UCS-24外还有另外两种变形的表示形式ndash UTF-8 (单字节 ~ 多字节)ndash UTF-16 (双字节和 4 字节与 UCS-2 等价)ndash 目前在工业上的实现均为 UTF-16 ( UCS-2 )和 UTF-8ndash UTF = Unicode UCS Transformation Format 统一码 UC

S转换格式bull 关于统一码我们会在下一小节详细介绍

7 GBK 与 GB 18030bull 由于 GB 13000 标准与 GB 2312 标准的字符编码不兼容作为过渡在国家信息技术标准化委员会的主持下制定了与 GB 2312兼容的《汉字内码扩展规范( GBK )》( K 为扩展的ldquo扩rdquo字的拼音首字母)并于 1995年 12月 15日由原国家技术监督局标准司联合原电子工业部科技与质量监督司作为指导性技术规范发布实施

bull 2000年 GBK又被国家标准 GB 18030-2000《信息技术 信息交换用汉字编码字符集 基本集的扩充》所代替该标准收汉字 2万 7千个

bull 与 GB 2312 一样 GB 18030 也为中国的强制性国家标准微软公司的 Windows XPVista78 中文版与苹果公司的 Mac OS X 和 iOS 谷歌公司的 Android (安卓)等操作系统已经全面支持 GBK

GB 18030 的码位范围分布

字节数 码位空间 码位数目

单字节 0x00~0x7F 128

双字节第 1字节 第 2字节

23 9400x81~0xFE

0x40~0x7E 0x80~0xFE

四字节第 1字节 第 2字节 第 3字节 第 4字节

1 587 6000x81~0xFE 0x30~0x39 0x81~0xFE 0x30~0x39

GB 18030的

总体结构图

收录字符bull 单字节部分mdashmdash收录了GBT 11383 的 0x00~0x7F 全部 128 个字符(似 ASCI

I )bull 双字节部分mdashmdash收录内容如下 (21 003 个汉字和 884 个符号共 21 887 个字符 )

ndash GB 130001-93 的全部 CJK 统一汉字字符 20 902 个( GB 2312 的编码汉字在双字节 2 区其他 CJK 统一汉字在双字节 34 区)

ndash GB 130001-93 的 CJK兼容区挑选出来的 21 个汉字ldquo郎凉秊helliphellip﨨﨩rdquo( 0xFD9C~0xFDA0 和 0xFE40~0xFE4F )

ndash GB 130001-93 中收录而 GB 2312未收录的台湾地区使用的图形字符 139 个ldquoˊˋ˙helliphelliprdquo( 0xA840~0xA895 和 0xA940~0XA988 )

ndash GB 130001-93收录的其他字符 31 ( 13)个(在双字节 5 区)ndash GB 2312-80 中的非汉字字符 682 个( 0xA1A1~0xA9EF )ndash GB 12345-90 的竖排标点符号 19 ( 29)个ldquo︵︶︹helliphellip︳︴rdquo( 0xA6D9~0xA6

F5 )ndash GB 2312-80未收录的 10 个小写罗马数字ldquoⅰⅱⅲhelliphellipⅸⅹrdquo( 0xA2A1~ 0xA2A

A )ndash GB 2312-80未收录的带音调的汉语拼音字母 5 ( 4)个ldquo ńňǹrdquo 以及 ɑ 和 ɡ ( 0

xA8BB~0xA8C0 )ndash 汉字数字零ldquo〇rdquo (0xA996) 和欧元符ldquoeurordquo (0xA2E3)ndash 表意文字描述符 13 个ldquohelliphelliprdquo( 0xA989~0xA995 )ndash 对 GB 130001-93增补的汉字和部首 构件 80 个ldquohelliphellip䶮rdquo( 0xFE50~ 0x

FEA0 )bull 四字节部分mdashmdash收录了上述双字节字符之外的包括 CJK 统一汉字扩充 A 在内

的 GB 130001-93 中的全部字符

GB 18030双字节部分的码位安排

类别 区名 码位范围 码位数 字符数 内容

符号区双字节 1区 A1A1~A9FE 846 718

GB 2312非汉字字符等

双字节 5区 A840~A9A0 192 166 台湾图符等

汉字区双字节 2区 B0A1~F7FE 6768 6763 GB 2312汉字双字节 3区 8140~A0FE 6080 6080 CJK统一汉字双字节 4区 AA40~FEA0 8160 8160 CJK统一汉字等

用户自定义区双字节用户区 1 AAA1~AFFE 564

用户自定义字符双字节用户区 2 F8A1~FEFE 658

双字节用户区 3 A140~A7A0 672

GB 18030双字节部分的编码空间结构图 尾字节

0x40larr――rarr0x7E 0x80larr――rarr0xA0 0xA1larr――――――――――――rarr0xFE

0x81 uarr darr

0xA0

0xA1 uarr darr

0xA7

0xA8 0xA9

首字节

0xAA uarr | | | | | | | | | | darr

0xFE

双字节 3区

汉字区6 080个码位

双字节用户区 3

用户自定义区672个码位

双字节 5区 图形符号区192个码位

双字节 4区

汉字区8 160个码位

双字节 1区

图形符号区564个码位

双字节 2区

汉字区6 768个码位

双字节用户区 1 用户自定义区564个码位

双字节用户区 2 用户自定义区658个码位

223 国际通用字符编码

bull Unicode (统一码)是由多语言软件制造商组成的统一码协会( httpwwwUnicodeorg)所制定一种国际字符的编码标准

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull 本节主要介绍这两种关系密切的主流国际字符编码标准的来历编码方案各自特点与相互关系

1 Unicode 统一码bull 发展历史

ndash 1987年施乐( Xerox )公司的 Joe Becker 与 Lee Collins 和苹果( Apple )公司的 Mark Davis 等人开始讨论统一编码 1987年 12月 Joe Becker造词 Unicode (统一码)含义为ldquo unique universal and uniform character encodingrdquo (单一通用统一的字符编码) 1989年 2月开始定期召开统一码会议 1989年 9月公布 Unicode草案

ndash 1991年 1月 3 日由 Xerox Apple Sun IBM Aldis Microsoft 等公司出资在美国加州成立了统一码协会( Unicode Consortium )并由协会设立非盈利性的统一码公司( Unicode Inc )后来 HP Adobe Borland Digital Lotus Novell 等公司也纷纷加入 1991年 1月成立统一码技术委员会 UTC 并制定了其规程

ndash 1991年 2月在 Ed Hart 的推动下进行了ldquo统一码对 10464 国际标准草案 1rdquo 的对话Unicode 与 ISOIEC 10646开始走向融合

ndash 1991年 8月发布 Unicode 标准 10版的第 1卷(体系结构非表意字符) 1992年6月发表 Unicode 10版的第 2卷(表意字符) 1993年 6月发布 Unicode 11版与 1993年 5月公布的 ISOIEC 10646-11993 实现了合并

ndash 1996年 7月发布 Unicode 20版ndash 1999年 9月发布 Unicode 30版ndash 2003年 4月发布 Unicode 40版(对应于 ISOIEC 106462003 ) 2004年 3月 31日发布 Unicode 401版 2005年 3月 31日发布 Unicode 410版

ndash 2006年 7月 14日发布 Unicode 50版 2008年 4月 4日发布 Unicode 51版 2009年 12月 22日发布 Unicode 52版

ndash 2010年 10月发布 Unicode 60版 2012年 1月发布 Unicode 61版(对应于 ISOIEC 106462012 ) 2012年 9月推出 Unicode 62版 2013年 9月推出 Unicode 63版

ndash 2014年 6月 16日发布 Unicode 70版 ndash 2015年 6月 17日发布 Unicode 80版

字符集bull Unicode 字符集的空间分成双字节的基本多语言平面 (Basic Multilingual Pla

ne BMP) 和 4 字节的辅助多语言平面 (Supplementary Multilingual Plane SMP) 两种

bull BMPndash Unicode 的基本平面或基本多语言平面 BMP 对应于 ISOIEC 10646-1 的第 00组的 00 平面( BMP )即 Unicode 与 ISOIEC 10646 的 BMP 中的字符编码完全一致

bull SMPndash 鉴于 Unicode 原有的 16位元空间不足以应用从 Unicode 31版本开始设立了 16 个辅助平面使 Unicode 的可使用空间由六万多字增至约一百万字

ndash 原有的 Unicode双字节空间称为基本平面或基本多语言平面 BMP 辅助多语言平面 SMP 字符要用 4 字节来储存

ndash 第一辅助平面摆放拼音文字(主要为现时已不再使用的文字)及符号范围在 U+10000 - U+1FFFD

ndash 第二辅助平面又称为表意文字补充平面 (Supplementary Ideographic Plane 简称 SIP) 现时摆放ldquo中日韩统汉字扩展 B 区rdquo共 43253 个汉字范围在 U+20000 - U+2FFFD

ndash 第三至十三辅助平面尚未使用ndash 第十四辅助平面又称为特殊用途补充平面 (Supplementary Special-purpose Pl

ane 简称 SSP) 摆放 Language tags 和 Variation Selectors 它们都是控制字符范围在 U+E0000 - U+E01FF

ndash 第十五至十六辅助平面都是私人使用区它们的范围是 U+F0000 - U+FFFFD 及 U+100000 - U+1000FD

bull Unicode 字符集的具体编码方式参加第 4小节ldquo 4 UTFrdquo

2 ISOIEC 10646

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull ISOIEC 10646 标准由 ISO 与 IEC 联合成立的 ISOIEC JTC1SC2WG2 制定ndash JTC 1 ( Joint Technical Committee 1 on Information

technology ISOIEC信息技术联合技术委员会 1 )负责信息技术方面标准的制定工作

ndash SC 2 ( SubCommittee 2 on Coded character sets 编码字符集分会 2 )下的 WG 2 ( Working Group 2 on Universal coded character set 通用编码字符集工作组 2 )负责制定国际通用字符编码标准即后来公布的 ISOIEC 10646

发展历史bull 1984年 ISO 的一些会员国发起制定新的国际字符编码标准同年 4月 ISO

与 IEC 联合成立 ISOIEC JTC1SC2WG2 1987年 3月制定出编码架构1992年 6月投票通过第二版国际标准草案

bull 1993年 5月推出 10646 标准时将内容分成两个部分标准首先发布的是其中的第 1 个部分(体系结构与基本多文种平面)的第 1版( Edition 1 ) ISOIEC 10646-11993 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane(信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

bull 2000年 3月推出 10646 标准第一个部分的第 2版( Edition 2 ) ISOIEC 10646-12000 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane

bull 2001年 10月推出 10646 标准第 2版的第二个部分(辅助平面)的第 1版( Edition 1 ) ISOIEC 10646-22001 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 2 Supplementary Planes

bull 2003年 10月推出的 10646新标准(第 1版 Edition 1 )将老标准中的两个部分标准合并成了一个单一的标准 ISOIEC 106462003 Information technology -- Universal Multiple- Octet Coded Character Set (UCS) 后来又于 2010年 2012年和 2014年分别推出了 ISOIEC 106462010 (第 2版)ISOIEC 106462012 (第 3版)和 ISOIEC 106462014 (第 4版)

UCS 通用字符集bull 通用字符集( Universal Character Set UCS )是

ISOIEC 10646 标准所定义的字符编码方式采用 4字节编码又称为 Universal Multiple-Octet Coded Character Set (通用多八位编码字符集)

bull 通用字符集是所有包括了其他字符集它保证了与其他字符集的双向兼容即如果你将任何文本字符串翻译到 UCS 格式然后再翻译回原编码你不会丢失任何信息

bull UCS 包含了已知语言的所有字符除了拉丁语希腊语斯拉夫语希伯来语阿拉伯语亚美尼亚语格鲁吉亚语还包括中文日文韩文这样的象形文字 UCS 还包括大量的图形印刷数学科学符号

名字与组合字符bull UCS 不仅给每个字符分配一个代码而且赋予了

一个正式的名字表示一个 UCS 或 Unicode值的十六进制数通常在前面加上ldquo U+rdquo 例如ldquo U+0041rdquo代表字符ldquo Ardquo

bull UCS里有些编码点分配给了组合字符组合字符机制允许在任何字符后加上重音符或其他指示标记 这在科学符号中特别有用 比如数学方程式和国际音标字母 可能会需要在一个基本字符后组合上一个或多个指示标记

实现级别bull 并不是所有的系统都需要支持像组合字符这样的的先进

机制因此 ISO 10646 指定了如下三种实现级别ndash 级别 1不支持组合字符和韩语 Hangul Jamo 字符 ( 一种特

别的 更加复杂的韩国文的编码 使用两个或三个子字符来编码一个韩文音节 )

ndash 级别 2类似于级别 1 但在某些文字中允许一列固定的组合字符 (例如 希伯来文 阿拉伯文 Devangari 孟加拉语 果鲁穆奇语 Gujarati Oriya 泰米尔语 Telugo 印 埃纳德语 Malayalam 泰国语和老挝语 ) 因为如果没有最起码的几个组合字符 UCS就不能完整地表达这些语言

ndash 级别 3支持所有的 UCS 字符如可以在任意一个字符上加上一个箭头或 和一个 tilde(颚化符号即字母上面的~ )

编码方式bull UCS 有如下两种编码方式

ndash UCS-2与 Unicode 的 2 字节编码基本一样ndash UCS-4 4 字节编码目前是在 UCS-2 前加

上 2 个全零的字节bull UCS 还有 UTF 编码方式参见下面第 4小节ldquo 4 UTFrdquo

3 Unicode 与 ISOIEC 10646bull 关系

ndash 历史上存在两个独立的尝试创立单一字符集的组织即国际标准化组织( ISO )和多语言软件制造商组成的统一码协会组织( Unicodeorg )前者开发的 ISO 10646项目后者开发的 Unicode项目因此最初制定了不同的标准

ndash 1991年前后两个项目的参与者都认识到世界不需要两个不兼容的字符集于是它们开始合并双方的工作成果并为创立一个单一编码表而协同工作

ndash 从 Unicode20开始 Unicode采用了与 ISO 10646-1相同的字库和字码 ISO 也承诺 ISO10646 将不会替超出 U+10FFFF 的 UCS-4 编码赋值以使得两者保持一致

ndash 两个项目仍都存在并独立地公布各自的标准但 Unicode协会和 ISOIEC JTC1SC2 都同意保持两者标准的码表兼容并紧密地共同调整任何未来的扩展

异同bull Unicode协会公布的 Unicode 标准包含了 ISO 10646-1 实现级别

3 的基本多文种平面在两个标准里所有的字符都在相同的位置并且有相同的名字

bull ISO 10646 标准就像 ISO 8859 标准一样只不过是一个简单的字符集表它定义了一些编码的别名指定了一些与标准有关的术语并包括了规范说明指定了怎样使用 UCS连接其他 ISO 标准的实现等

bull Unicode 标准额外定义了许多与字符有关的语义符号学并详细说明了绘制某些语言(如阿拉伯语)表达形式的算法处理双向文字(比如拉丁文和希伯来文的混合文字)的算法排序与字符串比较所需的算法等等

bull 考虑到 Unicode 标准有一个易记的名字既便宜又包括更多的辅助信息因而它使用得更广泛然而

bull 一般认为用于打印 ISO 10646-1 标准的字体在某些方面的质量要高于用于打印 Unicode 20 的专业字体设计者总是被建议说要两个标准都实现但一些提供的样例字形有显著的区别 ISO 10646-1 标准同样使用四种不同的风格变体来显示表意文字如中文日文和韩文 (CJK) 而 Unicode 20 的表里只有中文的变体

4 UTFbull Unicode 和 UCS 都是一个字符集可以看作为内码bull UTF ( UnicodeUCS Transformation Format 统一码

通用字符集转换格式)是一种编码方式它的出现是因为 Unicode 和 UCS 不适宜在某些场合直接传输和处理

bull UCS 和 Unicode 只是分配整数给字符的编码表现在存在好几种将一串字符表示为一串字节的方法(如高或低位字节在前)

bull 最显而易见的两种方法是将 UCS 和 Unicode 文本存储为 2 个 或 4 个字节序列的串这两种方法的正式名称分别为 UCS-2 和 UCS-4

bull 常用的 UTF具体编码方式有 UTF-8 UTF-16 和 UTF-32

UTF-8

bull UTF-8 是 UTF 的一种具体编码方式在 ISO 10646-1 的附录 R 和 IETF 的 RFC 2279 里定义

bull 由于要使文档中的文字与 ASCII兼容故 UTF-8 选择了使用可变长度字节来储存 Unicode 和 UCS 例如ndash ASCII 字母继续使用 1 字节储存ndash 重音文字希腊字母或西里尔字母等使用 2 字节来储存ndash 常用的汉字就要使用 3 字节ndash 辅助平面字符则使用 4 字节ndash 即 ASCII 不作变换其他字符做变长编码每个字符 1~4 字节

bull UTF-8 通常作为外码bull 在 UTF-8 文件的开首很多时都放置一个 U+FEFF 字符

(UTF-8 以 EF BB BF 代表 ) 以显示这个文字档案是以UTF-8 编码

UTF-8 的优点bull 与 CPU 字节顺序无关可以在不同平台之间交流

bull 容错能力高任何一个字节损坏后最多只会导致一个编码码位损失不会链锁错误 ( 如 GB 码错一个字节就会整行乱码 )

UTF-8 的缺点bull UTF-8 使用可变长度字节储存使计算机程序设计变得复杂 (故此在计算机程序或操作系统内部多采用 UCS-2 编码 )

bull 在旧式的中文日文及朝鲜文编码之中每字符都使用 2 字节储存而 UTF-8 须使用 3 字节 (采用 UTF-16 编码则可只使用 2字节储存 )

bull 泰语以往使用的 ISO 8859-11 每字符只使用 1 字节储存而 UTF-8 须使用 3 字节

UTF-8储存的多字节串字符bull U-00000000 - U-0000007F 0xxxxxxx bull U-00000080 - U-000007FF 110xxxxx 10xxxxxx

bull U-00000800 - U-0000FFFF 1110xxxx 10xxxxxx

10xxxxxx bull U-00010000 - U-001FFFFF 11110xxx 10xxxxx

x 10xxxxxx 10xxxxxx bull 在多字节串中第一个字节的开头ldquo 1rdquo 的数目就

是整个串中字节的数目bull 每个使用 UTF-8储存的字符除了第一个字节外其余字节的头两个位元都是以 10 开始使文字处理器能够较快地找出每个字符的开始位置

UTF-16bull UTF-16 是 UTF 的另一种具体编码方式在 ISO 1064

6-1 的附录 Q 和 IETF 的 RFC 2781 里定义bull UTF-16 是变长码( 2 或 4 字节)大致相当于 20位编码值在 0 到 0x10FFFF 之间基本上就是 Unicode 编码的实现 UTF-16 与 CPU 字序有关但因为最省空间常作为网络传输的外码 UTF-16 是 Unicode 的完美编码

bull lt0x10000 的直接用其对应的 16位整数编码位于 0x10000 ~ 0x10FFFF 之间的用 0xD800~0xDBFF 的 16位整数后跟 0xDC00~0xDFFF 的 16位整数的 4 字节编码 gt 0x10FFFF 的不能用 UTF-16 表示

bull 在 Unicode 的 BMP 中定义的字符(无论是拉丁字母汉字或其他文字或符号)一律使用 2 字节存储而在辅助平面定义的字符则以两个 2 字节的值来存储

UTF-16 的特点bull UTF-16比起 UTF-8 的好处在于大部分字符都以固定长

度的 2 字节存储但 UTF-16却无法相容于 ASCII 编码bull UTF-16 有两种编码模式即大尾序( big Endian 高位字节在前)和小尾序( little Endian 高位字节在后)储存形式(一般來說以 Macintosh 制作和存储的文字使用大尾序格式以 Microsoft 或 Linux 制作和存储的文字使用小尾序格式)

bull 为了弄区分 UTF-16 文件的大小尾序在 UTF-16 文件的开头都会放置一个 U+FEFF 字符作为字节顺序标记 (UTF-16LE 以 FF FE代表 UTF-16BE 以 FE FF代表 ) 以显示该文档是以 UTF-16 编码的

UTF-32

bull UTF-32 仅使用了 Unicode范围 (0 到 0x10FFFF) 的 32位编码相当于 UCS-4 的子集

bull 由于 Unicode 和 ISOIEC 10646 的编码和结构与前面讲过的 GB 13000 类似或等价这里就不再做详细的介绍

5支持bull 现在 UnicodeUCS 已经获得了十分广泛的支

持ndash网络与浏览器(如 HTML 4050 XML 与 IE

Safari Netscape Firefox Chrome Opera Edge 等)

ndash操作系统(如 Windows NT2000XPVista7810 Mac OS X iOS Android和 Linux )

ndash 编程语言新版本(如 CC++JavaObjective-CC Swift 等)

Unicode 代码的浏览器显示代码 字符标准名称 (英语 )

浏览器的显示

amp65 大写拉丁字母 A A

amp223 小写拉丁字母 Sharp S szlig

amp254 小写拉丁字母 Thorn thorn

amp916 大写希腊字母 Delta Δ

amp1049 大写斯拉夫字母 Short I Й

amp1511 希伯来字母 Qof ק

amp1605 阿拉伯字母 Meem م

amp3671 泰文数字 7 ๗amp4688 埃塞俄比亚音节文字 Qha ቐ

amp12354 日语平假名 A あamp12450 日语片假名 A アamp21494 简体汉字 叶 叶amp33865 繁体汉字 葉 葉amp50685 韩国音节文字 Yeob 엽

23 文字输出bull 文字输出是指将计算机内的字符编码通过计算机的输出设备(如显示器打印机喇叭)展现出所对应字符的图形或声音供人们阅读或聆听

bull 本节主要介绍文字图示输出的字形技术bull 文字声音输出属于语音合成只在本节的末尾作简单的介绍

231 字形技术bull 文字 = 图形bull 不论是象形文字中的单字还是拼音文字

中的字母都是用图形来表示的bull 在计算机里文字的表示 输出(显示和打

印)涉及ndash 字型ndash 字体ndash 字库

1字型bull 字型指构造和生成字形的方法一般可分为

ndash 点阵字 DOS 显卡 ROM 金山 科印特点似位图显示快占空间(字库大)放大后有马赛克效应

bull 显示字母 88 汉字 1616bull 打印 2424 4848 6464

ndash 矢量字单线条用于笔式绘图仪特点字库小算法简单难看

ndash 轮廓字用曲线描绘字的轮廓输出效果好所见即所得(WYSWYG) 可无级放大易实现空心 阴影 填充 变形等各种特效功能轮廓曲线一般采用样条曲线如 TrueType (Apple 1991 Mac OS Microsoft 1992 Windows 31)用的是二次 B 样条 Bezier曲线中文之星 RichWin采用的是三次 B 样条 Bezier曲线

字型种类

2字体bull 字体指字的形状风格如

ndash 汉字的

ndash 英文的

宋体楷体黑体仿宋

行楷隶书新魏幼圆

Times New Roman Arial Narrow Courier New

常用汉字字体bull 宋体mdashmdash宋体来自于北宋时雕版刻书所采用的欧体字(唐朝欧阳询体)宋体字的横顿拉捺挑钩别具特色间架平正疏密适中字体秀丽遒劲但笔画横细竖粗适合于刀刻不宜于手写现在宋体广泛用于印刷常来表现文档的正文

bull 仿宋体mdashmdash 1920年钱塘的丁辅之与丁善之等人将明代以后盛行的方廓形字体加以改造创造出长形和方形的聚珍仿宋后来演化为现在的仿宋体仿宋体比较接近于手写体为宋体和楷体的折中是采用的宋体的结构和楷体的笔法而成现常来表现打印文件以及文档的摘要和注释等

bull 黑体mdashmdash黑体是适应工艺美术的发展而出现的一种等线体是从日本引进的黑体的结构与宋体没有什么差别只是其笔画粗细一致健实粗壮主要用于文档的标题和重点及标语广告等方面

bull 楷体mdashmdash楷体源于楷书楷体的笔画圆浑笔调灵活结构端正美观但不宜于木板雕刻所以直到清末西洋的石板印刷术传入后才开始广泛用于印刷现代的楷体创造于 20世纪的二三十年代主要用于文档的正文(多用于中小学教材)也可用于工艺美术等方面

3字库bull 字库为一种文字的某一字体的所有字符的集合一般存放在一个磁盘文件中

bull 由于象形文字中单字的数量大(成千上万)而拼音文字中字母的数量小(不到一百个)所以字库的大小有很大的差别

bull 为了使文档界面丰富多彩常见的字处理软件都支持多种字体带有众多字库

4点阵字型的国家标准bull 我国已经公布了若干字体的点阵字型之国家标准

ndash GB 50071-19852001 信息技术 汉字编码字符集(基本集) 24 点阵字型

ndash GB 50072-19852001 信息技术 汉字编码字符集(辅助集) 24 点阵字型

ndash GB 5199-19862001 信息技术 汉字编码字符集(基本集) 16 点阵字型 宋体

ndash GB 6345-19862001 信息技术 汉字编码字符集(基本集) 32 点阵字型 宋体

ndash GB 12041-2001 信息技术 汉字编码字符集(基本集) 48点阵字型 宋体

ndash GB 17698-1999 信息技术 通用多八位编码字符集( I 区) 汉字 16 点阵字型

232 语音合成bull 文字的声音输出主要使用的是语音合成的技术bull 语音合成功能是ldquo文rarr语rdquo转换bull 文语转换 TTS (Text-To-Speech) 是将文本形式的信息转换成自然语音的一种技术其最终目标是使计算机输出清晰而又自然的声音

bull 英语的语音合成在上世纪 80年代就早已成熟而中文 汉语的合成现在也趋于成熟并有了广泛的应用(如汽车导航仪智能手机等)

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 31: 第一篇  媒体

GB 1988-80 ( ASCII )的代码结构图

行 0 1 2 3 4 5 6 7

0 SP

1 helliphellip

15

16

32个

控制符

94个

图形字符

DEL

GB 2311-80 的八位编码结构图列

行 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0 SP 100

1

helliphellip

14

15

C0

32个

控制符

GL

94或 96个

图形字符

DEL

C1

32个

控制符

GR

94或 96个

图形字符

1515

2 GB 2312

bull GB 2312-80《信息交换用汉字编码字符集 middot基本集》是我国制定的一个使用最广泛的汉字编码的强制性国家标准由原第四机械工业部的华北计算机研究所(后改名为电子工业部第十五研究所)起草1980年批准 1981年 5月 1日起实施

bull GB 2312-80 是在已有的国家标准 GB 1988-80(对应于 ISO 646 )和 GB 2311-80 (对应于 ISO 2022 )的基础上制定的采用与 ISO 2022兼容的GB 2311 之 7位到八位的代码扩充办法用双字节编码表示汉字与 ASCII兼容

收录的字符bull GB 2312 对应的是汉字的基本集共收汉字 6 763 个

可达到 9999 的使用频率因此除了极少数生僻的人名地名和古文外 GB 2312 中的汉字已经能基本满足平时的使用了

bull 除了汉字外 GB 2312 还收录了 682 个非汉字图形符号包括 202 个一般符号(含间隔符标点运算符和制表符) 60 个序号符 22 个数字符 52 个英文字母 169 个日文假名 48 个希腊字母 66 个俄文字母 26 个汉语拼音符号和 37 个汉语注音字母

bull 所以在 GB 2312-80 标准中共收录了( 6 763 汉字 + 682 非汉字图符 = ) 7 445 图形字符

两级汉字bull GB 2312 将其收录的六千多个汉字分成两个级别bull 一级汉字有 3 755 个都为使用频率高的常用汉

字为便于检索像字典那样将这些汉字按拼音字母顺序排列(同音字再按笔顺的横竖撇捺点折序排列)

bull 二级汉字有 3 008 个大部分较生僻不易掌握读音所以按部首顺序排列(同部首的字按笔画数排列同笔画数的字再按笔顺排列)

编码方案bull GB 2312 对所有图形字符(包括汉字和非汉字图符)都采用两个字节表示每个字节的低七位用于编码最高位全为 1 这样可以兼容 ASCII 编码(字节的最高位全为 0 )

bull 虽然在一个字节中最高位为 1 的符号位置有 128 个但从前面 GB 2311 的分析可知为了与 ASCII 的代码结构兼容保留了( 32 + 2 = ) 34 个控制符位置最后只有( 128 ndash 34 = ) 94 个符号位可供图形字符编码使用

bull 图形字符在代码表中的位置用区位码表示将码表分成94 个区对应于编码的第一个字节取值 0x21~0x7E 每个区又分成 94 个位对应于编码的第二个字节取值 0x21~0x7E (参见表 2-6 )

bull 例如ldquo中山大学rdquo的编码为中 (0xD6D0) 山 (0xC9BD) 大 (0xB4F3) 学 (0xD1A7)

GB 2312-80 字符集结构 20 21 22 helliphellip 7D 7E 7F

位号

区号

1 2 helliphellip 93 94

20

21~29 1~9 非汉字图符(682个)

2A~2F 10~15 空白区

30~57 16~55 一级汉字(3 755个)

58~77 56~87 二级汉字(3 008个)

78~7E 88~94 空白区

7F

第 1 区的部分非汉字图符

1区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 middot ˉ ˇ uml 々 mdash ~ hellip lsquo rsquo ldquo

17~32 rdquo 〔 〕 〈 〉 《 》 「 」 『 』 〖 〗 【 】 plusmn

33~48 times divide ∶ and or sum prod cup cap isin ∷ radic perp ∥ ang

49~64 ⊙ int ∮ equiv ≌ asymp ∽ prop ne ltu gtu le ge infin ∵ there4

65~80 deg prime Prime $ curren ¢ £ permil sect

81~94 rarr larr uarr darr

第 16 区的部分一级汉字

16区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 啊 阿 埃 挨 哎 唉 哀 皑 癌 蔼 矮 艾 碍 爱 隘 鞍

17~32 氨 安 俺 按 暗 岸 胺 案 肮 昂 盎 凹 敖 熬 翱 袄

33~48 傲 奥 懊 澳 芭 捌 扒 叭 吧 笆 八 疤 巴 拔 跋 靶

49~64 把 耙 坝 霸 罢 爸 白 柏 百 摆 佰 败 拜 稗 斑 班

65~80 搬 扳 般 颁 板 版 扮 拌 伴 瓣 半 办 绊 邦 帮 梆

81~94 榜 膀 绑 棒 磅 蚌 镑 傍 谤 苞 胞 包 褒 剥

第 56 区的部分二级汉字

56区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 亍 丌 兀 丐 廿 卅 丕 亘 丞 鬲 孬 噩 丨 禺 丿 匕

17~32 乇 夭 爻 卮 氐 囟 胤 馗 毓 睾 鼗 丶 亟 鼐 乜 乩

33~48 亓 芈 孛 啬 嘏 仄 厍 厝 厣 厥 厮 靥 赝 匚 叵 匦

49~64 匮 匾 赜 卦 卣 刂 刈 刎 刭 刳 刿 剀 剌 剞 剡 剜

65~80 蒯 剽 劂 劁 劐 劓 冂 罔 亻 仃 仉 仂 仨 仡 仫 仞

81~94 伛 仳 伢 佤 仵 伥 伧 伉 伫 佞 佧 攸 佚 佝

3汉字编码的辅助集bull 除了GB 2312基本集的 6 763 个简体汉字外国家标

准还给出了汉字编码字符集的多个辅助集bull 第二 四辅助集分别增加了 7 237 7 039 个简体汉字bull 第一和三 五辅助集则分别是与基本集和第二 四辅助集所对应的繁体汉字字符集的国家标准

bull 基本集加上辅助集共有 21 039 个简体汉字和 21 142个繁体汉字

bull 繁体汉字之所以多一些是因为在第一辅助集中有时几个繁体字对应一个简体字因此比基本集多出 103 个汉字

bull 基本集和辅助集的代码页之间靠其编码字节的最高位来区分

编码字符的分页标志

双字节汉字编码的页面结构第二字节 列号

行号 0 middot middot middot 32 33 34 helliphellip 125 126 127 128middot middot 160 161 162 helliphellip 254 255 0 middot middot 32

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

33 34 middot middot middot 126

1 2 middot middot middot 94

第四五辅助集 (7 039个汉字)

127

(兼容ASCII)

128 middot middot 160

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

161 162 middot middot middot 254

1 2 middot middot middot 94

第二三辅助集 (7 237个汉字)

1 2 middot middot middot 94

基本集第一辅助集 (6 763 6 866个汉字) (682个非汉字图符)

第一字节

255

4 Big5

bull 除了中国大陆使用的简体汉字外在台湾香港澳门和海外华侨社区使用的是传统的繁体汉字

bull 简体汉字使用 GB (国标)系列编码标准bull 繁体汉字一般使用的是 Big5内码(大五码)即台湾的ldquo资讯工业策进会rdquo发布的《标准交换码 (Ⅲ码 )》收录汉字 13 053 个

bull Big5内码是 1984年由台湾财团法人资讯工业策进会与宏碁 (Acer) 神通 (MiTAC) 佳佳零壹 (Zero One) 大众 (FIC) 等五大软件公司联合推出故称为大五码

BIG5 的代码空间低位字节

00 hellip 3F 40 hellip 7E 7F hellip A0 A1 hellip FE FF

高位字节

00middot

80

81middot

A0用户定义区 用户定义区

A1A2A3

非汉字图符 非汉字图符

A4middot

C6常用汉字 常用汉字

C7C8

用户定义区 用户定义区

C9middot

F9次常用汉字 次常用汉字

FAmiddot

FE用户定义区 用户定义区

FF

5少数民族文字编码bull 中国共有 56 个民族除了汉回满族一般使用汉语外其他少数民族大多有自己的民族语言

bull 我国各民族使用的 50 多种文字可以分为字母式结构文字和非字母式结构文字两大类ndash 字母式结构的有拉丁文斯拉夫文蒙古文维吾尔文哈萨克文藏文和朝鲜文等字母式

ndash 非字母式结构的有汉字象形文字图画文字和音节文字等bull 各民族文字的书写方向也有不同

ndash 壮文藏文朝鲜文彝文等的字从左到右行从上到下ndash 维吾尔文哈萨克文和柯尔克孜文等的字从右到左行从上

到下ndash 蒙古文和满文的字从上到下行从左到右ndash 汉字的书写方向有两种

bull 大陆的简体汉字的字从左到右行从上到下bull 港台与古旧书的繁体汉字的字从上到下行从右到左

国家标准bull 下面按发布时间列出若干已经公布的我国少数民族文字

编码集的国家标准(这些字符集一般分成两类对字母式结构文字采用八位编码对非字母式结构文字采用双字节编码)ndash GB 8045-87《信息处理交换用蒙古文七位和八位编码图形字

符集》收 82 个蒙古文字母和 12 个其他符号共 94 个字符ndash GB 12050-89《信息处理交换用维吾尔文编码图形字符集》收 32 个维吾尔文字母一个维吾尔文复合字符和 37 个其他符号共 70 个字符

ndash GB 12052-89《信息交换用朝鲜文编码字符集》收 5297 个朝鲜文字和 682 个其他符号(与 GB 2132同)共 5 979 个字符

ndash GB 13134-91《信息交换用彝文编码字符集》收 1165 个彝文字符和 688 个其他符号共 1853 个字符

ndash GB 16959-1997《信息技术 信息交换用藏文编码字符集 基本集》收 41 个藏文字母 36 个藏文主字 13 个元音字符12 个语音字符 10 个藏文数字 10 个半值符一个控制用连接符和 46 个其他藏文图形符号共 169 个字符

6 GB 13000bull GB 13000 是与 ISOIEC 10646 等价的国际通用编码字符集标准收汉字 2万多个但是与 GB 2312 和 GBK 不兼容

bull 1993年 5月 ISO 与 IEC 联合推出了可用于世界各种文字的通用编码字符集的国际标准的第 1部分ndash ISOIEC 10646-11993 Information technology -- Universal Multiple-Octe

t Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane (信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

ndash 该标准收字符 96万个几乎涵盖世界上的所有文字其中包含汉字 21 003 个

bull 1993年底我国推出了等同于国际标准 ISOIEC 1064611993 的强制性国家标准 ndash GB 130001-93《信息技术 通用多八位编码字符集( UCS ) 第一部分

体系结构与基本多文种平面》ndash 该标准于 1993年 12月 24日被国家技术监督局批准 1994年 8月 1日起实施

GB 13000 的主要特点

bull 世界各语言文种字符统一编码避免冲突便于国际交流

bull 编码空间宽阔连续每个图形字符的编码唯一(一字一码)不再存在兼容性问题

bull 按文种而不是按语言编码避免重复和浪费(如中日韩汉字的统一编码 CJK )

bull 与 GB 2312 和 GBK 不兼容

体系结构bull UCS 的体系结构是基于所谓ldquo多八位rdquo的而ldquo八位rdquo就是一个字节ldquo多八位rdquo就是多个字节

bull UCS采用 4 个字节来表征组面行位的四维空间bull 整个 UCS空间包含 128 个组( 0x00组 ~0x7F组)每组有 256 个平面( 0x00 平面 ~0xFF 平面)每个平面有 256 行每行又由 256 个字位构成

bull UCS共有( 128 times 256 = ) 32 768 个平面每个平面有( 256 times 256 = ) 65 536 个字位每个字位对应于一个字符的编码

bull 目前的编码只限于 00组已经定义的平面有 00组的00 平面mdashmdash称之为基本多文种平面 BMP ( Basic Multilingual Plane ) 及若干辅助平面

UCS 的全部编码空间

每个平面256times256 个

字位

00组 00 平面

00组 FF 平面

01组 00 平面

7F组 00 平面00

01组

7F组

UCS 的 00组

BMPbull BMP = Basic Multilingual Plane 基本多文种平面bull BMP 用作双八位编码字符集称之为 UCS-2 它被

分成四个区ndash A- 区(字位 0x0000~0x4DFF 有 19 903 个字位)用于

字母文字音节文字以及各种符号ndash I- 区(字位 0x4E00~0x9FFF 共 20 992 个字位)用于中日韩统一汉字( CJK )

ndash O- 区(字位 0xA000~0xDFFF 共 16 384 个字位)保留未来标准化用

ndash R- 区(字位 0xE000~0xFFFD 共 8 190 个字位)为 BMP 的限制使用区包括专用字符变形显现形式及兼容字符

BMP总貌

A-区

00~33 拼音文字(见下页)

34~3D 朝鲜文

3E~44 朝鲜文补充 -A

45~4D 朝鲜文补充 -B

I-区 4E~9F CJK统一汉字O-区 A0~DF

R-区

E0~F8 专用区

F9~FA CJK兼容汉字FB 拼音文字变形显现形式

FC~FD 阿拉伯文变形显现形式 -A

FE半形组合用标志

CJK兼容形式

小写变体

阿拉伯文变形显现形式 -B

FF 半形及全形字符 特殊字符

BMP 的0x00~0x33

行字母文字区

00 基本拉丁文 拉丁文-1补充

01 拉丁文扩充-A 拉丁文扩充-B

02 拉丁文扩充-B 国际音标扩充 进格修饰字符

03 组合用发音符 基本希腊文 希腊符号及哥普特文

04 西里尔文

05 美亚尼亚文 希伯来文(基本和扩充)

06 基本阿拉伯文 阿拉伯文扩充

07

08

09 梵文 孟加拉文

0A 锡克教文 古吉拉特文

0B 奥利雅文 泰米尔文

0C 泰卢固文 卡纳达文

0D 德拉维族文

0E 泰文 老挝文

0F

10 格鲁吉亚文

11 朝鲜文字母

12~1D

1E 拉丁文扩充增补

1F 希腊文扩充

20 广义标点 上下标 货币符号 符号组合用区分标志

21 类似字母的符号 数字形式 箭头

22 数学运算符

23 零杂技术用符号

24 控制图符 光学识别符 带括号的字母数字

25 制表符 方块元素 几何图形符

26 零杂符号

27 示意符等

28~2F

30 CJK符号和标点 平假名 片假名

31 注音 朝鲜文兼容字母 CJK零杂字符

32 带括号的CJK字母及月份

33 CJK兼容字符

留作将来标准化用

非图形字符

表示形式bull GB 13000提供了字符编码表示的两种替代使用的形式

ndash 双八位 BMP 形式( UCS-2 )mdashmdash允许使用 BMP 中的字符且每个字符用两个字节表示

ndash 肆八位正则形式( UCS-4 )mdashmdash允许使用 GB 13000 中的全部字符且每个字符用四个字节表示

bull 除了 UCS-24外还有另外两种变形的表示形式ndash UTF-8 (单字节 ~ 多字节)ndash UTF-16 (双字节和 4 字节与 UCS-2 等价)ndash 目前在工业上的实现均为 UTF-16 ( UCS-2 )和 UTF-8ndash UTF = Unicode UCS Transformation Format 统一码 UC

S转换格式bull 关于统一码我们会在下一小节详细介绍

7 GBK 与 GB 18030bull 由于 GB 13000 标准与 GB 2312 标准的字符编码不兼容作为过渡在国家信息技术标准化委员会的主持下制定了与 GB 2312兼容的《汉字内码扩展规范( GBK )》( K 为扩展的ldquo扩rdquo字的拼音首字母)并于 1995年 12月 15日由原国家技术监督局标准司联合原电子工业部科技与质量监督司作为指导性技术规范发布实施

bull 2000年 GBK又被国家标准 GB 18030-2000《信息技术 信息交换用汉字编码字符集 基本集的扩充》所代替该标准收汉字 2万 7千个

bull 与 GB 2312 一样 GB 18030 也为中国的强制性国家标准微软公司的 Windows XPVista78 中文版与苹果公司的 Mac OS X 和 iOS 谷歌公司的 Android (安卓)等操作系统已经全面支持 GBK

GB 18030 的码位范围分布

字节数 码位空间 码位数目

单字节 0x00~0x7F 128

双字节第 1字节 第 2字节

23 9400x81~0xFE

0x40~0x7E 0x80~0xFE

四字节第 1字节 第 2字节 第 3字节 第 4字节

1 587 6000x81~0xFE 0x30~0x39 0x81~0xFE 0x30~0x39

GB 18030的

总体结构图

收录字符bull 单字节部分mdashmdash收录了GBT 11383 的 0x00~0x7F 全部 128 个字符(似 ASCI

I )bull 双字节部分mdashmdash收录内容如下 (21 003 个汉字和 884 个符号共 21 887 个字符 )

ndash GB 130001-93 的全部 CJK 统一汉字字符 20 902 个( GB 2312 的编码汉字在双字节 2 区其他 CJK 统一汉字在双字节 34 区)

ndash GB 130001-93 的 CJK兼容区挑选出来的 21 个汉字ldquo郎凉秊helliphellip﨨﨩rdquo( 0xFD9C~0xFDA0 和 0xFE40~0xFE4F )

ndash GB 130001-93 中收录而 GB 2312未收录的台湾地区使用的图形字符 139 个ldquoˊˋ˙helliphelliprdquo( 0xA840~0xA895 和 0xA940~0XA988 )

ndash GB 130001-93收录的其他字符 31 ( 13)个(在双字节 5 区)ndash GB 2312-80 中的非汉字字符 682 个( 0xA1A1~0xA9EF )ndash GB 12345-90 的竖排标点符号 19 ( 29)个ldquo︵︶︹helliphellip︳︴rdquo( 0xA6D9~0xA6

F5 )ndash GB 2312-80未收录的 10 个小写罗马数字ldquoⅰⅱⅲhelliphellipⅸⅹrdquo( 0xA2A1~ 0xA2A

A )ndash GB 2312-80未收录的带音调的汉语拼音字母 5 ( 4)个ldquo ńňǹrdquo 以及 ɑ 和 ɡ ( 0

xA8BB~0xA8C0 )ndash 汉字数字零ldquo〇rdquo (0xA996) 和欧元符ldquoeurordquo (0xA2E3)ndash 表意文字描述符 13 个ldquohelliphelliprdquo( 0xA989~0xA995 )ndash 对 GB 130001-93增补的汉字和部首 构件 80 个ldquohelliphellip䶮rdquo( 0xFE50~ 0x

FEA0 )bull 四字节部分mdashmdash收录了上述双字节字符之外的包括 CJK 统一汉字扩充 A 在内

的 GB 130001-93 中的全部字符

GB 18030双字节部分的码位安排

类别 区名 码位范围 码位数 字符数 内容

符号区双字节 1区 A1A1~A9FE 846 718

GB 2312非汉字字符等

双字节 5区 A840~A9A0 192 166 台湾图符等

汉字区双字节 2区 B0A1~F7FE 6768 6763 GB 2312汉字双字节 3区 8140~A0FE 6080 6080 CJK统一汉字双字节 4区 AA40~FEA0 8160 8160 CJK统一汉字等

用户自定义区双字节用户区 1 AAA1~AFFE 564

用户自定义字符双字节用户区 2 F8A1~FEFE 658

双字节用户区 3 A140~A7A0 672

GB 18030双字节部分的编码空间结构图 尾字节

0x40larr――rarr0x7E 0x80larr――rarr0xA0 0xA1larr――――――――――――rarr0xFE

0x81 uarr darr

0xA0

0xA1 uarr darr

0xA7

0xA8 0xA9

首字节

0xAA uarr | | | | | | | | | | darr

0xFE

双字节 3区

汉字区6 080个码位

双字节用户区 3

用户自定义区672个码位

双字节 5区 图形符号区192个码位

双字节 4区

汉字区8 160个码位

双字节 1区

图形符号区564个码位

双字节 2区

汉字区6 768个码位

双字节用户区 1 用户自定义区564个码位

双字节用户区 2 用户自定义区658个码位

223 国际通用字符编码

bull Unicode (统一码)是由多语言软件制造商组成的统一码协会( httpwwwUnicodeorg)所制定一种国际字符的编码标准

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull 本节主要介绍这两种关系密切的主流国际字符编码标准的来历编码方案各自特点与相互关系

1 Unicode 统一码bull 发展历史

ndash 1987年施乐( Xerox )公司的 Joe Becker 与 Lee Collins 和苹果( Apple )公司的 Mark Davis 等人开始讨论统一编码 1987年 12月 Joe Becker造词 Unicode (统一码)含义为ldquo unique universal and uniform character encodingrdquo (单一通用统一的字符编码) 1989年 2月开始定期召开统一码会议 1989年 9月公布 Unicode草案

ndash 1991年 1月 3 日由 Xerox Apple Sun IBM Aldis Microsoft 等公司出资在美国加州成立了统一码协会( Unicode Consortium )并由协会设立非盈利性的统一码公司( Unicode Inc )后来 HP Adobe Borland Digital Lotus Novell 等公司也纷纷加入 1991年 1月成立统一码技术委员会 UTC 并制定了其规程

ndash 1991年 2月在 Ed Hart 的推动下进行了ldquo统一码对 10464 国际标准草案 1rdquo 的对话Unicode 与 ISOIEC 10646开始走向融合

ndash 1991年 8月发布 Unicode 标准 10版的第 1卷(体系结构非表意字符) 1992年6月发表 Unicode 10版的第 2卷(表意字符) 1993年 6月发布 Unicode 11版与 1993年 5月公布的 ISOIEC 10646-11993 实现了合并

ndash 1996年 7月发布 Unicode 20版ndash 1999年 9月发布 Unicode 30版ndash 2003年 4月发布 Unicode 40版(对应于 ISOIEC 106462003 ) 2004年 3月 31日发布 Unicode 401版 2005年 3月 31日发布 Unicode 410版

ndash 2006年 7月 14日发布 Unicode 50版 2008年 4月 4日发布 Unicode 51版 2009年 12月 22日发布 Unicode 52版

ndash 2010年 10月发布 Unicode 60版 2012年 1月发布 Unicode 61版(对应于 ISOIEC 106462012 ) 2012年 9月推出 Unicode 62版 2013年 9月推出 Unicode 63版

ndash 2014年 6月 16日发布 Unicode 70版 ndash 2015年 6月 17日发布 Unicode 80版

字符集bull Unicode 字符集的空间分成双字节的基本多语言平面 (Basic Multilingual Pla

ne BMP) 和 4 字节的辅助多语言平面 (Supplementary Multilingual Plane SMP) 两种

bull BMPndash Unicode 的基本平面或基本多语言平面 BMP 对应于 ISOIEC 10646-1 的第 00组的 00 平面( BMP )即 Unicode 与 ISOIEC 10646 的 BMP 中的字符编码完全一致

bull SMPndash 鉴于 Unicode 原有的 16位元空间不足以应用从 Unicode 31版本开始设立了 16 个辅助平面使 Unicode 的可使用空间由六万多字增至约一百万字

ndash 原有的 Unicode双字节空间称为基本平面或基本多语言平面 BMP 辅助多语言平面 SMP 字符要用 4 字节来储存

ndash 第一辅助平面摆放拼音文字(主要为现时已不再使用的文字)及符号范围在 U+10000 - U+1FFFD

ndash 第二辅助平面又称为表意文字补充平面 (Supplementary Ideographic Plane 简称 SIP) 现时摆放ldquo中日韩统汉字扩展 B 区rdquo共 43253 个汉字范围在 U+20000 - U+2FFFD

ndash 第三至十三辅助平面尚未使用ndash 第十四辅助平面又称为特殊用途补充平面 (Supplementary Special-purpose Pl

ane 简称 SSP) 摆放 Language tags 和 Variation Selectors 它们都是控制字符范围在 U+E0000 - U+E01FF

ndash 第十五至十六辅助平面都是私人使用区它们的范围是 U+F0000 - U+FFFFD 及 U+100000 - U+1000FD

bull Unicode 字符集的具体编码方式参加第 4小节ldquo 4 UTFrdquo

2 ISOIEC 10646

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull ISOIEC 10646 标准由 ISO 与 IEC 联合成立的 ISOIEC JTC1SC2WG2 制定ndash JTC 1 ( Joint Technical Committee 1 on Information

technology ISOIEC信息技术联合技术委员会 1 )负责信息技术方面标准的制定工作

ndash SC 2 ( SubCommittee 2 on Coded character sets 编码字符集分会 2 )下的 WG 2 ( Working Group 2 on Universal coded character set 通用编码字符集工作组 2 )负责制定国际通用字符编码标准即后来公布的 ISOIEC 10646

发展历史bull 1984年 ISO 的一些会员国发起制定新的国际字符编码标准同年 4月 ISO

与 IEC 联合成立 ISOIEC JTC1SC2WG2 1987年 3月制定出编码架构1992年 6月投票通过第二版国际标准草案

bull 1993年 5月推出 10646 标准时将内容分成两个部分标准首先发布的是其中的第 1 个部分(体系结构与基本多文种平面)的第 1版( Edition 1 ) ISOIEC 10646-11993 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane(信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

bull 2000年 3月推出 10646 标准第一个部分的第 2版( Edition 2 ) ISOIEC 10646-12000 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane

bull 2001年 10月推出 10646 标准第 2版的第二个部分(辅助平面)的第 1版( Edition 1 ) ISOIEC 10646-22001 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 2 Supplementary Planes

bull 2003年 10月推出的 10646新标准(第 1版 Edition 1 )将老标准中的两个部分标准合并成了一个单一的标准 ISOIEC 106462003 Information technology -- Universal Multiple- Octet Coded Character Set (UCS) 后来又于 2010年 2012年和 2014年分别推出了 ISOIEC 106462010 (第 2版)ISOIEC 106462012 (第 3版)和 ISOIEC 106462014 (第 4版)

UCS 通用字符集bull 通用字符集( Universal Character Set UCS )是

ISOIEC 10646 标准所定义的字符编码方式采用 4字节编码又称为 Universal Multiple-Octet Coded Character Set (通用多八位编码字符集)

bull 通用字符集是所有包括了其他字符集它保证了与其他字符集的双向兼容即如果你将任何文本字符串翻译到 UCS 格式然后再翻译回原编码你不会丢失任何信息

bull UCS 包含了已知语言的所有字符除了拉丁语希腊语斯拉夫语希伯来语阿拉伯语亚美尼亚语格鲁吉亚语还包括中文日文韩文这样的象形文字 UCS 还包括大量的图形印刷数学科学符号

名字与组合字符bull UCS 不仅给每个字符分配一个代码而且赋予了

一个正式的名字表示一个 UCS 或 Unicode值的十六进制数通常在前面加上ldquo U+rdquo 例如ldquo U+0041rdquo代表字符ldquo Ardquo

bull UCS里有些编码点分配给了组合字符组合字符机制允许在任何字符后加上重音符或其他指示标记 这在科学符号中特别有用 比如数学方程式和国际音标字母 可能会需要在一个基本字符后组合上一个或多个指示标记

实现级别bull 并不是所有的系统都需要支持像组合字符这样的的先进

机制因此 ISO 10646 指定了如下三种实现级别ndash 级别 1不支持组合字符和韩语 Hangul Jamo 字符 ( 一种特

别的 更加复杂的韩国文的编码 使用两个或三个子字符来编码一个韩文音节 )

ndash 级别 2类似于级别 1 但在某些文字中允许一列固定的组合字符 (例如 希伯来文 阿拉伯文 Devangari 孟加拉语 果鲁穆奇语 Gujarati Oriya 泰米尔语 Telugo 印 埃纳德语 Malayalam 泰国语和老挝语 ) 因为如果没有最起码的几个组合字符 UCS就不能完整地表达这些语言

ndash 级别 3支持所有的 UCS 字符如可以在任意一个字符上加上一个箭头或 和一个 tilde(颚化符号即字母上面的~ )

编码方式bull UCS 有如下两种编码方式

ndash UCS-2与 Unicode 的 2 字节编码基本一样ndash UCS-4 4 字节编码目前是在 UCS-2 前加

上 2 个全零的字节bull UCS 还有 UTF 编码方式参见下面第 4小节ldquo 4 UTFrdquo

3 Unicode 与 ISOIEC 10646bull 关系

ndash 历史上存在两个独立的尝试创立单一字符集的组织即国际标准化组织( ISO )和多语言软件制造商组成的统一码协会组织( Unicodeorg )前者开发的 ISO 10646项目后者开发的 Unicode项目因此最初制定了不同的标准

ndash 1991年前后两个项目的参与者都认识到世界不需要两个不兼容的字符集于是它们开始合并双方的工作成果并为创立一个单一编码表而协同工作

ndash 从 Unicode20开始 Unicode采用了与 ISO 10646-1相同的字库和字码 ISO 也承诺 ISO10646 将不会替超出 U+10FFFF 的 UCS-4 编码赋值以使得两者保持一致

ndash 两个项目仍都存在并独立地公布各自的标准但 Unicode协会和 ISOIEC JTC1SC2 都同意保持两者标准的码表兼容并紧密地共同调整任何未来的扩展

异同bull Unicode协会公布的 Unicode 标准包含了 ISO 10646-1 实现级别

3 的基本多文种平面在两个标准里所有的字符都在相同的位置并且有相同的名字

bull ISO 10646 标准就像 ISO 8859 标准一样只不过是一个简单的字符集表它定义了一些编码的别名指定了一些与标准有关的术语并包括了规范说明指定了怎样使用 UCS连接其他 ISO 标准的实现等

bull Unicode 标准额外定义了许多与字符有关的语义符号学并详细说明了绘制某些语言(如阿拉伯语)表达形式的算法处理双向文字(比如拉丁文和希伯来文的混合文字)的算法排序与字符串比较所需的算法等等

bull 考虑到 Unicode 标准有一个易记的名字既便宜又包括更多的辅助信息因而它使用得更广泛然而

bull 一般认为用于打印 ISO 10646-1 标准的字体在某些方面的质量要高于用于打印 Unicode 20 的专业字体设计者总是被建议说要两个标准都实现但一些提供的样例字形有显著的区别 ISO 10646-1 标准同样使用四种不同的风格变体来显示表意文字如中文日文和韩文 (CJK) 而 Unicode 20 的表里只有中文的变体

4 UTFbull Unicode 和 UCS 都是一个字符集可以看作为内码bull UTF ( UnicodeUCS Transformation Format 统一码

通用字符集转换格式)是一种编码方式它的出现是因为 Unicode 和 UCS 不适宜在某些场合直接传输和处理

bull UCS 和 Unicode 只是分配整数给字符的编码表现在存在好几种将一串字符表示为一串字节的方法(如高或低位字节在前)

bull 最显而易见的两种方法是将 UCS 和 Unicode 文本存储为 2 个 或 4 个字节序列的串这两种方法的正式名称分别为 UCS-2 和 UCS-4

bull 常用的 UTF具体编码方式有 UTF-8 UTF-16 和 UTF-32

UTF-8

bull UTF-8 是 UTF 的一种具体编码方式在 ISO 10646-1 的附录 R 和 IETF 的 RFC 2279 里定义

bull 由于要使文档中的文字与 ASCII兼容故 UTF-8 选择了使用可变长度字节来储存 Unicode 和 UCS 例如ndash ASCII 字母继续使用 1 字节储存ndash 重音文字希腊字母或西里尔字母等使用 2 字节来储存ndash 常用的汉字就要使用 3 字节ndash 辅助平面字符则使用 4 字节ndash 即 ASCII 不作变换其他字符做变长编码每个字符 1~4 字节

bull UTF-8 通常作为外码bull 在 UTF-8 文件的开首很多时都放置一个 U+FEFF 字符

(UTF-8 以 EF BB BF 代表 ) 以显示这个文字档案是以UTF-8 编码

UTF-8 的优点bull 与 CPU 字节顺序无关可以在不同平台之间交流

bull 容错能力高任何一个字节损坏后最多只会导致一个编码码位损失不会链锁错误 ( 如 GB 码错一个字节就会整行乱码 )

UTF-8 的缺点bull UTF-8 使用可变长度字节储存使计算机程序设计变得复杂 (故此在计算机程序或操作系统内部多采用 UCS-2 编码 )

bull 在旧式的中文日文及朝鲜文编码之中每字符都使用 2 字节储存而 UTF-8 须使用 3 字节 (采用 UTF-16 编码则可只使用 2字节储存 )

bull 泰语以往使用的 ISO 8859-11 每字符只使用 1 字节储存而 UTF-8 须使用 3 字节

UTF-8储存的多字节串字符bull U-00000000 - U-0000007F 0xxxxxxx bull U-00000080 - U-000007FF 110xxxxx 10xxxxxx

bull U-00000800 - U-0000FFFF 1110xxxx 10xxxxxx

10xxxxxx bull U-00010000 - U-001FFFFF 11110xxx 10xxxxx

x 10xxxxxx 10xxxxxx bull 在多字节串中第一个字节的开头ldquo 1rdquo 的数目就

是整个串中字节的数目bull 每个使用 UTF-8储存的字符除了第一个字节外其余字节的头两个位元都是以 10 开始使文字处理器能够较快地找出每个字符的开始位置

UTF-16bull UTF-16 是 UTF 的另一种具体编码方式在 ISO 1064

6-1 的附录 Q 和 IETF 的 RFC 2781 里定义bull UTF-16 是变长码( 2 或 4 字节)大致相当于 20位编码值在 0 到 0x10FFFF 之间基本上就是 Unicode 编码的实现 UTF-16 与 CPU 字序有关但因为最省空间常作为网络传输的外码 UTF-16 是 Unicode 的完美编码

bull lt0x10000 的直接用其对应的 16位整数编码位于 0x10000 ~ 0x10FFFF 之间的用 0xD800~0xDBFF 的 16位整数后跟 0xDC00~0xDFFF 的 16位整数的 4 字节编码 gt 0x10FFFF 的不能用 UTF-16 表示

bull 在 Unicode 的 BMP 中定义的字符(无论是拉丁字母汉字或其他文字或符号)一律使用 2 字节存储而在辅助平面定义的字符则以两个 2 字节的值来存储

UTF-16 的特点bull UTF-16比起 UTF-8 的好处在于大部分字符都以固定长

度的 2 字节存储但 UTF-16却无法相容于 ASCII 编码bull UTF-16 有两种编码模式即大尾序( big Endian 高位字节在前)和小尾序( little Endian 高位字节在后)储存形式(一般來說以 Macintosh 制作和存储的文字使用大尾序格式以 Microsoft 或 Linux 制作和存储的文字使用小尾序格式)

bull 为了弄区分 UTF-16 文件的大小尾序在 UTF-16 文件的开头都会放置一个 U+FEFF 字符作为字节顺序标记 (UTF-16LE 以 FF FE代表 UTF-16BE 以 FE FF代表 ) 以显示该文档是以 UTF-16 编码的

UTF-32

bull UTF-32 仅使用了 Unicode范围 (0 到 0x10FFFF) 的 32位编码相当于 UCS-4 的子集

bull 由于 Unicode 和 ISOIEC 10646 的编码和结构与前面讲过的 GB 13000 类似或等价这里就不再做详细的介绍

5支持bull 现在 UnicodeUCS 已经获得了十分广泛的支

持ndash网络与浏览器(如 HTML 4050 XML 与 IE

Safari Netscape Firefox Chrome Opera Edge 等)

ndash操作系统(如 Windows NT2000XPVista7810 Mac OS X iOS Android和 Linux )

ndash 编程语言新版本(如 CC++JavaObjective-CC Swift 等)

Unicode 代码的浏览器显示代码 字符标准名称 (英语 )

浏览器的显示

amp65 大写拉丁字母 A A

amp223 小写拉丁字母 Sharp S szlig

amp254 小写拉丁字母 Thorn thorn

amp916 大写希腊字母 Delta Δ

amp1049 大写斯拉夫字母 Short I Й

amp1511 希伯来字母 Qof ק

amp1605 阿拉伯字母 Meem م

amp3671 泰文数字 7 ๗amp4688 埃塞俄比亚音节文字 Qha ቐ

amp12354 日语平假名 A あamp12450 日语片假名 A アamp21494 简体汉字 叶 叶amp33865 繁体汉字 葉 葉amp50685 韩国音节文字 Yeob 엽

23 文字输出bull 文字输出是指将计算机内的字符编码通过计算机的输出设备(如显示器打印机喇叭)展现出所对应字符的图形或声音供人们阅读或聆听

bull 本节主要介绍文字图示输出的字形技术bull 文字声音输出属于语音合成只在本节的末尾作简单的介绍

231 字形技术bull 文字 = 图形bull 不论是象形文字中的单字还是拼音文字

中的字母都是用图形来表示的bull 在计算机里文字的表示 输出(显示和打

印)涉及ndash 字型ndash 字体ndash 字库

1字型bull 字型指构造和生成字形的方法一般可分为

ndash 点阵字 DOS 显卡 ROM 金山 科印特点似位图显示快占空间(字库大)放大后有马赛克效应

bull 显示字母 88 汉字 1616bull 打印 2424 4848 6464

ndash 矢量字单线条用于笔式绘图仪特点字库小算法简单难看

ndash 轮廓字用曲线描绘字的轮廓输出效果好所见即所得(WYSWYG) 可无级放大易实现空心 阴影 填充 变形等各种特效功能轮廓曲线一般采用样条曲线如 TrueType (Apple 1991 Mac OS Microsoft 1992 Windows 31)用的是二次 B 样条 Bezier曲线中文之星 RichWin采用的是三次 B 样条 Bezier曲线

字型种类

2字体bull 字体指字的形状风格如

ndash 汉字的

ndash 英文的

宋体楷体黑体仿宋

行楷隶书新魏幼圆

Times New Roman Arial Narrow Courier New

常用汉字字体bull 宋体mdashmdash宋体来自于北宋时雕版刻书所采用的欧体字(唐朝欧阳询体)宋体字的横顿拉捺挑钩别具特色间架平正疏密适中字体秀丽遒劲但笔画横细竖粗适合于刀刻不宜于手写现在宋体广泛用于印刷常来表现文档的正文

bull 仿宋体mdashmdash 1920年钱塘的丁辅之与丁善之等人将明代以后盛行的方廓形字体加以改造创造出长形和方形的聚珍仿宋后来演化为现在的仿宋体仿宋体比较接近于手写体为宋体和楷体的折中是采用的宋体的结构和楷体的笔法而成现常来表现打印文件以及文档的摘要和注释等

bull 黑体mdashmdash黑体是适应工艺美术的发展而出现的一种等线体是从日本引进的黑体的结构与宋体没有什么差别只是其笔画粗细一致健实粗壮主要用于文档的标题和重点及标语广告等方面

bull 楷体mdashmdash楷体源于楷书楷体的笔画圆浑笔调灵活结构端正美观但不宜于木板雕刻所以直到清末西洋的石板印刷术传入后才开始广泛用于印刷现代的楷体创造于 20世纪的二三十年代主要用于文档的正文(多用于中小学教材)也可用于工艺美术等方面

3字库bull 字库为一种文字的某一字体的所有字符的集合一般存放在一个磁盘文件中

bull 由于象形文字中单字的数量大(成千上万)而拼音文字中字母的数量小(不到一百个)所以字库的大小有很大的差别

bull 为了使文档界面丰富多彩常见的字处理软件都支持多种字体带有众多字库

4点阵字型的国家标准bull 我国已经公布了若干字体的点阵字型之国家标准

ndash GB 50071-19852001 信息技术 汉字编码字符集(基本集) 24 点阵字型

ndash GB 50072-19852001 信息技术 汉字编码字符集(辅助集) 24 点阵字型

ndash GB 5199-19862001 信息技术 汉字编码字符集(基本集) 16 点阵字型 宋体

ndash GB 6345-19862001 信息技术 汉字编码字符集(基本集) 32 点阵字型 宋体

ndash GB 12041-2001 信息技术 汉字编码字符集(基本集) 48点阵字型 宋体

ndash GB 17698-1999 信息技术 通用多八位编码字符集( I 区) 汉字 16 点阵字型

232 语音合成bull 文字的声音输出主要使用的是语音合成的技术bull 语音合成功能是ldquo文rarr语rdquo转换bull 文语转换 TTS (Text-To-Speech) 是将文本形式的信息转换成自然语音的一种技术其最终目标是使计算机输出清晰而又自然的声音

bull 英语的语音合成在上世纪 80年代就早已成熟而中文 汉语的合成现在也趋于成熟并有了广泛的应用(如汽车导航仪智能手机等)

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 32: 第一篇  媒体

GB 2311-80 的八位编码结构图列

行 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0 SP 100

1

helliphellip

14

15

C0

32个

控制符

GL

94或 96个

图形字符

DEL

C1

32个

控制符

GR

94或 96个

图形字符

1515

2 GB 2312

bull GB 2312-80《信息交换用汉字编码字符集 middot基本集》是我国制定的一个使用最广泛的汉字编码的强制性国家标准由原第四机械工业部的华北计算机研究所(后改名为电子工业部第十五研究所)起草1980年批准 1981年 5月 1日起实施

bull GB 2312-80 是在已有的国家标准 GB 1988-80(对应于 ISO 646 )和 GB 2311-80 (对应于 ISO 2022 )的基础上制定的采用与 ISO 2022兼容的GB 2311 之 7位到八位的代码扩充办法用双字节编码表示汉字与 ASCII兼容

收录的字符bull GB 2312 对应的是汉字的基本集共收汉字 6 763 个

可达到 9999 的使用频率因此除了极少数生僻的人名地名和古文外 GB 2312 中的汉字已经能基本满足平时的使用了

bull 除了汉字外 GB 2312 还收录了 682 个非汉字图形符号包括 202 个一般符号(含间隔符标点运算符和制表符) 60 个序号符 22 个数字符 52 个英文字母 169 个日文假名 48 个希腊字母 66 个俄文字母 26 个汉语拼音符号和 37 个汉语注音字母

bull 所以在 GB 2312-80 标准中共收录了( 6 763 汉字 + 682 非汉字图符 = ) 7 445 图形字符

两级汉字bull GB 2312 将其收录的六千多个汉字分成两个级别bull 一级汉字有 3 755 个都为使用频率高的常用汉

字为便于检索像字典那样将这些汉字按拼音字母顺序排列(同音字再按笔顺的横竖撇捺点折序排列)

bull 二级汉字有 3 008 个大部分较生僻不易掌握读音所以按部首顺序排列(同部首的字按笔画数排列同笔画数的字再按笔顺排列)

编码方案bull GB 2312 对所有图形字符(包括汉字和非汉字图符)都采用两个字节表示每个字节的低七位用于编码最高位全为 1 这样可以兼容 ASCII 编码(字节的最高位全为 0 )

bull 虽然在一个字节中最高位为 1 的符号位置有 128 个但从前面 GB 2311 的分析可知为了与 ASCII 的代码结构兼容保留了( 32 + 2 = ) 34 个控制符位置最后只有( 128 ndash 34 = ) 94 个符号位可供图形字符编码使用

bull 图形字符在代码表中的位置用区位码表示将码表分成94 个区对应于编码的第一个字节取值 0x21~0x7E 每个区又分成 94 个位对应于编码的第二个字节取值 0x21~0x7E (参见表 2-6 )

bull 例如ldquo中山大学rdquo的编码为中 (0xD6D0) 山 (0xC9BD) 大 (0xB4F3) 学 (0xD1A7)

GB 2312-80 字符集结构 20 21 22 helliphellip 7D 7E 7F

位号

区号

1 2 helliphellip 93 94

20

21~29 1~9 非汉字图符(682个)

2A~2F 10~15 空白区

30~57 16~55 一级汉字(3 755个)

58~77 56~87 二级汉字(3 008个)

78~7E 88~94 空白区

7F

第 1 区的部分非汉字图符

1区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 middot ˉ ˇ uml 々 mdash ~ hellip lsquo rsquo ldquo

17~32 rdquo 〔 〕 〈 〉 《 》 「 」 『 』 〖 〗 【 】 plusmn

33~48 times divide ∶ and or sum prod cup cap isin ∷ radic perp ∥ ang

49~64 ⊙ int ∮ equiv ≌ asymp ∽ prop ne ltu gtu le ge infin ∵ there4

65~80 deg prime Prime $ curren ¢ £ permil sect

81~94 rarr larr uarr darr

第 16 区的部分一级汉字

16区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 啊 阿 埃 挨 哎 唉 哀 皑 癌 蔼 矮 艾 碍 爱 隘 鞍

17~32 氨 安 俺 按 暗 岸 胺 案 肮 昂 盎 凹 敖 熬 翱 袄

33~48 傲 奥 懊 澳 芭 捌 扒 叭 吧 笆 八 疤 巴 拔 跋 靶

49~64 把 耙 坝 霸 罢 爸 白 柏 百 摆 佰 败 拜 稗 斑 班

65~80 搬 扳 般 颁 板 版 扮 拌 伴 瓣 半 办 绊 邦 帮 梆

81~94 榜 膀 绑 棒 磅 蚌 镑 傍 谤 苞 胞 包 褒 剥

第 56 区的部分二级汉字

56区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 亍 丌 兀 丐 廿 卅 丕 亘 丞 鬲 孬 噩 丨 禺 丿 匕

17~32 乇 夭 爻 卮 氐 囟 胤 馗 毓 睾 鼗 丶 亟 鼐 乜 乩

33~48 亓 芈 孛 啬 嘏 仄 厍 厝 厣 厥 厮 靥 赝 匚 叵 匦

49~64 匮 匾 赜 卦 卣 刂 刈 刎 刭 刳 刿 剀 剌 剞 剡 剜

65~80 蒯 剽 劂 劁 劐 劓 冂 罔 亻 仃 仉 仂 仨 仡 仫 仞

81~94 伛 仳 伢 佤 仵 伥 伧 伉 伫 佞 佧 攸 佚 佝

3汉字编码的辅助集bull 除了GB 2312基本集的 6 763 个简体汉字外国家标

准还给出了汉字编码字符集的多个辅助集bull 第二 四辅助集分别增加了 7 237 7 039 个简体汉字bull 第一和三 五辅助集则分别是与基本集和第二 四辅助集所对应的繁体汉字字符集的国家标准

bull 基本集加上辅助集共有 21 039 个简体汉字和 21 142个繁体汉字

bull 繁体汉字之所以多一些是因为在第一辅助集中有时几个繁体字对应一个简体字因此比基本集多出 103 个汉字

bull 基本集和辅助集的代码页之间靠其编码字节的最高位来区分

编码字符的分页标志

双字节汉字编码的页面结构第二字节 列号

行号 0 middot middot middot 32 33 34 helliphellip 125 126 127 128middot middot 160 161 162 helliphellip 254 255 0 middot middot 32

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

33 34 middot middot middot 126

1 2 middot middot middot 94

第四五辅助集 (7 039个汉字)

127

(兼容ASCII)

128 middot middot 160

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

161 162 middot middot middot 254

1 2 middot middot middot 94

第二三辅助集 (7 237个汉字)

1 2 middot middot middot 94

基本集第一辅助集 (6 763 6 866个汉字) (682个非汉字图符)

第一字节

255

4 Big5

bull 除了中国大陆使用的简体汉字外在台湾香港澳门和海外华侨社区使用的是传统的繁体汉字

bull 简体汉字使用 GB (国标)系列编码标准bull 繁体汉字一般使用的是 Big5内码(大五码)即台湾的ldquo资讯工业策进会rdquo发布的《标准交换码 (Ⅲ码 )》收录汉字 13 053 个

bull Big5内码是 1984年由台湾财团法人资讯工业策进会与宏碁 (Acer) 神通 (MiTAC) 佳佳零壹 (Zero One) 大众 (FIC) 等五大软件公司联合推出故称为大五码

BIG5 的代码空间低位字节

00 hellip 3F 40 hellip 7E 7F hellip A0 A1 hellip FE FF

高位字节

00middot

80

81middot

A0用户定义区 用户定义区

A1A2A3

非汉字图符 非汉字图符

A4middot

C6常用汉字 常用汉字

C7C8

用户定义区 用户定义区

C9middot

F9次常用汉字 次常用汉字

FAmiddot

FE用户定义区 用户定义区

FF

5少数民族文字编码bull 中国共有 56 个民族除了汉回满族一般使用汉语外其他少数民族大多有自己的民族语言

bull 我国各民族使用的 50 多种文字可以分为字母式结构文字和非字母式结构文字两大类ndash 字母式结构的有拉丁文斯拉夫文蒙古文维吾尔文哈萨克文藏文和朝鲜文等字母式

ndash 非字母式结构的有汉字象形文字图画文字和音节文字等bull 各民族文字的书写方向也有不同

ndash 壮文藏文朝鲜文彝文等的字从左到右行从上到下ndash 维吾尔文哈萨克文和柯尔克孜文等的字从右到左行从上

到下ndash 蒙古文和满文的字从上到下行从左到右ndash 汉字的书写方向有两种

bull 大陆的简体汉字的字从左到右行从上到下bull 港台与古旧书的繁体汉字的字从上到下行从右到左

国家标准bull 下面按发布时间列出若干已经公布的我国少数民族文字

编码集的国家标准(这些字符集一般分成两类对字母式结构文字采用八位编码对非字母式结构文字采用双字节编码)ndash GB 8045-87《信息处理交换用蒙古文七位和八位编码图形字

符集》收 82 个蒙古文字母和 12 个其他符号共 94 个字符ndash GB 12050-89《信息处理交换用维吾尔文编码图形字符集》收 32 个维吾尔文字母一个维吾尔文复合字符和 37 个其他符号共 70 个字符

ndash GB 12052-89《信息交换用朝鲜文编码字符集》收 5297 个朝鲜文字和 682 个其他符号(与 GB 2132同)共 5 979 个字符

ndash GB 13134-91《信息交换用彝文编码字符集》收 1165 个彝文字符和 688 个其他符号共 1853 个字符

ndash GB 16959-1997《信息技术 信息交换用藏文编码字符集 基本集》收 41 个藏文字母 36 个藏文主字 13 个元音字符12 个语音字符 10 个藏文数字 10 个半值符一个控制用连接符和 46 个其他藏文图形符号共 169 个字符

6 GB 13000bull GB 13000 是与 ISOIEC 10646 等价的国际通用编码字符集标准收汉字 2万多个但是与 GB 2312 和 GBK 不兼容

bull 1993年 5月 ISO 与 IEC 联合推出了可用于世界各种文字的通用编码字符集的国际标准的第 1部分ndash ISOIEC 10646-11993 Information technology -- Universal Multiple-Octe

t Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane (信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

ndash 该标准收字符 96万个几乎涵盖世界上的所有文字其中包含汉字 21 003 个

bull 1993年底我国推出了等同于国际标准 ISOIEC 1064611993 的强制性国家标准 ndash GB 130001-93《信息技术 通用多八位编码字符集( UCS ) 第一部分

体系结构与基本多文种平面》ndash 该标准于 1993年 12月 24日被国家技术监督局批准 1994年 8月 1日起实施

GB 13000 的主要特点

bull 世界各语言文种字符统一编码避免冲突便于国际交流

bull 编码空间宽阔连续每个图形字符的编码唯一(一字一码)不再存在兼容性问题

bull 按文种而不是按语言编码避免重复和浪费(如中日韩汉字的统一编码 CJK )

bull 与 GB 2312 和 GBK 不兼容

体系结构bull UCS 的体系结构是基于所谓ldquo多八位rdquo的而ldquo八位rdquo就是一个字节ldquo多八位rdquo就是多个字节

bull UCS采用 4 个字节来表征组面行位的四维空间bull 整个 UCS空间包含 128 个组( 0x00组 ~0x7F组)每组有 256 个平面( 0x00 平面 ~0xFF 平面)每个平面有 256 行每行又由 256 个字位构成

bull UCS共有( 128 times 256 = ) 32 768 个平面每个平面有( 256 times 256 = ) 65 536 个字位每个字位对应于一个字符的编码

bull 目前的编码只限于 00组已经定义的平面有 00组的00 平面mdashmdash称之为基本多文种平面 BMP ( Basic Multilingual Plane ) 及若干辅助平面

UCS 的全部编码空间

每个平面256times256 个

字位

00组 00 平面

00组 FF 平面

01组 00 平面

7F组 00 平面00

01组

7F组

UCS 的 00组

BMPbull BMP = Basic Multilingual Plane 基本多文种平面bull BMP 用作双八位编码字符集称之为 UCS-2 它被

分成四个区ndash A- 区(字位 0x0000~0x4DFF 有 19 903 个字位)用于

字母文字音节文字以及各种符号ndash I- 区(字位 0x4E00~0x9FFF 共 20 992 个字位)用于中日韩统一汉字( CJK )

ndash O- 区(字位 0xA000~0xDFFF 共 16 384 个字位)保留未来标准化用

ndash R- 区(字位 0xE000~0xFFFD 共 8 190 个字位)为 BMP 的限制使用区包括专用字符变形显现形式及兼容字符

BMP总貌

A-区

00~33 拼音文字(见下页)

34~3D 朝鲜文

3E~44 朝鲜文补充 -A

45~4D 朝鲜文补充 -B

I-区 4E~9F CJK统一汉字O-区 A0~DF

R-区

E0~F8 专用区

F9~FA CJK兼容汉字FB 拼音文字变形显现形式

FC~FD 阿拉伯文变形显现形式 -A

FE半形组合用标志

CJK兼容形式

小写变体

阿拉伯文变形显现形式 -B

FF 半形及全形字符 特殊字符

BMP 的0x00~0x33

行字母文字区

00 基本拉丁文 拉丁文-1补充

01 拉丁文扩充-A 拉丁文扩充-B

02 拉丁文扩充-B 国际音标扩充 进格修饰字符

03 组合用发音符 基本希腊文 希腊符号及哥普特文

04 西里尔文

05 美亚尼亚文 希伯来文(基本和扩充)

06 基本阿拉伯文 阿拉伯文扩充

07

08

09 梵文 孟加拉文

0A 锡克教文 古吉拉特文

0B 奥利雅文 泰米尔文

0C 泰卢固文 卡纳达文

0D 德拉维族文

0E 泰文 老挝文

0F

10 格鲁吉亚文

11 朝鲜文字母

12~1D

1E 拉丁文扩充增补

1F 希腊文扩充

20 广义标点 上下标 货币符号 符号组合用区分标志

21 类似字母的符号 数字形式 箭头

22 数学运算符

23 零杂技术用符号

24 控制图符 光学识别符 带括号的字母数字

25 制表符 方块元素 几何图形符

26 零杂符号

27 示意符等

28~2F

30 CJK符号和标点 平假名 片假名

31 注音 朝鲜文兼容字母 CJK零杂字符

32 带括号的CJK字母及月份

33 CJK兼容字符

留作将来标准化用

非图形字符

表示形式bull GB 13000提供了字符编码表示的两种替代使用的形式

ndash 双八位 BMP 形式( UCS-2 )mdashmdash允许使用 BMP 中的字符且每个字符用两个字节表示

ndash 肆八位正则形式( UCS-4 )mdashmdash允许使用 GB 13000 中的全部字符且每个字符用四个字节表示

bull 除了 UCS-24外还有另外两种变形的表示形式ndash UTF-8 (单字节 ~ 多字节)ndash UTF-16 (双字节和 4 字节与 UCS-2 等价)ndash 目前在工业上的实现均为 UTF-16 ( UCS-2 )和 UTF-8ndash UTF = Unicode UCS Transformation Format 统一码 UC

S转换格式bull 关于统一码我们会在下一小节详细介绍

7 GBK 与 GB 18030bull 由于 GB 13000 标准与 GB 2312 标准的字符编码不兼容作为过渡在国家信息技术标准化委员会的主持下制定了与 GB 2312兼容的《汉字内码扩展规范( GBK )》( K 为扩展的ldquo扩rdquo字的拼音首字母)并于 1995年 12月 15日由原国家技术监督局标准司联合原电子工业部科技与质量监督司作为指导性技术规范发布实施

bull 2000年 GBK又被国家标准 GB 18030-2000《信息技术 信息交换用汉字编码字符集 基本集的扩充》所代替该标准收汉字 2万 7千个

bull 与 GB 2312 一样 GB 18030 也为中国的强制性国家标准微软公司的 Windows XPVista78 中文版与苹果公司的 Mac OS X 和 iOS 谷歌公司的 Android (安卓)等操作系统已经全面支持 GBK

GB 18030 的码位范围分布

字节数 码位空间 码位数目

单字节 0x00~0x7F 128

双字节第 1字节 第 2字节

23 9400x81~0xFE

0x40~0x7E 0x80~0xFE

四字节第 1字节 第 2字节 第 3字节 第 4字节

1 587 6000x81~0xFE 0x30~0x39 0x81~0xFE 0x30~0x39

GB 18030的

总体结构图

收录字符bull 单字节部分mdashmdash收录了GBT 11383 的 0x00~0x7F 全部 128 个字符(似 ASCI

I )bull 双字节部分mdashmdash收录内容如下 (21 003 个汉字和 884 个符号共 21 887 个字符 )

ndash GB 130001-93 的全部 CJK 统一汉字字符 20 902 个( GB 2312 的编码汉字在双字节 2 区其他 CJK 统一汉字在双字节 34 区)

ndash GB 130001-93 的 CJK兼容区挑选出来的 21 个汉字ldquo郎凉秊helliphellip﨨﨩rdquo( 0xFD9C~0xFDA0 和 0xFE40~0xFE4F )

ndash GB 130001-93 中收录而 GB 2312未收录的台湾地区使用的图形字符 139 个ldquoˊˋ˙helliphelliprdquo( 0xA840~0xA895 和 0xA940~0XA988 )

ndash GB 130001-93收录的其他字符 31 ( 13)个(在双字节 5 区)ndash GB 2312-80 中的非汉字字符 682 个( 0xA1A1~0xA9EF )ndash GB 12345-90 的竖排标点符号 19 ( 29)个ldquo︵︶︹helliphellip︳︴rdquo( 0xA6D9~0xA6

F5 )ndash GB 2312-80未收录的 10 个小写罗马数字ldquoⅰⅱⅲhelliphellipⅸⅹrdquo( 0xA2A1~ 0xA2A

A )ndash GB 2312-80未收录的带音调的汉语拼音字母 5 ( 4)个ldquo ńňǹrdquo 以及 ɑ 和 ɡ ( 0

xA8BB~0xA8C0 )ndash 汉字数字零ldquo〇rdquo (0xA996) 和欧元符ldquoeurordquo (0xA2E3)ndash 表意文字描述符 13 个ldquohelliphelliprdquo( 0xA989~0xA995 )ndash 对 GB 130001-93增补的汉字和部首 构件 80 个ldquohelliphellip䶮rdquo( 0xFE50~ 0x

FEA0 )bull 四字节部分mdashmdash收录了上述双字节字符之外的包括 CJK 统一汉字扩充 A 在内

的 GB 130001-93 中的全部字符

GB 18030双字节部分的码位安排

类别 区名 码位范围 码位数 字符数 内容

符号区双字节 1区 A1A1~A9FE 846 718

GB 2312非汉字字符等

双字节 5区 A840~A9A0 192 166 台湾图符等

汉字区双字节 2区 B0A1~F7FE 6768 6763 GB 2312汉字双字节 3区 8140~A0FE 6080 6080 CJK统一汉字双字节 4区 AA40~FEA0 8160 8160 CJK统一汉字等

用户自定义区双字节用户区 1 AAA1~AFFE 564

用户自定义字符双字节用户区 2 F8A1~FEFE 658

双字节用户区 3 A140~A7A0 672

GB 18030双字节部分的编码空间结构图 尾字节

0x40larr――rarr0x7E 0x80larr――rarr0xA0 0xA1larr――――――――――――rarr0xFE

0x81 uarr darr

0xA0

0xA1 uarr darr

0xA7

0xA8 0xA9

首字节

0xAA uarr | | | | | | | | | | darr

0xFE

双字节 3区

汉字区6 080个码位

双字节用户区 3

用户自定义区672个码位

双字节 5区 图形符号区192个码位

双字节 4区

汉字区8 160个码位

双字节 1区

图形符号区564个码位

双字节 2区

汉字区6 768个码位

双字节用户区 1 用户自定义区564个码位

双字节用户区 2 用户自定义区658个码位

223 国际通用字符编码

bull Unicode (统一码)是由多语言软件制造商组成的统一码协会( httpwwwUnicodeorg)所制定一种国际字符的编码标准

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull 本节主要介绍这两种关系密切的主流国际字符编码标准的来历编码方案各自特点与相互关系

1 Unicode 统一码bull 发展历史

ndash 1987年施乐( Xerox )公司的 Joe Becker 与 Lee Collins 和苹果( Apple )公司的 Mark Davis 等人开始讨论统一编码 1987年 12月 Joe Becker造词 Unicode (统一码)含义为ldquo unique universal and uniform character encodingrdquo (单一通用统一的字符编码) 1989年 2月开始定期召开统一码会议 1989年 9月公布 Unicode草案

ndash 1991年 1月 3 日由 Xerox Apple Sun IBM Aldis Microsoft 等公司出资在美国加州成立了统一码协会( Unicode Consortium )并由协会设立非盈利性的统一码公司( Unicode Inc )后来 HP Adobe Borland Digital Lotus Novell 等公司也纷纷加入 1991年 1月成立统一码技术委员会 UTC 并制定了其规程

ndash 1991年 2月在 Ed Hart 的推动下进行了ldquo统一码对 10464 国际标准草案 1rdquo 的对话Unicode 与 ISOIEC 10646开始走向融合

ndash 1991年 8月发布 Unicode 标准 10版的第 1卷(体系结构非表意字符) 1992年6月发表 Unicode 10版的第 2卷(表意字符) 1993年 6月发布 Unicode 11版与 1993年 5月公布的 ISOIEC 10646-11993 实现了合并

ndash 1996年 7月发布 Unicode 20版ndash 1999年 9月发布 Unicode 30版ndash 2003年 4月发布 Unicode 40版(对应于 ISOIEC 106462003 ) 2004年 3月 31日发布 Unicode 401版 2005年 3月 31日发布 Unicode 410版

ndash 2006年 7月 14日发布 Unicode 50版 2008年 4月 4日发布 Unicode 51版 2009年 12月 22日发布 Unicode 52版

ndash 2010年 10月发布 Unicode 60版 2012年 1月发布 Unicode 61版(对应于 ISOIEC 106462012 ) 2012年 9月推出 Unicode 62版 2013年 9月推出 Unicode 63版

ndash 2014年 6月 16日发布 Unicode 70版 ndash 2015年 6月 17日发布 Unicode 80版

字符集bull Unicode 字符集的空间分成双字节的基本多语言平面 (Basic Multilingual Pla

ne BMP) 和 4 字节的辅助多语言平面 (Supplementary Multilingual Plane SMP) 两种

bull BMPndash Unicode 的基本平面或基本多语言平面 BMP 对应于 ISOIEC 10646-1 的第 00组的 00 平面( BMP )即 Unicode 与 ISOIEC 10646 的 BMP 中的字符编码完全一致

bull SMPndash 鉴于 Unicode 原有的 16位元空间不足以应用从 Unicode 31版本开始设立了 16 个辅助平面使 Unicode 的可使用空间由六万多字增至约一百万字

ndash 原有的 Unicode双字节空间称为基本平面或基本多语言平面 BMP 辅助多语言平面 SMP 字符要用 4 字节来储存

ndash 第一辅助平面摆放拼音文字(主要为现时已不再使用的文字)及符号范围在 U+10000 - U+1FFFD

ndash 第二辅助平面又称为表意文字补充平面 (Supplementary Ideographic Plane 简称 SIP) 现时摆放ldquo中日韩统汉字扩展 B 区rdquo共 43253 个汉字范围在 U+20000 - U+2FFFD

ndash 第三至十三辅助平面尚未使用ndash 第十四辅助平面又称为特殊用途补充平面 (Supplementary Special-purpose Pl

ane 简称 SSP) 摆放 Language tags 和 Variation Selectors 它们都是控制字符范围在 U+E0000 - U+E01FF

ndash 第十五至十六辅助平面都是私人使用区它们的范围是 U+F0000 - U+FFFFD 及 U+100000 - U+1000FD

bull Unicode 字符集的具体编码方式参加第 4小节ldquo 4 UTFrdquo

2 ISOIEC 10646

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull ISOIEC 10646 标准由 ISO 与 IEC 联合成立的 ISOIEC JTC1SC2WG2 制定ndash JTC 1 ( Joint Technical Committee 1 on Information

technology ISOIEC信息技术联合技术委员会 1 )负责信息技术方面标准的制定工作

ndash SC 2 ( SubCommittee 2 on Coded character sets 编码字符集分会 2 )下的 WG 2 ( Working Group 2 on Universal coded character set 通用编码字符集工作组 2 )负责制定国际通用字符编码标准即后来公布的 ISOIEC 10646

发展历史bull 1984年 ISO 的一些会员国发起制定新的国际字符编码标准同年 4月 ISO

与 IEC 联合成立 ISOIEC JTC1SC2WG2 1987年 3月制定出编码架构1992年 6月投票通过第二版国际标准草案

bull 1993年 5月推出 10646 标准时将内容分成两个部分标准首先发布的是其中的第 1 个部分(体系结构与基本多文种平面)的第 1版( Edition 1 ) ISOIEC 10646-11993 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane(信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

bull 2000年 3月推出 10646 标准第一个部分的第 2版( Edition 2 ) ISOIEC 10646-12000 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane

bull 2001年 10月推出 10646 标准第 2版的第二个部分(辅助平面)的第 1版( Edition 1 ) ISOIEC 10646-22001 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 2 Supplementary Planes

bull 2003年 10月推出的 10646新标准(第 1版 Edition 1 )将老标准中的两个部分标准合并成了一个单一的标准 ISOIEC 106462003 Information technology -- Universal Multiple- Octet Coded Character Set (UCS) 后来又于 2010年 2012年和 2014年分别推出了 ISOIEC 106462010 (第 2版)ISOIEC 106462012 (第 3版)和 ISOIEC 106462014 (第 4版)

UCS 通用字符集bull 通用字符集( Universal Character Set UCS )是

ISOIEC 10646 标准所定义的字符编码方式采用 4字节编码又称为 Universal Multiple-Octet Coded Character Set (通用多八位编码字符集)

bull 通用字符集是所有包括了其他字符集它保证了与其他字符集的双向兼容即如果你将任何文本字符串翻译到 UCS 格式然后再翻译回原编码你不会丢失任何信息

bull UCS 包含了已知语言的所有字符除了拉丁语希腊语斯拉夫语希伯来语阿拉伯语亚美尼亚语格鲁吉亚语还包括中文日文韩文这样的象形文字 UCS 还包括大量的图形印刷数学科学符号

名字与组合字符bull UCS 不仅给每个字符分配一个代码而且赋予了

一个正式的名字表示一个 UCS 或 Unicode值的十六进制数通常在前面加上ldquo U+rdquo 例如ldquo U+0041rdquo代表字符ldquo Ardquo

bull UCS里有些编码点分配给了组合字符组合字符机制允许在任何字符后加上重音符或其他指示标记 这在科学符号中特别有用 比如数学方程式和国际音标字母 可能会需要在一个基本字符后组合上一个或多个指示标记

实现级别bull 并不是所有的系统都需要支持像组合字符这样的的先进

机制因此 ISO 10646 指定了如下三种实现级别ndash 级别 1不支持组合字符和韩语 Hangul Jamo 字符 ( 一种特

别的 更加复杂的韩国文的编码 使用两个或三个子字符来编码一个韩文音节 )

ndash 级别 2类似于级别 1 但在某些文字中允许一列固定的组合字符 (例如 希伯来文 阿拉伯文 Devangari 孟加拉语 果鲁穆奇语 Gujarati Oriya 泰米尔语 Telugo 印 埃纳德语 Malayalam 泰国语和老挝语 ) 因为如果没有最起码的几个组合字符 UCS就不能完整地表达这些语言

ndash 级别 3支持所有的 UCS 字符如可以在任意一个字符上加上一个箭头或 和一个 tilde(颚化符号即字母上面的~ )

编码方式bull UCS 有如下两种编码方式

ndash UCS-2与 Unicode 的 2 字节编码基本一样ndash UCS-4 4 字节编码目前是在 UCS-2 前加

上 2 个全零的字节bull UCS 还有 UTF 编码方式参见下面第 4小节ldquo 4 UTFrdquo

3 Unicode 与 ISOIEC 10646bull 关系

ndash 历史上存在两个独立的尝试创立单一字符集的组织即国际标准化组织( ISO )和多语言软件制造商组成的统一码协会组织( Unicodeorg )前者开发的 ISO 10646项目后者开发的 Unicode项目因此最初制定了不同的标准

ndash 1991年前后两个项目的参与者都认识到世界不需要两个不兼容的字符集于是它们开始合并双方的工作成果并为创立一个单一编码表而协同工作

ndash 从 Unicode20开始 Unicode采用了与 ISO 10646-1相同的字库和字码 ISO 也承诺 ISO10646 将不会替超出 U+10FFFF 的 UCS-4 编码赋值以使得两者保持一致

ndash 两个项目仍都存在并独立地公布各自的标准但 Unicode协会和 ISOIEC JTC1SC2 都同意保持两者标准的码表兼容并紧密地共同调整任何未来的扩展

异同bull Unicode协会公布的 Unicode 标准包含了 ISO 10646-1 实现级别

3 的基本多文种平面在两个标准里所有的字符都在相同的位置并且有相同的名字

bull ISO 10646 标准就像 ISO 8859 标准一样只不过是一个简单的字符集表它定义了一些编码的别名指定了一些与标准有关的术语并包括了规范说明指定了怎样使用 UCS连接其他 ISO 标准的实现等

bull Unicode 标准额外定义了许多与字符有关的语义符号学并详细说明了绘制某些语言(如阿拉伯语)表达形式的算法处理双向文字(比如拉丁文和希伯来文的混合文字)的算法排序与字符串比较所需的算法等等

bull 考虑到 Unicode 标准有一个易记的名字既便宜又包括更多的辅助信息因而它使用得更广泛然而

bull 一般认为用于打印 ISO 10646-1 标准的字体在某些方面的质量要高于用于打印 Unicode 20 的专业字体设计者总是被建议说要两个标准都实现但一些提供的样例字形有显著的区别 ISO 10646-1 标准同样使用四种不同的风格变体来显示表意文字如中文日文和韩文 (CJK) 而 Unicode 20 的表里只有中文的变体

4 UTFbull Unicode 和 UCS 都是一个字符集可以看作为内码bull UTF ( UnicodeUCS Transformation Format 统一码

通用字符集转换格式)是一种编码方式它的出现是因为 Unicode 和 UCS 不适宜在某些场合直接传输和处理

bull UCS 和 Unicode 只是分配整数给字符的编码表现在存在好几种将一串字符表示为一串字节的方法(如高或低位字节在前)

bull 最显而易见的两种方法是将 UCS 和 Unicode 文本存储为 2 个 或 4 个字节序列的串这两种方法的正式名称分别为 UCS-2 和 UCS-4

bull 常用的 UTF具体编码方式有 UTF-8 UTF-16 和 UTF-32

UTF-8

bull UTF-8 是 UTF 的一种具体编码方式在 ISO 10646-1 的附录 R 和 IETF 的 RFC 2279 里定义

bull 由于要使文档中的文字与 ASCII兼容故 UTF-8 选择了使用可变长度字节来储存 Unicode 和 UCS 例如ndash ASCII 字母继续使用 1 字节储存ndash 重音文字希腊字母或西里尔字母等使用 2 字节来储存ndash 常用的汉字就要使用 3 字节ndash 辅助平面字符则使用 4 字节ndash 即 ASCII 不作变换其他字符做变长编码每个字符 1~4 字节

bull UTF-8 通常作为外码bull 在 UTF-8 文件的开首很多时都放置一个 U+FEFF 字符

(UTF-8 以 EF BB BF 代表 ) 以显示这个文字档案是以UTF-8 编码

UTF-8 的优点bull 与 CPU 字节顺序无关可以在不同平台之间交流

bull 容错能力高任何一个字节损坏后最多只会导致一个编码码位损失不会链锁错误 ( 如 GB 码错一个字节就会整行乱码 )

UTF-8 的缺点bull UTF-8 使用可变长度字节储存使计算机程序设计变得复杂 (故此在计算机程序或操作系统内部多采用 UCS-2 编码 )

bull 在旧式的中文日文及朝鲜文编码之中每字符都使用 2 字节储存而 UTF-8 须使用 3 字节 (采用 UTF-16 编码则可只使用 2字节储存 )

bull 泰语以往使用的 ISO 8859-11 每字符只使用 1 字节储存而 UTF-8 须使用 3 字节

UTF-8储存的多字节串字符bull U-00000000 - U-0000007F 0xxxxxxx bull U-00000080 - U-000007FF 110xxxxx 10xxxxxx

bull U-00000800 - U-0000FFFF 1110xxxx 10xxxxxx

10xxxxxx bull U-00010000 - U-001FFFFF 11110xxx 10xxxxx

x 10xxxxxx 10xxxxxx bull 在多字节串中第一个字节的开头ldquo 1rdquo 的数目就

是整个串中字节的数目bull 每个使用 UTF-8储存的字符除了第一个字节外其余字节的头两个位元都是以 10 开始使文字处理器能够较快地找出每个字符的开始位置

UTF-16bull UTF-16 是 UTF 的另一种具体编码方式在 ISO 1064

6-1 的附录 Q 和 IETF 的 RFC 2781 里定义bull UTF-16 是变长码( 2 或 4 字节)大致相当于 20位编码值在 0 到 0x10FFFF 之间基本上就是 Unicode 编码的实现 UTF-16 与 CPU 字序有关但因为最省空间常作为网络传输的外码 UTF-16 是 Unicode 的完美编码

bull lt0x10000 的直接用其对应的 16位整数编码位于 0x10000 ~ 0x10FFFF 之间的用 0xD800~0xDBFF 的 16位整数后跟 0xDC00~0xDFFF 的 16位整数的 4 字节编码 gt 0x10FFFF 的不能用 UTF-16 表示

bull 在 Unicode 的 BMP 中定义的字符(无论是拉丁字母汉字或其他文字或符号)一律使用 2 字节存储而在辅助平面定义的字符则以两个 2 字节的值来存储

UTF-16 的特点bull UTF-16比起 UTF-8 的好处在于大部分字符都以固定长

度的 2 字节存储但 UTF-16却无法相容于 ASCII 编码bull UTF-16 有两种编码模式即大尾序( big Endian 高位字节在前)和小尾序( little Endian 高位字节在后)储存形式(一般來說以 Macintosh 制作和存储的文字使用大尾序格式以 Microsoft 或 Linux 制作和存储的文字使用小尾序格式)

bull 为了弄区分 UTF-16 文件的大小尾序在 UTF-16 文件的开头都会放置一个 U+FEFF 字符作为字节顺序标记 (UTF-16LE 以 FF FE代表 UTF-16BE 以 FE FF代表 ) 以显示该文档是以 UTF-16 编码的

UTF-32

bull UTF-32 仅使用了 Unicode范围 (0 到 0x10FFFF) 的 32位编码相当于 UCS-4 的子集

bull 由于 Unicode 和 ISOIEC 10646 的编码和结构与前面讲过的 GB 13000 类似或等价这里就不再做详细的介绍

5支持bull 现在 UnicodeUCS 已经获得了十分广泛的支

持ndash网络与浏览器(如 HTML 4050 XML 与 IE

Safari Netscape Firefox Chrome Opera Edge 等)

ndash操作系统(如 Windows NT2000XPVista7810 Mac OS X iOS Android和 Linux )

ndash 编程语言新版本(如 CC++JavaObjective-CC Swift 等)

Unicode 代码的浏览器显示代码 字符标准名称 (英语 )

浏览器的显示

amp65 大写拉丁字母 A A

amp223 小写拉丁字母 Sharp S szlig

amp254 小写拉丁字母 Thorn thorn

amp916 大写希腊字母 Delta Δ

amp1049 大写斯拉夫字母 Short I Й

amp1511 希伯来字母 Qof ק

amp1605 阿拉伯字母 Meem م

amp3671 泰文数字 7 ๗amp4688 埃塞俄比亚音节文字 Qha ቐ

amp12354 日语平假名 A あamp12450 日语片假名 A アamp21494 简体汉字 叶 叶amp33865 繁体汉字 葉 葉amp50685 韩国音节文字 Yeob 엽

23 文字输出bull 文字输出是指将计算机内的字符编码通过计算机的输出设备(如显示器打印机喇叭)展现出所对应字符的图形或声音供人们阅读或聆听

bull 本节主要介绍文字图示输出的字形技术bull 文字声音输出属于语音合成只在本节的末尾作简单的介绍

231 字形技术bull 文字 = 图形bull 不论是象形文字中的单字还是拼音文字

中的字母都是用图形来表示的bull 在计算机里文字的表示 输出(显示和打

印)涉及ndash 字型ndash 字体ndash 字库

1字型bull 字型指构造和生成字形的方法一般可分为

ndash 点阵字 DOS 显卡 ROM 金山 科印特点似位图显示快占空间(字库大)放大后有马赛克效应

bull 显示字母 88 汉字 1616bull 打印 2424 4848 6464

ndash 矢量字单线条用于笔式绘图仪特点字库小算法简单难看

ndash 轮廓字用曲线描绘字的轮廓输出效果好所见即所得(WYSWYG) 可无级放大易实现空心 阴影 填充 变形等各种特效功能轮廓曲线一般采用样条曲线如 TrueType (Apple 1991 Mac OS Microsoft 1992 Windows 31)用的是二次 B 样条 Bezier曲线中文之星 RichWin采用的是三次 B 样条 Bezier曲线

字型种类

2字体bull 字体指字的形状风格如

ndash 汉字的

ndash 英文的

宋体楷体黑体仿宋

行楷隶书新魏幼圆

Times New Roman Arial Narrow Courier New

常用汉字字体bull 宋体mdashmdash宋体来自于北宋时雕版刻书所采用的欧体字(唐朝欧阳询体)宋体字的横顿拉捺挑钩别具特色间架平正疏密适中字体秀丽遒劲但笔画横细竖粗适合于刀刻不宜于手写现在宋体广泛用于印刷常来表现文档的正文

bull 仿宋体mdashmdash 1920年钱塘的丁辅之与丁善之等人将明代以后盛行的方廓形字体加以改造创造出长形和方形的聚珍仿宋后来演化为现在的仿宋体仿宋体比较接近于手写体为宋体和楷体的折中是采用的宋体的结构和楷体的笔法而成现常来表现打印文件以及文档的摘要和注释等

bull 黑体mdashmdash黑体是适应工艺美术的发展而出现的一种等线体是从日本引进的黑体的结构与宋体没有什么差别只是其笔画粗细一致健实粗壮主要用于文档的标题和重点及标语广告等方面

bull 楷体mdashmdash楷体源于楷书楷体的笔画圆浑笔调灵活结构端正美观但不宜于木板雕刻所以直到清末西洋的石板印刷术传入后才开始广泛用于印刷现代的楷体创造于 20世纪的二三十年代主要用于文档的正文(多用于中小学教材)也可用于工艺美术等方面

3字库bull 字库为一种文字的某一字体的所有字符的集合一般存放在一个磁盘文件中

bull 由于象形文字中单字的数量大(成千上万)而拼音文字中字母的数量小(不到一百个)所以字库的大小有很大的差别

bull 为了使文档界面丰富多彩常见的字处理软件都支持多种字体带有众多字库

4点阵字型的国家标准bull 我国已经公布了若干字体的点阵字型之国家标准

ndash GB 50071-19852001 信息技术 汉字编码字符集(基本集) 24 点阵字型

ndash GB 50072-19852001 信息技术 汉字编码字符集(辅助集) 24 点阵字型

ndash GB 5199-19862001 信息技术 汉字编码字符集(基本集) 16 点阵字型 宋体

ndash GB 6345-19862001 信息技术 汉字编码字符集(基本集) 32 点阵字型 宋体

ndash GB 12041-2001 信息技术 汉字编码字符集(基本集) 48点阵字型 宋体

ndash GB 17698-1999 信息技术 通用多八位编码字符集( I 区) 汉字 16 点阵字型

232 语音合成bull 文字的声音输出主要使用的是语音合成的技术bull 语音合成功能是ldquo文rarr语rdquo转换bull 文语转换 TTS (Text-To-Speech) 是将文本形式的信息转换成自然语音的一种技术其最终目标是使计算机输出清晰而又自然的声音

bull 英语的语音合成在上世纪 80年代就早已成熟而中文 汉语的合成现在也趋于成熟并有了广泛的应用(如汽车导航仪智能手机等)

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 33: 第一篇  媒体

2 GB 2312

bull GB 2312-80《信息交换用汉字编码字符集 middot基本集》是我国制定的一个使用最广泛的汉字编码的强制性国家标准由原第四机械工业部的华北计算机研究所(后改名为电子工业部第十五研究所)起草1980年批准 1981年 5月 1日起实施

bull GB 2312-80 是在已有的国家标准 GB 1988-80(对应于 ISO 646 )和 GB 2311-80 (对应于 ISO 2022 )的基础上制定的采用与 ISO 2022兼容的GB 2311 之 7位到八位的代码扩充办法用双字节编码表示汉字与 ASCII兼容

收录的字符bull GB 2312 对应的是汉字的基本集共收汉字 6 763 个

可达到 9999 的使用频率因此除了极少数生僻的人名地名和古文外 GB 2312 中的汉字已经能基本满足平时的使用了

bull 除了汉字外 GB 2312 还收录了 682 个非汉字图形符号包括 202 个一般符号(含间隔符标点运算符和制表符) 60 个序号符 22 个数字符 52 个英文字母 169 个日文假名 48 个希腊字母 66 个俄文字母 26 个汉语拼音符号和 37 个汉语注音字母

bull 所以在 GB 2312-80 标准中共收录了( 6 763 汉字 + 682 非汉字图符 = ) 7 445 图形字符

两级汉字bull GB 2312 将其收录的六千多个汉字分成两个级别bull 一级汉字有 3 755 个都为使用频率高的常用汉

字为便于检索像字典那样将这些汉字按拼音字母顺序排列(同音字再按笔顺的横竖撇捺点折序排列)

bull 二级汉字有 3 008 个大部分较生僻不易掌握读音所以按部首顺序排列(同部首的字按笔画数排列同笔画数的字再按笔顺排列)

编码方案bull GB 2312 对所有图形字符(包括汉字和非汉字图符)都采用两个字节表示每个字节的低七位用于编码最高位全为 1 这样可以兼容 ASCII 编码(字节的最高位全为 0 )

bull 虽然在一个字节中最高位为 1 的符号位置有 128 个但从前面 GB 2311 的分析可知为了与 ASCII 的代码结构兼容保留了( 32 + 2 = ) 34 个控制符位置最后只有( 128 ndash 34 = ) 94 个符号位可供图形字符编码使用

bull 图形字符在代码表中的位置用区位码表示将码表分成94 个区对应于编码的第一个字节取值 0x21~0x7E 每个区又分成 94 个位对应于编码的第二个字节取值 0x21~0x7E (参见表 2-6 )

bull 例如ldquo中山大学rdquo的编码为中 (0xD6D0) 山 (0xC9BD) 大 (0xB4F3) 学 (0xD1A7)

GB 2312-80 字符集结构 20 21 22 helliphellip 7D 7E 7F

位号

区号

1 2 helliphellip 93 94

20

21~29 1~9 非汉字图符(682个)

2A~2F 10~15 空白区

30~57 16~55 一级汉字(3 755个)

58~77 56~87 二级汉字(3 008个)

78~7E 88~94 空白区

7F

第 1 区的部分非汉字图符

1区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 middot ˉ ˇ uml 々 mdash ~ hellip lsquo rsquo ldquo

17~32 rdquo 〔 〕 〈 〉 《 》 「 」 『 』 〖 〗 【 】 plusmn

33~48 times divide ∶ and or sum prod cup cap isin ∷ radic perp ∥ ang

49~64 ⊙ int ∮ equiv ≌ asymp ∽ prop ne ltu gtu le ge infin ∵ there4

65~80 deg prime Prime $ curren ¢ £ permil sect

81~94 rarr larr uarr darr

第 16 区的部分一级汉字

16区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 啊 阿 埃 挨 哎 唉 哀 皑 癌 蔼 矮 艾 碍 爱 隘 鞍

17~32 氨 安 俺 按 暗 岸 胺 案 肮 昂 盎 凹 敖 熬 翱 袄

33~48 傲 奥 懊 澳 芭 捌 扒 叭 吧 笆 八 疤 巴 拔 跋 靶

49~64 把 耙 坝 霸 罢 爸 白 柏 百 摆 佰 败 拜 稗 斑 班

65~80 搬 扳 般 颁 板 版 扮 拌 伴 瓣 半 办 绊 邦 帮 梆

81~94 榜 膀 绑 棒 磅 蚌 镑 傍 谤 苞 胞 包 褒 剥

第 56 区的部分二级汉字

56区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 亍 丌 兀 丐 廿 卅 丕 亘 丞 鬲 孬 噩 丨 禺 丿 匕

17~32 乇 夭 爻 卮 氐 囟 胤 馗 毓 睾 鼗 丶 亟 鼐 乜 乩

33~48 亓 芈 孛 啬 嘏 仄 厍 厝 厣 厥 厮 靥 赝 匚 叵 匦

49~64 匮 匾 赜 卦 卣 刂 刈 刎 刭 刳 刿 剀 剌 剞 剡 剜

65~80 蒯 剽 劂 劁 劐 劓 冂 罔 亻 仃 仉 仂 仨 仡 仫 仞

81~94 伛 仳 伢 佤 仵 伥 伧 伉 伫 佞 佧 攸 佚 佝

3汉字编码的辅助集bull 除了GB 2312基本集的 6 763 个简体汉字外国家标

准还给出了汉字编码字符集的多个辅助集bull 第二 四辅助集分别增加了 7 237 7 039 个简体汉字bull 第一和三 五辅助集则分别是与基本集和第二 四辅助集所对应的繁体汉字字符集的国家标准

bull 基本集加上辅助集共有 21 039 个简体汉字和 21 142个繁体汉字

bull 繁体汉字之所以多一些是因为在第一辅助集中有时几个繁体字对应一个简体字因此比基本集多出 103 个汉字

bull 基本集和辅助集的代码页之间靠其编码字节的最高位来区分

编码字符的分页标志

双字节汉字编码的页面结构第二字节 列号

行号 0 middot middot middot 32 33 34 helliphellip 125 126 127 128middot middot 160 161 162 helliphellip 254 255 0 middot middot 32

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

33 34 middot middot middot 126

1 2 middot middot middot 94

第四五辅助集 (7 039个汉字)

127

(兼容ASCII)

128 middot middot 160

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

161 162 middot middot middot 254

1 2 middot middot middot 94

第二三辅助集 (7 237个汉字)

1 2 middot middot middot 94

基本集第一辅助集 (6 763 6 866个汉字) (682个非汉字图符)

第一字节

255

4 Big5

bull 除了中国大陆使用的简体汉字外在台湾香港澳门和海外华侨社区使用的是传统的繁体汉字

bull 简体汉字使用 GB (国标)系列编码标准bull 繁体汉字一般使用的是 Big5内码(大五码)即台湾的ldquo资讯工业策进会rdquo发布的《标准交换码 (Ⅲ码 )》收录汉字 13 053 个

bull Big5内码是 1984年由台湾财团法人资讯工业策进会与宏碁 (Acer) 神通 (MiTAC) 佳佳零壹 (Zero One) 大众 (FIC) 等五大软件公司联合推出故称为大五码

BIG5 的代码空间低位字节

00 hellip 3F 40 hellip 7E 7F hellip A0 A1 hellip FE FF

高位字节

00middot

80

81middot

A0用户定义区 用户定义区

A1A2A3

非汉字图符 非汉字图符

A4middot

C6常用汉字 常用汉字

C7C8

用户定义区 用户定义区

C9middot

F9次常用汉字 次常用汉字

FAmiddot

FE用户定义区 用户定义区

FF

5少数民族文字编码bull 中国共有 56 个民族除了汉回满族一般使用汉语外其他少数民族大多有自己的民族语言

bull 我国各民族使用的 50 多种文字可以分为字母式结构文字和非字母式结构文字两大类ndash 字母式结构的有拉丁文斯拉夫文蒙古文维吾尔文哈萨克文藏文和朝鲜文等字母式

ndash 非字母式结构的有汉字象形文字图画文字和音节文字等bull 各民族文字的书写方向也有不同

ndash 壮文藏文朝鲜文彝文等的字从左到右行从上到下ndash 维吾尔文哈萨克文和柯尔克孜文等的字从右到左行从上

到下ndash 蒙古文和满文的字从上到下行从左到右ndash 汉字的书写方向有两种

bull 大陆的简体汉字的字从左到右行从上到下bull 港台与古旧书的繁体汉字的字从上到下行从右到左

国家标准bull 下面按发布时间列出若干已经公布的我国少数民族文字

编码集的国家标准(这些字符集一般分成两类对字母式结构文字采用八位编码对非字母式结构文字采用双字节编码)ndash GB 8045-87《信息处理交换用蒙古文七位和八位编码图形字

符集》收 82 个蒙古文字母和 12 个其他符号共 94 个字符ndash GB 12050-89《信息处理交换用维吾尔文编码图形字符集》收 32 个维吾尔文字母一个维吾尔文复合字符和 37 个其他符号共 70 个字符

ndash GB 12052-89《信息交换用朝鲜文编码字符集》收 5297 个朝鲜文字和 682 个其他符号(与 GB 2132同)共 5 979 个字符

ndash GB 13134-91《信息交换用彝文编码字符集》收 1165 个彝文字符和 688 个其他符号共 1853 个字符

ndash GB 16959-1997《信息技术 信息交换用藏文编码字符集 基本集》收 41 个藏文字母 36 个藏文主字 13 个元音字符12 个语音字符 10 个藏文数字 10 个半值符一个控制用连接符和 46 个其他藏文图形符号共 169 个字符

6 GB 13000bull GB 13000 是与 ISOIEC 10646 等价的国际通用编码字符集标准收汉字 2万多个但是与 GB 2312 和 GBK 不兼容

bull 1993年 5月 ISO 与 IEC 联合推出了可用于世界各种文字的通用编码字符集的国际标准的第 1部分ndash ISOIEC 10646-11993 Information technology -- Universal Multiple-Octe

t Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane (信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

ndash 该标准收字符 96万个几乎涵盖世界上的所有文字其中包含汉字 21 003 个

bull 1993年底我国推出了等同于国际标准 ISOIEC 1064611993 的强制性国家标准 ndash GB 130001-93《信息技术 通用多八位编码字符集( UCS ) 第一部分

体系结构与基本多文种平面》ndash 该标准于 1993年 12月 24日被国家技术监督局批准 1994年 8月 1日起实施

GB 13000 的主要特点

bull 世界各语言文种字符统一编码避免冲突便于国际交流

bull 编码空间宽阔连续每个图形字符的编码唯一(一字一码)不再存在兼容性问题

bull 按文种而不是按语言编码避免重复和浪费(如中日韩汉字的统一编码 CJK )

bull 与 GB 2312 和 GBK 不兼容

体系结构bull UCS 的体系结构是基于所谓ldquo多八位rdquo的而ldquo八位rdquo就是一个字节ldquo多八位rdquo就是多个字节

bull UCS采用 4 个字节来表征组面行位的四维空间bull 整个 UCS空间包含 128 个组( 0x00组 ~0x7F组)每组有 256 个平面( 0x00 平面 ~0xFF 平面)每个平面有 256 行每行又由 256 个字位构成

bull UCS共有( 128 times 256 = ) 32 768 个平面每个平面有( 256 times 256 = ) 65 536 个字位每个字位对应于一个字符的编码

bull 目前的编码只限于 00组已经定义的平面有 00组的00 平面mdashmdash称之为基本多文种平面 BMP ( Basic Multilingual Plane ) 及若干辅助平面

UCS 的全部编码空间

每个平面256times256 个

字位

00组 00 平面

00组 FF 平面

01组 00 平面

7F组 00 平面00

01组

7F组

UCS 的 00组

BMPbull BMP = Basic Multilingual Plane 基本多文种平面bull BMP 用作双八位编码字符集称之为 UCS-2 它被

分成四个区ndash A- 区(字位 0x0000~0x4DFF 有 19 903 个字位)用于

字母文字音节文字以及各种符号ndash I- 区(字位 0x4E00~0x9FFF 共 20 992 个字位)用于中日韩统一汉字( CJK )

ndash O- 区(字位 0xA000~0xDFFF 共 16 384 个字位)保留未来标准化用

ndash R- 区(字位 0xE000~0xFFFD 共 8 190 个字位)为 BMP 的限制使用区包括专用字符变形显现形式及兼容字符

BMP总貌

A-区

00~33 拼音文字(见下页)

34~3D 朝鲜文

3E~44 朝鲜文补充 -A

45~4D 朝鲜文补充 -B

I-区 4E~9F CJK统一汉字O-区 A0~DF

R-区

E0~F8 专用区

F9~FA CJK兼容汉字FB 拼音文字变形显现形式

FC~FD 阿拉伯文变形显现形式 -A

FE半形组合用标志

CJK兼容形式

小写变体

阿拉伯文变形显现形式 -B

FF 半形及全形字符 特殊字符

BMP 的0x00~0x33

行字母文字区

00 基本拉丁文 拉丁文-1补充

01 拉丁文扩充-A 拉丁文扩充-B

02 拉丁文扩充-B 国际音标扩充 进格修饰字符

03 组合用发音符 基本希腊文 希腊符号及哥普特文

04 西里尔文

05 美亚尼亚文 希伯来文(基本和扩充)

06 基本阿拉伯文 阿拉伯文扩充

07

08

09 梵文 孟加拉文

0A 锡克教文 古吉拉特文

0B 奥利雅文 泰米尔文

0C 泰卢固文 卡纳达文

0D 德拉维族文

0E 泰文 老挝文

0F

10 格鲁吉亚文

11 朝鲜文字母

12~1D

1E 拉丁文扩充增补

1F 希腊文扩充

20 广义标点 上下标 货币符号 符号组合用区分标志

21 类似字母的符号 数字形式 箭头

22 数学运算符

23 零杂技术用符号

24 控制图符 光学识别符 带括号的字母数字

25 制表符 方块元素 几何图形符

26 零杂符号

27 示意符等

28~2F

30 CJK符号和标点 平假名 片假名

31 注音 朝鲜文兼容字母 CJK零杂字符

32 带括号的CJK字母及月份

33 CJK兼容字符

留作将来标准化用

非图形字符

表示形式bull GB 13000提供了字符编码表示的两种替代使用的形式

ndash 双八位 BMP 形式( UCS-2 )mdashmdash允许使用 BMP 中的字符且每个字符用两个字节表示

ndash 肆八位正则形式( UCS-4 )mdashmdash允许使用 GB 13000 中的全部字符且每个字符用四个字节表示

bull 除了 UCS-24外还有另外两种变形的表示形式ndash UTF-8 (单字节 ~ 多字节)ndash UTF-16 (双字节和 4 字节与 UCS-2 等价)ndash 目前在工业上的实现均为 UTF-16 ( UCS-2 )和 UTF-8ndash UTF = Unicode UCS Transformation Format 统一码 UC

S转换格式bull 关于统一码我们会在下一小节详细介绍

7 GBK 与 GB 18030bull 由于 GB 13000 标准与 GB 2312 标准的字符编码不兼容作为过渡在国家信息技术标准化委员会的主持下制定了与 GB 2312兼容的《汉字内码扩展规范( GBK )》( K 为扩展的ldquo扩rdquo字的拼音首字母)并于 1995年 12月 15日由原国家技术监督局标准司联合原电子工业部科技与质量监督司作为指导性技术规范发布实施

bull 2000年 GBK又被国家标准 GB 18030-2000《信息技术 信息交换用汉字编码字符集 基本集的扩充》所代替该标准收汉字 2万 7千个

bull 与 GB 2312 一样 GB 18030 也为中国的强制性国家标准微软公司的 Windows XPVista78 中文版与苹果公司的 Mac OS X 和 iOS 谷歌公司的 Android (安卓)等操作系统已经全面支持 GBK

GB 18030 的码位范围分布

字节数 码位空间 码位数目

单字节 0x00~0x7F 128

双字节第 1字节 第 2字节

23 9400x81~0xFE

0x40~0x7E 0x80~0xFE

四字节第 1字节 第 2字节 第 3字节 第 4字节

1 587 6000x81~0xFE 0x30~0x39 0x81~0xFE 0x30~0x39

GB 18030的

总体结构图

收录字符bull 单字节部分mdashmdash收录了GBT 11383 的 0x00~0x7F 全部 128 个字符(似 ASCI

I )bull 双字节部分mdashmdash收录内容如下 (21 003 个汉字和 884 个符号共 21 887 个字符 )

ndash GB 130001-93 的全部 CJK 统一汉字字符 20 902 个( GB 2312 的编码汉字在双字节 2 区其他 CJK 统一汉字在双字节 34 区)

ndash GB 130001-93 的 CJK兼容区挑选出来的 21 个汉字ldquo郎凉秊helliphellip﨨﨩rdquo( 0xFD9C~0xFDA0 和 0xFE40~0xFE4F )

ndash GB 130001-93 中收录而 GB 2312未收录的台湾地区使用的图形字符 139 个ldquoˊˋ˙helliphelliprdquo( 0xA840~0xA895 和 0xA940~0XA988 )

ndash GB 130001-93收录的其他字符 31 ( 13)个(在双字节 5 区)ndash GB 2312-80 中的非汉字字符 682 个( 0xA1A1~0xA9EF )ndash GB 12345-90 的竖排标点符号 19 ( 29)个ldquo︵︶︹helliphellip︳︴rdquo( 0xA6D9~0xA6

F5 )ndash GB 2312-80未收录的 10 个小写罗马数字ldquoⅰⅱⅲhelliphellipⅸⅹrdquo( 0xA2A1~ 0xA2A

A )ndash GB 2312-80未收录的带音调的汉语拼音字母 5 ( 4)个ldquo ńňǹrdquo 以及 ɑ 和 ɡ ( 0

xA8BB~0xA8C0 )ndash 汉字数字零ldquo〇rdquo (0xA996) 和欧元符ldquoeurordquo (0xA2E3)ndash 表意文字描述符 13 个ldquohelliphelliprdquo( 0xA989~0xA995 )ndash 对 GB 130001-93增补的汉字和部首 构件 80 个ldquohelliphellip䶮rdquo( 0xFE50~ 0x

FEA0 )bull 四字节部分mdashmdash收录了上述双字节字符之外的包括 CJK 统一汉字扩充 A 在内

的 GB 130001-93 中的全部字符

GB 18030双字节部分的码位安排

类别 区名 码位范围 码位数 字符数 内容

符号区双字节 1区 A1A1~A9FE 846 718

GB 2312非汉字字符等

双字节 5区 A840~A9A0 192 166 台湾图符等

汉字区双字节 2区 B0A1~F7FE 6768 6763 GB 2312汉字双字节 3区 8140~A0FE 6080 6080 CJK统一汉字双字节 4区 AA40~FEA0 8160 8160 CJK统一汉字等

用户自定义区双字节用户区 1 AAA1~AFFE 564

用户自定义字符双字节用户区 2 F8A1~FEFE 658

双字节用户区 3 A140~A7A0 672

GB 18030双字节部分的编码空间结构图 尾字节

0x40larr――rarr0x7E 0x80larr――rarr0xA0 0xA1larr――――――――――――rarr0xFE

0x81 uarr darr

0xA0

0xA1 uarr darr

0xA7

0xA8 0xA9

首字节

0xAA uarr | | | | | | | | | | darr

0xFE

双字节 3区

汉字区6 080个码位

双字节用户区 3

用户自定义区672个码位

双字节 5区 图形符号区192个码位

双字节 4区

汉字区8 160个码位

双字节 1区

图形符号区564个码位

双字节 2区

汉字区6 768个码位

双字节用户区 1 用户自定义区564个码位

双字节用户区 2 用户自定义区658个码位

223 国际通用字符编码

bull Unicode (统一码)是由多语言软件制造商组成的统一码协会( httpwwwUnicodeorg)所制定一种国际字符的编码标准

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull 本节主要介绍这两种关系密切的主流国际字符编码标准的来历编码方案各自特点与相互关系

1 Unicode 统一码bull 发展历史

ndash 1987年施乐( Xerox )公司的 Joe Becker 与 Lee Collins 和苹果( Apple )公司的 Mark Davis 等人开始讨论统一编码 1987年 12月 Joe Becker造词 Unicode (统一码)含义为ldquo unique universal and uniform character encodingrdquo (单一通用统一的字符编码) 1989年 2月开始定期召开统一码会议 1989年 9月公布 Unicode草案

ndash 1991年 1月 3 日由 Xerox Apple Sun IBM Aldis Microsoft 等公司出资在美国加州成立了统一码协会( Unicode Consortium )并由协会设立非盈利性的统一码公司( Unicode Inc )后来 HP Adobe Borland Digital Lotus Novell 等公司也纷纷加入 1991年 1月成立统一码技术委员会 UTC 并制定了其规程

ndash 1991年 2月在 Ed Hart 的推动下进行了ldquo统一码对 10464 国际标准草案 1rdquo 的对话Unicode 与 ISOIEC 10646开始走向融合

ndash 1991年 8月发布 Unicode 标准 10版的第 1卷(体系结构非表意字符) 1992年6月发表 Unicode 10版的第 2卷(表意字符) 1993年 6月发布 Unicode 11版与 1993年 5月公布的 ISOIEC 10646-11993 实现了合并

ndash 1996年 7月发布 Unicode 20版ndash 1999年 9月发布 Unicode 30版ndash 2003年 4月发布 Unicode 40版(对应于 ISOIEC 106462003 ) 2004年 3月 31日发布 Unicode 401版 2005年 3月 31日发布 Unicode 410版

ndash 2006年 7月 14日发布 Unicode 50版 2008年 4月 4日发布 Unicode 51版 2009年 12月 22日发布 Unicode 52版

ndash 2010年 10月发布 Unicode 60版 2012年 1月发布 Unicode 61版(对应于 ISOIEC 106462012 ) 2012年 9月推出 Unicode 62版 2013年 9月推出 Unicode 63版

ndash 2014年 6月 16日发布 Unicode 70版 ndash 2015年 6月 17日发布 Unicode 80版

字符集bull Unicode 字符集的空间分成双字节的基本多语言平面 (Basic Multilingual Pla

ne BMP) 和 4 字节的辅助多语言平面 (Supplementary Multilingual Plane SMP) 两种

bull BMPndash Unicode 的基本平面或基本多语言平面 BMP 对应于 ISOIEC 10646-1 的第 00组的 00 平面( BMP )即 Unicode 与 ISOIEC 10646 的 BMP 中的字符编码完全一致

bull SMPndash 鉴于 Unicode 原有的 16位元空间不足以应用从 Unicode 31版本开始设立了 16 个辅助平面使 Unicode 的可使用空间由六万多字增至约一百万字

ndash 原有的 Unicode双字节空间称为基本平面或基本多语言平面 BMP 辅助多语言平面 SMP 字符要用 4 字节来储存

ndash 第一辅助平面摆放拼音文字(主要为现时已不再使用的文字)及符号范围在 U+10000 - U+1FFFD

ndash 第二辅助平面又称为表意文字补充平面 (Supplementary Ideographic Plane 简称 SIP) 现时摆放ldquo中日韩统汉字扩展 B 区rdquo共 43253 个汉字范围在 U+20000 - U+2FFFD

ndash 第三至十三辅助平面尚未使用ndash 第十四辅助平面又称为特殊用途补充平面 (Supplementary Special-purpose Pl

ane 简称 SSP) 摆放 Language tags 和 Variation Selectors 它们都是控制字符范围在 U+E0000 - U+E01FF

ndash 第十五至十六辅助平面都是私人使用区它们的范围是 U+F0000 - U+FFFFD 及 U+100000 - U+1000FD

bull Unicode 字符集的具体编码方式参加第 4小节ldquo 4 UTFrdquo

2 ISOIEC 10646

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull ISOIEC 10646 标准由 ISO 与 IEC 联合成立的 ISOIEC JTC1SC2WG2 制定ndash JTC 1 ( Joint Technical Committee 1 on Information

technology ISOIEC信息技术联合技术委员会 1 )负责信息技术方面标准的制定工作

ndash SC 2 ( SubCommittee 2 on Coded character sets 编码字符集分会 2 )下的 WG 2 ( Working Group 2 on Universal coded character set 通用编码字符集工作组 2 )负责制定国际通用字符编码标准即后来公布的 ISOIEC 10646

发展历史bull 1984年 ISO 的一些会员国发起制定新的国际字符编码标准同年 4月 ISO

与 IEC 联合成立 ISOIEC JTC1SC2WG2 1987年 3月制定出编码架构1992年 6月投票通过第二版国际标准草案

bull 1993年 5月推出 10646 标准时将内容分成两个部分标准首先发布的是其中的第 1 个部分(体系结构与基本多文种平面)的第 1版( Edition 1 ) ISOIEC 10646-11993 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane(信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

bull 2000年 3月推出 10646 标准第一个部分的第 2版( Edition 2 ) ISOIEC 10646-12000 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane

bull 2001年 10月推出 10646 标准第 2版的第二个部分(辅助平面)的第 1版( Edition 1 ) ISOIEC 10646-22001 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 2 Supplementary Planes

bull 2003年 10月推出的 10646新标准(第 1版 Edition 1 )将老标准中的两个部分标准合并成了一个单一的标准 ISOIEC 106462003 Information technology -- Universal Multiple- Octet Coded Character Set (UCS) 后来又于 2010年 2012年和 2014年分别推出了 ISOIEC 106462010 (第 2版)ISOIEC 106462012 (第 3版)和 ISOIEC 106462014 (第 4版)

UCS 通用字符集bull 通用字符集( Universal Character Set UCS )是

ISOIEC 10646 标准所定义的字符编码方式采用 4字节编码又称为 Universal Multiple-Octet Coded Character Set (通用多八位编码字符集)

bull 通用字符集是所有包括了其他字符集它保证了与其他字符集的双向兼容即如果你将任何文本字符串翻译到 UCS 格式然后再翻译回原编码你不会丢失任何信息

bull UCS 包含了已知语言的所有字符除了拉丁语希腊语斯拉夫语希伯来语阿拉伯语亚美尼亚语格鲁吉亚语还包括中文日文韩文这样的象形文字 UCS 还包括大量的图形印刷数学科学符号

名字与组合字符bull UCS 不仅给每个字符分配一个代码而且赋予了

一个正式的名字表示一个 UCS 或 Unicode值的十六进制数通常在前面加上ldquo U+rdquo 例如ldquo U+0041rdquo代表字符ldquo Ardquo

bull UCS里有些编码点分配给了组合字符组合字符机制允许在任何字符后加上重音符或其他指示标记 这在科学符号中特别有用 比如数学方程式和国际音标字母 可能会需要在一个基本字符后组合上一个或多个指示标记

实现级别bull 并不是所有的系统都需要支持像组合字符这样的的先进

机制因此 ISO 10646 指定了如下三种实现级别ndash 级别 1不支持组合字符和韩语 Hangul Jamo 字符 ( 一种特

别的 更加复杂的韩国文的编码 使用两个或三个子字符来编码一个韩文音节 )

ndash 级别 2类似于级别 1 但在某些文字中允许一列固定的组合字符 (例如 希伯来文 阿拉伯文 Devangari 孟加拉语 果鲁穆奇语 Gujarati Oriya 泰米尔语 Telugo 印 埃纳德语 Malayalam 泰国语和老挝语 ) 因为如果没有最起码的几个组合字符 UCS就不能完整地表达这些语言

ndash 级别 3支持所有的 UCS 字符如可以在任意一个字符上加上一个箭头或 和一个 tilde(颚化符号即字母上面的~ )

编码方式bull UCS 有如下两种编码方式

ndash UCS-2与 Unicode 的 2 字节编码基本一样ndash UCS-4 4 字节编码目前是在 UCS-2 前加

上 2 个全零的字节bull UCS 还有 UTF 编码方式参见下面第 4小节ldquo 4 UTFrdquo

3 Unicode 与 ISOIEC 10646bull 关系

ndash 历史上存在两个独立的尝试创立单一字符集的组织即国际标准化组织( ISO )和多语言软件制造商组成的统一码协会组织( Unicodeorg )前者开发的 ISO 10646项目后者开发的 Unicode项目因此最初制定了不同的标准

ndash 1991年前后两个项目的参与者都认识到世界不需要两个不兼容的字符集于是它们开始合并双方的工作成果并为创立一个单一编码表而协同工作

ndash 从 Unicode20开始 Unicode采用了与 ISO 10646-1相同的字库和字码 ISO 也承诺 ISO10646 将不会替超出 U+10FFFF 的 UCS-4 编码赋值以使得两者保持一致

ndash 两个项目仍都存在并独立地公布各自的标准但 Unicode协会和 ISOIEC JTC1SC2 都同意保持两者标准的码表兼容并紧密地共同调整任何未来的扩展

异同bull Unicode协会公布的 Unicode 标准包含了 ISO 10646-1 实现级别

3 的基本多文种平面在两个标准里所有的字符都在相同的位置并且有相同的名字

bull ISO 10646 标准就像 ISO 8859 标准一样只不过是一个简单的字符集表它定义了一些编码的别名指定了一些与标准有关的术语并包括了规范说明指定了怎样使用 UCS连接其他 ISO 标准的实现等

bull Unicode 标准额外定义了许多与字符有关的语义符号学并详细说明了绘制某些语言(如阿拉伯语)表达形式的算法处理双向文字(比如拉丁文和希伯来文的混合文字)的算法排序与字符串比较所需的算法等等

bull 考虑到 Unicode 标准有一个易记的名字既便宜又包括更多的辅助信息因而它使用得更广泛然而

bull 一般认为用于打印 ISO 10646-1 标准的字体在某些方面的质量要高于用于打印 Unicode 20 的专业字体设计者总是被建议说要两个标准都实现但一些提供的样例字形有显著的区别 ISO 10646-1 标准同样使用四种不同的风格变体来显示表意文字如中文日文和韩文 (CJK) 而 Unicode 20 的表里只有中文的变体

4 UTFbull Unicode 和 UCS 都是一个字符集可以看作为内码bull UTF ( UnicodeUCS Transformation Format 统一码

通用字符集转换格式)是一种编码方式它的出现是因为 Unicode 和 UCS 不适宜在某些场合直接传输和处理

bull UCS 和 Unicode 只是分配整数给字符的编码表现在存在好几种将一串字符表示为一串字节的方法(如高或低位字节在前)

bull 最显而易见的两种方法是将 UCS 和 Unicode 文本存储为 2 个 或 4 个字节序列的串这两种方法的正式名称分别为 UCS-2 和 UCS-4

bull 常用的 UTF具体编码方式有 UTF-8 UTF-16 和 UTF-32

UTF-8

bull UTF-8 是 UTF 的一种具体编码方式在 ISO 10646-1 的附录 R 和 IETF 的 RFC 2279 里定义

bull 由于要使文档中的文字与 ASCII兼容故 UTF-8 选择了使用可变长度字节来储存 Unicode 和 UCS 例如ndash ASCII 字母继续使用 1 字节储存ndash 重音文字希腊字母或西里尔字母等使用 2 字节来储存ndash 常用的汉字就要使用 3 字节ndash 辅助平面字符则使用 4 字节ndash 即 ASCII 不作变换其他字符做变长编码每个字符 1~4 字节

bull UTF-8 通常作为外码bull 在 UTF-8 文件的开首很多时都放置一个 U+FEFF 字符

(UTF-8 以 EF BB BF 代表 ) 以显示这个文字档案是以UTF-8 编码

UTF-8 的优点bull 与 CPU 字节顺序无关可以在不同平台之间交流

bull 容错能力高任何一个字节损坏后最多只会导致一个编码码位损失不会链锁错误 ( 如 GB 码错一个字节就会整行乱码 )

UTF-8 的缺点bull UTF-8 使用可变长度字节储存使计算机程序设计变得复杂 (故此在计算机程序或操作系统内部多采用 UCS-2 编码 )

bull 在旧式的中文日文及朝鲜文编码之中每字符都使用 2 字节储存而 UTF-8 须使用 3 字节 (采用 UTF-16 编码则可只使用 2字节储存 )

bull 泰语以往使用的 ISO 8859-11 每字符只使用 1 字节储存而 UTF-8 须使用 3 字节

UTF-8储存的多字节串字符bull U-00000000 - U-0000007F 0xxxxxxx bull U-00000080 - U-000007FF 110xxxxx 10xxxxxx

bull U-00000800 - U-0000FFFF 1110xxxx 10xxxxxx

10xxxxxx bull U-00010000 - U-001FFFFF 11110xxx 10xxxxx

x 10xxxxxx 10xxxxxx bull 在多字节串中第一个字节的开头ldquo 1rdquo 的数目就

是整个串中字节的数目bull 每个使用 UTF-8储存的字符除了第一个字节外其余字节的头两个位元都是以 10 开始使文字处理器能够较快地找出每个字符的开始位置

UTF-16bull UTF-16 是 UTF 的另一种具体编码方式在 ISO 1064

6-1 的附录 Q 和 IETF 的 RFC 2781 里定义bull UTF-16 是变长码( 2 或 4 字节)大致相当于 20位编码值在 0 到 0x10FFFF 之间基本上就是 Unicode 编码的实现 UTF-16 与 CPU 字序有关但因为最省空间常作为网络传输的外码 UTF-16 是 Unicode 的完美编码

bull lt0x10000 的直接用其对应的 16位整数编码位于 0x10000 ~ 0x10FFFF 之间的用 0xD800~0xDBFF 的 16位整数后跟 0xDC00~0xDFFF 的 16位整数的 4 字节编码 gt 0x10FFFF 的不能用 UTF-16 表示

bull 在 Unicode 的 BMP 中定义的字符(无论是拉丁字母汉字或其他文字或符号)一律使用 2 字节存储而在辅助平面定义的字符则以两个 2 字节的值来存储

UTF-16 的特点bull UTF-16比起 UTF-8 的好处在于大部分字符都以固定长

度的 2 字节存储但 UTF-16却无法相容于 ASCII 编码bull UTF-16 有两种编码模式即大尾序( big Endian 高位字节在前)和小尾序( little Endian 高位字节在后)储存形式(一般來說以 Macintosh 制作和存储的文字使用大尾序格式以 Microsoft 或 Linux 制作和存储的文字使用小尾序格式)

bull 为了弄区分 UTF-16 文件的大小尾序在 UTF-16 文件的开头都会放置一个 U+FEFF 字符作为字节顺序标记 (UTF-16LE 以 FF FE代表 UTF-16BE 以 FE FF代表 ) 以显示该文档是以 UTF-16 编码的

UTF-32

bull UTF-32 仅使用了 Unicode范围 (0 到 0x10FFFF) 的 32位编码相当于 UCS-4 的子集

bull 由于 Unicode 和 ISOIEC 10646 的编码和结构与前面讲过的 GB 13000 类似或等价这里就不再做详细的介绍

5支持bull 现在 UnicodeUCS 已经获得了十分广泛的支

持ndash网络与浏览器(如 HTML 4050 XML 与 IE

Safari Netscape Firefox Chrome Opera Edge 等)

ndash操作系统(如 Windows NT2000XPVista7810 Mac OS X iOS Android和 Linux )

ndash 编程语言新版本(如 CC++JavaObjective-CC Swift 等)

Unicode 代码的浏览器显示代码 字符标准名称 (英语 )

浏览器的显示

amp65 大写拉丁字母 A A

amp223 小写拉丁字母 Sharp S szlig

amp254 小写拉丁字母 Thorn thorn

amp916 大写希腊字母 Delta Δ

amp1049 大写斯拉夫字母 Short I Й

amp1511 希伯来字母 Qof ק

amp1605 阿拉伯字母 Meem م

amp3671 泰文数字 7 ๗amp4688 埃塞俄比亚音节文字 Qha ቐ

amp12354 日语平假名 A あamp12450 日语片假名 A アamp21494 简体汉字 叶 叶amp33865 繁体汉字 葉 葉amp50685 韩国音节文字 Yeob 엽

23 文字输出bull 文字输出是指将计算机内的字符编码通过计算机的输出设备(如显示器打印机喇叭)展现出所对应字符的图形或声音供人们阅读或聆听

bull 本节主要介绍文字图示输出的字形技术bull 文字声音输出属于语音合成只在本节的末尾作简单的介绍

231 字形技术bull 文字 = 图形bull 不论是象形文字中的单字还是拼音文字

中的字母都是用图形来表示的bull 在计算机里文字的表示 输出(显示和打

印)涉及ndash 字型ndash 字体ndash 字库

1字型bull 字型指构造和生成字形的方法一般可分为

ndash 点阵字 DOS 显卡 ROM 金山 科印特点似位图显示快占空间(字库大)放大后有马赛克效应

bull 显示字母 88 汉字 1616bull 打印 2424 4848 6464

ndash 矢量字单线条用于笔式绘图仪特点字库小算法简单难看

ndash 轮廓字用曲线描绘字的轮廓输出效果好所见即所得(WYSWYG) 可无级放大易实现空心 阴影 填充 变形等各种特效功能轮廓曲线一般采用样条曲线如 TrueType (Apple 1991 Mac OS Microsoft 1992 Windows 31)用的是二次 B 样条 Bezier曲线中文之星 RichWin采用的是三次 B 样条 Bezier曲线

字型种类

2字体bull 字体指字的形状风格如

ndash 汉字的

ndash 英文的

宋体楷体黑体仿宋

行楷隶书新魏幼圆

Times New Roman Arial Narrow Courier New

常用汉字字体bull 宋体mdashmdash宋体来自于北宋时雕版刻书所采用的欧体字(唐朝欧阳询体)宋体字的横顿拉捺挑钩别具特色间架平正疏密适中字体秀丽遒劲但笔画横细竖粗适合于刀刻不宜于手写现在宋体广泛用于印刷常来表现文档的正文

bull 仿宋体mdashmdash 1920年钱塘的丁辅之与丁善之等人将明代以后盛行的方廓形字体加以改造创造出长形和方形的聚珍仿宋后来演化为现在的仿宋体仿宋体比较接近于手写体为宋体和楷体的折中是采用的宋体的结构和楷体的笔法而成现常来表现打印文件以及文档的摘要和注释等

bull 黑体mdashmdash黑体是适应工艺美术的发展而出现的一种等线体是从日本引进的黑体的结构与宋体没有什么差别只是其笔画粗细一致健实粗壮主要用于文档的标题和重点及标语广告等方面

bull 楷体mdashmdash楷体源于楷书楷体的笔画圆浑笔调灵活结构端正美观但不宜于木板雕刻所以直到清末西洋的石板印刷术传入后才开始广泛用于印刷现代的楷体创造于 20世纪的二三十年代主要用于文档的正文(多用于中小学教材)也可用于工艺美术等方面

3字库bull 字库为一种文字的某一字体的所有字符的集合一般存放在一个磁盘文件中

bull 由于象形文字中单字的数量大(成千上万)而拼音文字中字母的数量小(不到一百个)所以字库的大小有很大的差别

bull 为了使文档界面丰富多彩常见的字处理软件都支持多种字体带有众多字库

4点阵字型的国家标准bull 我国已经公布了若干字体的点阵字型之国家标准

ndash GB 50071-19852001 信息技术 汉字编码字符集(基本集) 24 点阵字型

ndash GB 50072-19852001 信息技术 汉字编码字符集(辅助集) 24 点阵字型

ndash GB 5199-19862001 信息技术 汉字编码字符集(基本集) 16 点阵字型 宋体

ndash GB 6345-19862001 信息技术 汉字编码字符集(基本集) 32 点阵字型 宋体

ndash GB 12041-2001 信息技术 汉字编码字符集(基本集) 48点阵字型 宋体

ndash GB 17698-1999 信息技术 通用多八位编码字符集( I 区) 汉字 16 点阵字型

232 语音合成bull 文字的声音输出主要使用的是语音合成的技术bull 语音合成功能是ldquo文rarr语rdquo转换bull 文语转换 TTS (Text-To-Speech) 是将文本形式的信息转换成自然语音的一种技术其最终目标是使计算机输出清晰而又自然的声音

bull 英语的语音合成在上世纪 80年代就早已成熟而中文 汉语的合成现在也趋于成熟并有了广泛的应用(如汽车导航仪智能手机等)

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 34: 第一篇  媒体

收录的字符bull GB 2312 对应的是汉字的基本集共收汉字 6 763 个

可达到 9999 的使用频率因此除了极少数生僻的人名地名和古文外 GB 2312 中的汉字已经能基本满足平时的使用了

bull 除了汉字外 GB 2312 还收录了 682 个非汉字图形符号包括 202 个一般符号(含间隔符标点运算符和制表符) 60 个序号符 22 个数字符 52 个英文字母 169 个日文假名 48 个希腊字母 66 个俄文字母 26 个汉语拼音符号和 37 个汉语注音字母

bull 所以在 GB 2312-80 标准中共收录了( 6 763 汉字 + 682 非汉字图符 = ) 7 445 图形字符

两级汉字bull GB 2312 将其收录的六千多个汉字分成两个级别bull 一级汉字有 3 755 个都为使用频率高的常用汉

字为便于检索像字典那样将这些汉字按拼音字母顺序排列(同音字再按笔顺的横竖撇捺点折序排列)

bull 二级汉字有 3 008 个大部分较生僻不易掌握读音所以按部首顺序排列(同部首的字按笔画数排列同笔画数的字再按笔顺排列)

编码方案bull GB 2312 对所有图形字符(包括汉字和非汉字图符)都采用两个字节表示每个字节的低七位用于编码最高位全为 1 这样可以兼容 ASCII 编码(字节的最高位全为 0 )

bull 虽然在一个字节中最高位为 1 的符号位置有 128 个但从前面 GB 2311 的分析可知为了与 ASCII 的代码结构兼容保留了( 32 + 2 = ) 34 个控制符位置最后只有( 128 ndash 34 = ) 94 个符号位可供图形字符编码使用

bull 图形字符在代码表中的位置用区位码表示将码表分成94 个区对应于编码的第一个字节取值 0x21~0x7E 每个区又分成 94 个位对应于编码的第二个字节取值 0x21~0x7E (参见表 2-6 )

bull 例如ldquo中山大学rdquo的编码为中 (0xD6D0) 山 (0xC9BD) 大 (0xB4F3) 学 (0xD1A7)

GB 2312-80 字符集结构 20 21 22 helliphellip 7D 7E 7F

位号

区号

1 2 helliphellip 93 94

20

21~29 1~9 非汉字图符(682个)

2A~2F 10~15 空白区

30~57 16~55 一级汉字(3 755个)

58~77 56~87 二级汉字(3 008个)

78~7E 88~94 空白区

7F

第 1 区的部分非汉字图符

1区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 middot ˉ ˇ uml 々 mdash ~ hellip lsquo rsquo ldquo

17~32 rdquo 〔 〕 〈 〉 《 》 「 」 『 』 〖 〗 【 】 plusmn

33~48 times divide ∶ and or sum prod cup cap isin ∷ radic perp ∥ ang

49~64 ⊙ int ∮ equiv ≌ asymp ∽ prop ne ltu gtu le ge infin ∵ there4

65~80 deg prime Prime $ curren ¢ £ permil sect

81~94 rarr larr uarr darr

第 16 区的部分一级汉字

16区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 啊 阿 埃 挨 哎 唉 哀 皑 癌 蔼 矮 艾 碍 爱 隘 鞍

17~32 氨 安 俺 按 暗 岸 胺 案 肮 昂 盎 凹 敖 熬 翱 袄

33~48 傲 奥 懊 澳 芭 捌 扒 叭 吧 笆 八 疤 巴 拔 跋 靶

49~64 把 耙 坝 霸 罢 爸 白 柏 百 摆 佰 败 拜 稗 斑 班

65~80 搬 扳 般 颁 板 版 扮 拌 伴 瓣 半 办 绊 邦 帮 梆

81~94 榜 膀 绑 棒 磅 蚌 镑 傍 谤 苞 胞 包 褒 剥

第 56 区的部分二级汉字

56区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 亍 丌 兀 丐 廿 卅 丕 亘 丞 鬲 孬 噩 丨 禺 丿 匕

17~32 乇 夭 爻 卮 氐 囟 胤 馗 毓 睾 鼗 丶 亟 鼐 乜 乩

33~48 亓 芈 孛 啬 嘏 仄 厍 厝 厣 厥 厮 靥 赝 匚 叵 匦

49~64 匮 匾 赜 卦 卣 刂 刈 刎 刭 刳 刿 剀 剌 剞 剡 剜

65~80 蒯 剽 劂 劁 劐 劓 冂 罔 亻 仃 仉 仂 仨 仡 仫 仞

81~94 伛 仳 伢 佤 仵 伥 伧 伉 伫 佞 佧 攸 佚 佝

3汉字编码的辅助集bull 除了GB 2312基本集的 6 763 个简体汉字外国家标

准还给出了汉字编码字符集的多个辅助集bull 第二 四辅助集分别增加了 7 237 7 039 个简体汉字bull 第一和三 五辅助集则分别是与基本集和第二 四辅助集所对应的繁体汉字字符集的国家标准

bull 基本集加上辅助集共有 21 039 个简体汉字和 21 142个繁体汉字

bull 繁体汉字之所以多一些是因为在第一辅助集中有时几个繁体字对应一个简体字因此比基本集多出 103 个汉字

bull 基本集和辅助集的代码页之间靠其编码字节的最高位来区分

编码字符的分页标志

双字节汉字编码的页面结构第二字节 列号

行号 0 middot middot middot 32 33 34 helliphellip 125 126 127 128middot middot 160 161 162 helliphellip 254 255 0 middot middot 32

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

33 34 middot middot middot 126

1 2 middot middot middot 94

第四五辅助集 (7 039个汉字)

127

(兼容ASCII)

128 middot middot 160

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

161 162 middot middot middot 254

1 2 middot middot middot 94

第二三辅助集 (7 237个汉字)

1 2 middot middot middot 94

基本集第一辅助集 (6 763 6 866个汉字) (682个非汉字图符)

第一字节

255

4 Big5

bull 除了中国大陆使用的简体汉字外在台湾香港澳门和海外华侨社区使用的是传统的繁体汉字

bull 简体汉字使用 GB (国标)系列编码标准bull 繁体汉字一般使用的是 Big5内码(大五码)即台湾的ldquo资讯工业策进会rdquo发布的《标准交换码 (Ⅲ码 )》收录汉字 13 053 个

bull Big5内码是 1984年由台湾财团法人资讯工业策进会与宏碁 (Acer) 神通 (MiTAC) 佳佳零壹 (Zero One) 大众 (FIC) 等五大软件公司联合推出故称为大五码

BIG5 的代码空间低位字节

00 hellip 3F 40 hellip 7E 7F hellip A0 A1 hellip FE FF

高位字节

00middot

80

81middot

A0用户定义区 用户定义区

A1A2A3

非汉字图符 非汉字图符

A4middot

C6常用汉字 常用汉字

C7C8

用户定义区 用户定义区

C9middot

F9次常用汉字 次常用汉字

FAmiddot

FE用户定义区 用户定义区

FF

5少数民族文字编码bull 中国共有 56 个民族除了汉回满族一般使用汉语外其他少数民族大多有自己的民族语言

bull 我国各民族使用的 50 多种文字可以分为字母式结构文字和非字母式结构文字两大类ndash 字母式结构的有拉丁文斯拉夫文蒙古文维吾尔文哈萨克文藏文和朝鲜文等字母式

ndash 非字母式结构的有汉字象形文字图画文字和音节文字等bull 各民族文字的书写方向也有不同

ndash 壮文藏文朝鲜文彝文等的字从左到右行从上到下ndash 维吾尔文哈萨克文和柯尔克孜文等的字从右到左行从上

到下ndash 蒙古文和满文的字从上到下行从左到右ndash 汉字的书写方向有两种

bull 大陆的简体汉字的字从左到右行从上到下bull 港台与古旧书的繁体汉字的字从上到下行从右到左

国家标准bull 下面按发布时间列出若干已经公布的我国少数民族文字

编码集的国家标准(这些字符集一般分成两类对字母式结构文字采用八位编码对非字母式结构文字采用双字节编码)ndash GB 8045-87《信息处理交换用蒙古文七位和八位编码图形字

符集》收 82 个蒙古文字母和 12 个其他符号共 94 个字符ndash GB 12050-89《信息处理交换用维吾尔文编码图形字符集》收 32 个维吾尔文字母一个维吾尔文复合字符和 37 个其他符号共 70 个字符

ndash GB 12052-89《信息交换用朝鲜文编码字符集》收 5297 个朝鲜文字和 682 个其他符号(与 GB 2132同)共 5 979 个字符

ndash GB 13134-91《信息交换用彝文编码字符集》收 1165 个彝文字符和 688 个其他符号共 1853 个字符

ndash GB 16959-1997《信息技术 信息交换用藏文编码字符集 基本集》收 41 个藏文字母 36 个藏文主字 13 个元音字符12 个语音字符 10 个藏文数字 10 个半值符一个控制用连接符和 46 个其他藏文图形符号共 169 个字符

6 GB 13000bull GB 13000 是与 ISOIEC 10646 等价的国际通用编码字符集标准收汉字 2万多个但是与 GB 2312 和 GBK 不兼容

bull 1993年 5月 ISO 与 IEC 联合推出了可用于世界各种文字的通用编码字符集的国际标准的第 1部分ndash ISOIEC 10646-11993 Information technology -- Universal Multiple-Octe

t Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane (信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

ndash 该标准收字符 96万个几乎涵盖世界上的所有文字其中包含汉字 21 003 个

bull 1993年底我国推出了等同于国际标准 ISOIEC 1064611993 的强制性国家标准 ndash GB 130001-93《信息技术 通用多八位编码字符集( UCS ) 第一部分

体系结构与基本多文种平面》ndash 该标准于 1993年 12月 24日被国家技术监督局批准 1994年 8月 1日起实施

GB 13000 的主要特点

bull 世界各语言文种字符统一编码避免冲突便于国际交流

bull 编码空间宽阔连续每个图形字符的编码唯一(一字一码)不再存在兼容性问题

bull 按文种而不是按语言编码避免重复和浪费(如中日韩汉字的统一编码 CJK )

bull 与 GB 2312 和 GBK 不兼容

体系结构bull UCS 的体系结构是基于所谓ldquo多八位rdquo的而ldquo八位rdquo就是一个字节ldquo多八位rdquo就是多个字节

bull UCS采用 4 个字节来表征组面行位的四维空间bull 整个 UCS空间包含 128 个组( 0x00组 ~0x7F组)每组有 256 个平面( 0x00 平面 ~0xFF 平面)每个平面有 256 行每行又由 256 个字位构成

bull UCS共有( 128 times 256 = ) 32 768 个平面每个平面有( 256 times 256 = ) 65 536 个字位每个字位对应于一个字符的编码

bull 目前的编码只限于 00组已经定义的平面有 00组的00 平面mdashmdash称之为基本多文种平面 BMP ( Basic Multilingual Plane ) 及若干辅助平面

UCS 的全部编码空间

每个平面256times256 个

字位

00组 00 平面

00组 FF 平面

01组 00 平面

7F组 00 平面00

01组

7F组

UCS 的 00组

BMPbull BMP = Basic Multilingual Plane 基本多文种平面bull BMP 用作双八位编码字符集称之为 UCS-2 它被

分成四个区ndash A- 区(字位 0x0000~0x4DFF 有 19 903 个字位)用于

字母文字音节文字以及各种符号ndash I- 区(字位 0x4E00~0x9FFF 共 20 992 个字位)用于中日韩统一汉字( CJK )

ndash O- 区(字位 0xA000~0xDFFF 共 16 384 个字位)保留未来标准化用

ndash R- 区(字位 0xE000~0xFFFD 共 8 190 个字位)为 BMP 的限制使用区包括专用字符变形显现形式及兼容字符

BMP总貌

A-区

00~33 拼音文字(见下页)

34~3D 朝鲜文

3E~44 朝鲜文补充 -A

45~4D 朝鲜文补充 -B

I-区 4E~9F CJK统一汉字O-区 A0~DF

R-区

E0~F8 专用区

F9~FA CJK兼容汉字FB 拼音文字变形显现形式

FC~FD 阿拉伯文变形显现形式 -A

FE半形组合用标志

CJK兼容形式

小写变体

阿拉伯文变形显现形式 -B

FF 半形及全形字符 特殊字符

BMP 的0x00~0x33

行字母文字区

00 基本拉丁文 拉丁文-1补充

01 拉丁文扩充-A 拉丁文扩充-B

02 拉丁文扩充-B 国际音标扩充 进格修饰字符

03 组合用发音符 基本希腊文 希腊符号及哥普特文

04 西里尔文

05 美亚尼亚文 希伯来文(基本和扩充)

06 基本阿拉伯文 阿拉伯文扩充

07

08

09 梵文 孟加拉文

0A 锡克教文 古吉拉特文

0B 奥利雅文 泰米尔文

0C 泰卢固文 卡纳达文

0D 德拉维族文

0E 泰文 老挝文

0F

10 格鲁吉亚文

11 朝鲜文字母

12~1D

1E 拉丁文扩充增补

1F 希腊文扩充

20 广义标点 上下标 货币符号 符号组合用区分标志

21 类似字母的符号 数字形式 箭头

22 数学运算符

23 零杂技术用符号

24 控制图符 光学识别符 带括号的字母数字

25 制表符 方块元素 几何图形符

26 零杂符号

27 示意符等

28~2F

30 CJK符号和标点 平假名 片假名

31 注音 朝鲜文兼容字母 CJK零杂字符

32 带括号的CJK字母及月份

33 CJK兼容字符

留作将来标准化用

非图形字符

表示形式bull GB 13000提供了字符编码表示的两种替代使用的形式

ndash 双八位 BMP 形式( UCS-2 )mdashmdash允许使用 BMP 中的字符且每个字符用两个字节表示

ndash 肆八位正则形式( UCS-4 )mdashmdash允许使用 GB 13000 中的全部字符且每个字符用四个字节表示

bull 除了 UCS-24外还有另外两种变形的表示形式ndash UTF-8 (单字节 ~ 多字节)ndash UTF-16 (双字节和 4 字节与 UCS-2 等价)ndash 目前在工业上的实现均为 UTF-16 ( UCS-2 )和 UTF-8ndash UTF = Unicode UCS Transformation Format 统一码 UC

S转换格式bull 关于统一码我们会在下一小节详细介绍

7 GBK 与 GB 18030bull 由于 GB 13000 标准与 GB 2312 标准的字符编码不兼容作为过渡在国家信息技术标准化委员会的主持下制定了与 GB 2312兼容的《汉字内码扩展规范( GBK )》( K 为扩展的ldquo扩rdquo字的拼音首字母)并于 1995年 12月 15日由原国家技术监督局标准司联合原电子工业部科技与质量监督司作为指导性技术规范发布实施

bull 2000年 GBK又被国家标准 GB 18030-2000《信息技术 信息交换用汉字编码字符集 基本集的扩充》所代替该标准收汉字 2万 7千个

bull 与 GB 2312 一样 GB 18030 也为中国的强制性国家标准微软公司的 Windows XPVista78 中文版与苹果公司的 Mac OS X 和 iOS 谷歌公司的 Android (安卓)等操作系统已经全面支持 GBK

GB 18030 的码位范围分布

字节数 码位空间 码位数目

单字节 0x00~0x7F 128

双字节第 1字节 第 2字节

23 9400x81~0xFE

0x40~0x7E 0x80~0xFE

四字节第 1字节 第 2字节 第 3字节 第 4字节

1 587 6000x81~0xFE 0x30~0x39 0x81~0xFE 0x30~0x39

GB 18030的

总体结构图

收录字符bull 单字节部分mdashmdash收录了GBT 11383 的 0x00~0x7F 全部 128 个字符(似 ASCI

I )bull 双字节部分mdashmdash收录内容如下 (21 003 个汉字和 884 个符号共 21 887 个字符 )

ndash GB 130001-93 的全部 CJK 统一汉字字符 20 902 个( GB 2312 的编码汉字在双字节 2 区其他 CJK 统一汉字在双字节 34 区)

ndash GB 130001-93 的 CJK兼容区挑选出来的 21 个汉字ldquo郎凉秊helliphellip﨨﨩rdquo( 0xFD9C~0xFDA0 和 0xFE40~0xFE4F )

ndash GB 130001-93 中收录而 GB 2312未收录的台湾地区使用的图形字符 139 个ldquoˊˋ˙helliphelliprdquo( 0xA840~0xA895 和 0xA940~0XA988 )

ndash GB 130001-93收录的其他字符 31 ( 13)个(在双字节 5 区)ndash GB 2312-80 中的非汉字字符 682 个( 0xA1A1~0xA9EF )ndash GB 12345-90 的竖排标点符号 19 ( 29)个ldquo︵︶︹helliphellip︳︴rdquo( 0xA6D9~0xA6

F5 )ndash GB 2312-80未收录的 10 个小写罗马数字ldquoⅰⅱⅲhelliphellipⅸⅹrdquo( 0xA2A1~ 0xA2A

A )ndash GB 2312-80未收录的带音调的汉语拼音字母 5 ( 4)个ldquo ńňǹrdquo 以及 ɑ 和 ɡ ( 0

xA8BB~0xA8C0 )ndash 汉字数字零ldquo〇rdquo (0xA996) 和欧元符ldquoeurordquo (0xA2E3)ndash 表意文字描述符 13 个ldquohelliphelliprdquo( 0xA989~0xA995 )ndash 对 GB 130001-93增补的汉字和部首 构件 80 个ldquohelliphellip䶮rdquo( 0xFE50~ 0x

FEA0 )bull 四字节部分mdashmdash收录了上述双字节字符之外的包括 CJK 统一汉字扩充 A 在内

的 GB 130001-93 中的全部字符

GB 18030双字节部分的码位安排

类别 区名 码位范围 码位数 字符数 内容

符号区双字节 1区 A1A1~A9FE 846 718

GB 2312非汉字字符等

双字节 5区 A840~A9A0 192 166 台湾图符等

汉字区双字节 2区 B0A1~F7FE 6768 6763 GB 2312汉字双字节 3区 8140~A0FE 6080 6080 CJK统一汉字双字节 4区 AA40~FEA0 8160 8160 CJK统一汉字等

用户自定义区双字节用户区 1 AAA1~AFFE 564

用户自定义字符双字节用户区 2 F8A1~FEFE 658

双字节用户区 3 A140~A7A0 672

GB 18030双字节部分的编码空间结构图 尾字节

0x40larr――rarr0x7E 0x80larr――rarr0xA0 0xA1larr――――――――――――rarr0xFE

0x81 uarr darr

0xA0

0xA1 uarr darr

0xA7

0xA8 0xA9

首字节

0xAA uarr | | | | | | | | | | darr

0xFE

双字节 3区

汉字区6 080个码位

双字节用户区 3

用户自定义区672个码位

双字节 5区 图形符号区192个码位

双字节 4区

汉字区8 160个码位

双字节 1区

图形符号区564个码位

双字节 2区

汉字区6 768个码位

双字节用户区 1 用户自定义区564个码位

双字节用户区 2 用户自定义区658个码位

223 国际通用字符编码

bull Unicode (统一码)是由多语言软件制造商组成的统一码协会( httpwwwUnicodeorg)所制定一种国际字符的编码标准

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull 本节主要介绍这两种关系密切的主流国际字符编码标准的来历编码方案各自特点与相互关系

1 Unicode 统一码bull 发展历史

ndash 1987年施乐( Xerox )公司的 Joe Becker 与 Lee Collins 和苹果( Apple )公司的 Mark Davis 等人开始讨论统一编码 1987年 12月 Joe Becker造词 Unicode (统一码)含义为ldquo unique universal and uniform character encodingrdquo (单一通用统一的字符编码) 1989年 2月开始定期召开统一码会议 1989年 9月公布 Unicode草案

ndash 1991年 1月 3 日由 Xerox Apple Sun IBM Aldis Microsoft 等公司出资在美国加州成立了统一码协会( Unicode Consortium )并由协会设立非盈利性的统一码公司( Unicode Inc )后来 HP Adobe Borland Digital Lotus Novell 等公司也纷纷加入 1991年 1月成立统一码技术委员会 UTC 并制定了其规程

ndash 1991年 2月在 Ed Hart 的推动下进行了ldquo统一码对 10464 国际标准草案 1rdquo 的对话Unicode 与 ISOIEC 10646开始走向融合

ndash 1991年 8月发布 Unicode 标准 10版的第 1卷(体系结构非表意字符) 1992年6月发表 Unicode 10版的第 2卷(表意字符) 1993年 6月发布 Unicode 11版与 1993年 5月公布的 ISOIEC 10646-11993 实现了合并

ndash 1996年 7月发布 Unicode 20版ndash 1999年 9月发布 Unicode 30版ndash 2003年 4月发布 Unicode 40版(对应于 ISOIEC 106462003 ) 2004年 3月 31日发布 Unicode 401版 2005年 3月 31日发布 Unicode 410版

ndash 2006年 7月 14日发布 Unicode 50版 2008年 4月 4日发布 Unicode 51版 2009年 12月 22日发布 Unicode 52版

ndash 2010年 10月发布 Unicode 60版 2012年 1月发布 Unicode 61版(对应于 ISOIEC 106462012 ) 2012年 9月推出 Unicode 62版 2013年 9月推出 Unicode 63版

ndash 2014年 6月 16日发布 Unicode 70版 ndash 2015年 6月 17日发布 Unicode 80版

字符集bull Unicode 字符集的空间分成双字节的基本多语言平面 (Basic Multilingual Pla

ne BMP) 和 4 字节的辅助多语言平面 (Supplementary Multilingual Plane SMP) 两种

bull BMPndash Unicode 的基本平面或基本多语言平面 BMP 对应于 ISOIEC 10646-1 的第 00组的 00 平面( BMP )即 Unicode 与 ISOIEC 10646 的 BMP 中的字符编码完全一致

bull SMPndash 鉴于 Unicode 原有的 16位元空间不足以应用从 Unicode 31版本开始设立了 16 个辅助平面使 Unicode 的可使用空间由六万多字增至约一百万字

ndash 原有的 Unicode双字节空间称为基本平面或基本多语言平面 BMP 辅助多语言平面 SMP 字符要用 4 字节来储存

ndash 第一辅助平面摆放拼音文字(主要为现时已不再使用的文字)及符号范围在 U+10000 - U+1FFFD

ndash 第二辅助平面又称为表意文字补充平面 (Supplementary Ideographic Plane 简称 SIP) 现时摆放ldquo中日韩统汉字扩展 B 区rdquo共 43253 个汉字范围在 U+20000 - U+2FFFD

ndash 第三至十三辅助平面尚未使用ndash 第十四辅助平面又称为特殊用途补充平面 (Supplementary Special-purpose Pl

ane 简称 SSP) 摆放 Language tags 和 Variation Selectors 它们都是控制字符范围在 U+E0000 - U+E01FF

ndash 第十五至十六辅助平面都是私人使用区它们的范围是 U+F0000 - U+FFFFD 及 U+100000 - U+1000FD

bull Unicode 字符集的具体编码方式参加第 4小节ldquo 4 UTFrdquo

2 ISOIEC 10646

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull ISOIEC 10646 标准由 ISO 与 IEC 联合成立的 ISOIEC JTC1SC2WG2 制定ndash JTC 1 ( Joint Technical Committee 1 on Information

technology ISOIEC信息技术联合技术委员会 1 )负责信息技术方面标准的制定工作

ndash SC 2 ( SubCommittee 2 on Coded character sets 编码字符集分会 2 )下的 WG 2 ( Working Group 2 on Universal coded character set 通用编码字符集工作组 2 )负责制定国际通用字符编码标准即后来公布的 ISOIEC 10646

发展历史bull 1984年 ISO 的一些会员国发起制定新的国际字符编码标准同年 4月 ISO

与 IEC 联合成立 ISOIEC JTC1SC2WG2 1987年 3月制定出编码架构1992年 6月投票通过第二版国际标准草案

bull 1993年 5月推出 10646 标准时将内容分成两个部分标准首先发布的是其中的第 1 个部分(体系结构与基本多文种平面)的第 1版( Edition 1 ) ISOIEC 10646-11993 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane(信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

bull 2000年 3月推出 10646 标准第一个部分的第 2版( Edition 2 ) ISOIEC 10646-12000 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane

bull 2001年 10月推出 10646 标准第 2版的第二个部分(辅助平面)的第 1版( Edition 1 ) ISOIEC 10646-22001 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 2 Supplementary Planes

bull 2003年 10月推出的 10646新标准(第 1版 Edition 1 )将老标准中的两个部分标准合并成了一个单一的标准 ISOIEC 106462003 Information technology -- Universal Multiple- Octet Coded Character Set (UCS) 后来又于 2010年 2012年和 2014年分别推出了 ISOIEC 106462010 (第 2版)ISOIEC 106462012 (第 3版)和 ISOIEC 106462014 (第 4版)

UCS 通用字符集bull 通用字符集( Universal Character Set UCS )是

ISOIEC 10646 标准所定义的字符编码方式采用 4字节编码又称为 Universal Multiple-Octet Coded Character Set (通用多八位编码字符集)

bull 通用字符集是所有包括了其他字符集它保证了与其他字符集的双向兼容即如果你将任何文本字符串翻译到 UCS 格式然后再翻译回原编码你不会丢失任何信息

bull UCS 包含了已知语言的所有字符除了拉丁语希腊语斯拉夫语希伯来语阿拉伯语亚美尼亚语格鲁吉亚语还包括中文日文韩文这样的象形文字 UCS 还包括大量的图形印刷数学科学符号

名字与组合字符bull UCS 不仅给每个字符分配一个代码而且赋予了

一个正式的名字表示一个 UCS 或 Unicode值的十六进制数通常在前面加上ldquo U+rdquo 例如ldquo U+0041rdquo代表字符ldquo Ardquo

bull UCS里有些编码点分配给了组合字符组合字符机制允许在任何字符后加上重音符或其他指示标记 这在科学符号中特别有用 比如数学方程式和国际音标字母 可能会需要在一个基本字符后组合上一个或多个指示标记

实现级别bull 并不是所有的系统都需要支持像组合字符这样的的先进

机制因此 ISO 10646 指定了如下三种实现级别ndash 级别 1不支持组合字符和韩语 Hangul Jamo 字符 ( 一种特

别的 更加复杂的韩国文的编码 使用两个或三个子字符来编码一个韩文音节 )

ndash 级别 2类似于级别 1 但在某些文字中允许一列固定的组合字符 (例如 希伯来文 阿拉伯文 Devangari 孟加拉语 果鲁穆奇语 Gujarati Oriya 泰米尔语 Telugo 印 埃纳德语 Malayalam 泰国语和老挝语 ) 因为如果没有最起码的几个组合字符 UCS就不能完整地表达这些语言

ndash 级别 3支持所有的 UCS 字符如可以在任意一个字符上加上一个箭头或 和一个 tilde(颚化符号即字母上面的~ )

编码方式bull UCS 有如下两种编码方式

ndash UCS-2与 Unicode 的 2 字节编码基本一样ndash UCS-4 4 字节编码目前是在 UCS-2 前加

上 2 个全零的字节bull UCS 还有 UTF 编码方式参见下面第 4小节ldquo 4 UTFrdquo

3 Unicode 与 ISOIEC 10646bull 关系

ndash 历史上存在两个独立的尝试创立单一字符集的组织即国际标准化组织( ISO )和多语言软件制造商组成的统一码协会组织( Unicodeorg )前者开发的 ISO 10646项目后者开发的 Unicode项目因此最初制定了不同的标准

ndash 1991年前后两个项目的参与者都认识到世界不需要两个不兼容的字符集于是它们开始合并双方的工作成果并为创立一个单一编码表而协同工作

ndash 从 Unicode20开始 Unicode采用了与 ISO 10646-1相同的字库和字码 ISO 也承诺 ISO10646 将不会替超出 U+10FFFF 的 UCS-4 编码赋值以使得两者保持一致

ndash 两个项目仍都存在并独立地公布各自的标准但 Unicode协会和 ISOIEC JTC1SC2 都同意保持两者标准的码表兼容并紧密地共同调整任何未来的扩展

异同bull Unicode协会公布的 Unicode 标准包含了 ISO 10646-1 实现级别

3 的基本多文种平面在两个标准里所有的字符都在相同的位置并且有相同的名字

bull ISO 10646 标准就像 ISO 8859 标准一样只不过是一个简单的字符集表它定义了一些编码的别名指定了一些与标准有关的术语并包括了规范说明指定了怎样使用 UCS连接其他 ISO 标准的实现等

bull Unicode 标准额外定义了许多与字符有关的语义符号学并详细说明了绘制某些语言(如阿拉伯语)表达形式的算法处理双向文字(比如拉丁文和希伯来文的混合文字)的算法排序与字符串比较所需的算法等等

bull 考虑到 Unicode 标准有一个易记的名字既便宜又包括更多的辅助信息因而它使用得更广泛然而

bull 一般认为用于打印 ISO 10646-1 标准的字体在某些方面的质量要高于用于打印 Unicode 20 的专业字体设计者总是被建议说要两个标准都实现但一些提供的样例字形有显著的区别 ISO 10646-1 标准同样使用四种不同的风格变体来显示表意文字如中文日文和韩文 (CJK) 而 Unicode 20 的表里只有中文的变体

4 UTFbull Unicode 和 UCS 都是一个字符集可以看作为内码bull UTF ( UnicodeUCS Transformation Format 统一码

通用字符集转换格式)是一种编码方式它的出现是因为 Unicode 和 UCS 不适宜在某些场合直接传输和处理

bull UCS 和 Unicode 只是分配整数给字符的编码表现在存在好几种将一串字符表示为一串字节的方法(如高或低位字节在前)

bull 最显而易见的两种方法是将 UCS 和 Unicode 文本存储为 2 个 或 4 个字节序列的串这两种方法的正式名称分别为 UCS-2 和 UCS-4

bull 常用的 UTF具体编码方式有 UTF-8 UTF-16 和 UTF-32

UTF-8

bull UTF-8 是 UTF 的一种具体编码方式在 ISO 10646-1 的附录 R 和 IETF 的 RFC 2279 里定义

bull 由于要使文档中的文字与 ASCII兼容故 UTF-8 选择了使用可变长度字节来储存 Unicode 和 UCS 例如ndash ASCII 字母继续使用 1 字节储存ndash 重音文字希腊字母或西里尔字母等使用 2 字节来储存ndash 常用的汉字就要使用 3 字节ndash 辅助平面字符则使用 4 字节ndash 即 ASCII 不作变换其他字符做变长编码每个字符 1~4 字节

bull UTF-8 通常作为外码bull 在 UTF-8 文件的开首很多时都放置一个 U+FEFF 字符

(UTF-8 以 EF BB BF 代表 ) 以显示这个文字档案是以UTF-8 编码

UTF-8 的优点bull 与 CPU 字节顺序无关可以在不同平台之间交流

bull 容错能力高任何一个字节损坏后最多只会导致一个编码码位损失不会链锁错误 ( 如 GB 码错一个字节就会整行乱码 )

UTF-8 的缺点bull UTF-8 使用可变长度字节储存使计算机程序设计变得复杂 (故此在计算机程序或操作系统内部多采用 UCS-2 编码 )

bull 在旧式的中文日文及朝鲜文编码之中每字符都使用 2 字节储存而 UTF-8 须使用 3 字节 (采用 UTF-16 编码则可只使用 2字节储存 )

bull 泰语以往使用的 ISO 8859-11 每字符只使用 1 字节储存而 UTF-8 须使用 3 字节

UTF-8储存的多字节串字符bull U-00000000 - U-0000007F 0xxxxxxx bull U-00000080 - U-000007FF 110xxxxx 10xxxxxx

bull U-00000800 - U-0000FFFF 1110xxxx 10xxxxxx

10xxxxxx bull U-00010000 - U-001FFFFF 11110xxx 10xxxxx

x 10xxxxxx 10xxxxxx bull 在多字节串中第一个字节的开头ldquo 1rdquo 的数目就

是整个串中字节的数目bull 每个使用 UTF-8储存的字符除了第一个字节外其余字节的头两个位元都是以 10 开始使文字处理器能够较快地找出每个字符的开始位置

UTF-16bull UTF-16 是 UTF 的另一种具体编码方式在 ISO 1064

6-1 的附录 Q 和 IETF 的 RFC 2781 里定义bull UTF-16 是变长码( 2 或 4 字节)大致相当于 20位编码值在 0 到 0x10FFFF 之间基本上就是 Unicode 编码的实现 UTF-16 与 CPU 字序有关但因为最省空间常作为网络传输的外码 UTF-16 是 Unicode 的完美编码

bull lt0x10000 的直接用其对应的 16位整数编码位于 0x10000 ~ 0x10FFFF 之间的用 0xD800~0xDBFF 的 16位整数后跟 0xDC00~0xDFFF 的 16位整数的 4 字节编码 gt 0x10FFFF 的不能用 UTF-16 表示

bull 在 Unicode 的 BMP 中定义的字符(无论是拉丁字母汉字或其他文字或符号)一律使用 2 字节存储而在辅助平面定义的字符则以两个 2 字节的值来存储

UTF-16 的特点bull UTF-16比起 UTF-8 的好处在于大部分字符都以固定长

度的 2 字节存储但 UTF-16却无法相容于 ASCII 编码bull UTF-16 有两种编码模式即大尾序( big Endian 高位字节在前)和小尾序( little Endian 高位字节在后)储存形式(一般來說以 Macintosh 制作和存储的文字使用大尾序格式以 Microsoft 或 Linux 制作和存储的文字使用小尾序格式)

bull 为了弄区分 UTF-16 文件的大小尾序在 UTF-16 文件的开头都会放置一个 U+FEFF 字符作为字节顺序标记 (UTF-16LE 以 FF FE代表 UTF-16BE 以 FE FF代表 ) 以显示该文档是以 UTF-16 编码的

UTF-32

bull UTF-32 仅使用了 Unicode范围 (0 到 0x10FFFF) 的 32位编码相当于 UCS-4 的子集

bull 由于 Unicode 和 ISOIEC 10646 的编码和结构与前面讲过的 GB 13000 类似或等价这里就不再做详细的介绍

5支持bull 现在 UnicodeUCS 已经获得了十分广泛的支

持ndash网络与浏览器(如 HTML 4050 XML 与 IE

Safari Netscape Firefox Chrome Opera Edge 等)

ndash操作系统(如 Windows NT2000XPVista7810 Mac OS X iOS Android和 Linux )

ndash 编程语言新版本(如 CC++JavaObjective-CC Swift 等)

Unicode 代码的浏览器显示代码 字符标准名称 (英语 )

浏览器的显示

amp65 大写拉丁字母 A A

amp223 小写拉丁字母 Sharp S szlig

amp254 小写拉丁字母 Thorn thorn

amp916 大写希腊字母 Delta Δ

amp1049 大写斯拉夫字母 Short I Й

amp1511 希伯来字母 Qof ק

amp1605 阿拉伯字母 Meem م

amp3671 泰文数字 7 ๗amp4688 埃塞俄比亚音节文字 Qha ቐ

amp12354 日语平假名 A あamp12450 日语片假名 A アamp21494 简体汉字 叶 叶amp33865 繁体汉字 葉 葉amp50685 韩国音节文字 Yeob 엽

23 文字输出bull 文字输出是指将计算机内的字符编码通过计算机的输出设备(如显示器打印机喇叭)展现出所对应字符的图形或声音供人们阅读或聆听

bull 本节主要介绍文字图示输出的字形技术bull 文字声音输出属于语音合成只在本节的末尾作简单的介绍

231 字形技术bull 文字 = 图形bull 不论是象形文字中的单字还是拼音文字

中的字母都是用图形来表示的bull 在计算机里文字的表示 输出(显示和打

印)涉及ndash 字型ndash 字体ndash 字库

1字型bull 字型指构造和生成字形的方法一般可分为

ndash 点阵字 DOS 显卡 ROM 金山 科印特点似位图显示快占空间(字库大)放大后有马赛克效应

bull 显示字母 88 汉字 1616bull 打印 2424 4848 6464

ndash 矢量字单线条用于笔式绘图仪特点字库小算法简单难看

ndash 轮廓字用曲线描绘字的轮廓输出效果好所见即所得(WYSWYG) 可无级放大易实现空心 阴影 填充 变形等各种特效功能轮廓曲线一般采用样条曲线如 TrueType (Apple 1991 Mac OS Microsoft 1992 Windows 31)用的是二次 B 样条 Bezier曲线中文之星 RichWin采用的是三次 B 样条 Bezier曲线

字型种类

2字体bull 字体指字的形状风格如

ndash 汉字的

ndash 英文的

宋体楷体黑体仿宋

行楷隶书新魏幼圆

Times New Roman Arial Narrow Courier New

常用汉字字体bull 宋体mdashmdash宋体来自于北宋时雕版刻书所采用的欧体字(唐朝欧阳询体)宋体字的横顿拉捺挑钩别具特色间架平正疏密适中字体秀丽遒劲但笔画横细竖粗适合于刀刻不宜于手写现在宋体广泛用于印刷常来表现文档的正文

bull 仿宋体mdashmdash 1920年钱塘的丁辅之与丁善之等人将明代以后盛行的方廓形字体加以改造创造出长形和方形的聚珍仿宋后来演化为现在的仿宋体仿宋体比较接近于手写体为宋体和楷体的折中是采用的宋体的结构和楷体的笔法而成现常来表现打印文件以及文档的摘要和注释等

bull 黑体mdashmdash黑体是适应工艺美术的发展而出现的一种等线体是从日本引进的黑体的结构与宋体没有什么差别只是其笔画粗细一致健实粗壮主要用于文档的标题和重点及标语广告等方面

bull 楷体mdashmdash楷体源于楷书楷体的笔画圆浑笔调灵活结构端正美观但不宜于木板雕刻所以直到清末西洋的石板印刷术传入后才开始广泛用于印刷现代的楷体创造于 20世纪的二三十年代主要用于文档的正文(多用于中小学教材)也可用于工艺美术等方面

3字库bull 字库为一种文字的某一字体的所有字符的集合一般存放在一个磁盘文件中

bull 由于象形文字中单字的数量大(成千上万)而拼音文字中字母的数量小(不到一百个)所以字库的大小有很大的差别

bull 为了使文档界面丰富多彩常见的字处理软件都支持多种字体带有众多字库

4点阵字型的国家标准bull 我国已经公布了若干字体的点阵字型之国家标准

ndash GB 50071-19852001 信息技术 汉字编码字符集(基本集) 24 点阵字型

ndash GB 50072-19852001 信息技术 汉字编码字符集(辅助集) 24 点阵字型

ndash GB 5199-19862001 信息技术 汉字编码字符集(基本集) 16 点阵字型 宋体

ndash GB 6345-19862001 信息技术 汉字编码字符集(基本集) 32 点阵字型 宋体

ndash GB 12041-2001 信息技术 汉字编码字符集(基本集) 48点阵字型 宋体

ndash GB 17698-1999 信息技术 通用多八位编码字符集( I 区) 汉字 16 点阵字型

232 语音合成bull 文字的声音输出主要使用的是语音合成的技术bull 语音合成功能是ldquo文rarr语rdquo转换bull 文语转换 TTS (Text-To-Speech) 是将文本形式的信息转换成自然语音的一种技术其最终目标是使计算机输出清晰而又自然的声音

bull 英语的语音合成在上世纪 80年代就早已成熟而中文 汉语的合成现在也趋于成熟并有了广泛的应用(如汽车导航仪智能手机等)

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 35: 第一篇  媒体

两级汉字bull GB 2312 将其收录的六千多个汉字分成两个级别bull 一级汉字有 3 755 个都为使用频率高的常用汉

字为便于检索像字典那样将这些汉字按拼音字母顺序排列(同音字再按笔顺的横竖撇捺点折序排列)

bull 二级汉字有 3 008 个大部分较生僻不易掌握读音所以按部首顺序排列(同部首的字按笔画数排列同笔画数的字再按笔顺排列)

编码方案bull GB 2312 对所有图形字符(包括汉字和非汉字图符)都采用两个字节表示每个字节的低七位用于编码最高位全为 1 这样可以兼容 ASCII 编码(字节的最高位全为 0 )

bull 虽然在一个字节中最高位为 1 的符号位置有 128 个但从前面 GB 2311 的分析可知为了与 ASCII 的代码结构兼容保留了( 32 + 2 = ) 34 个控制符位置最后只有( 128 ndash 34 = ) 94 个符号位可供图形字符编码使用

bull 图形字符在代码表中的位置用区位码表示将码表分成94 个区对应于编码的第一个字节取值 0x21~0x7E 每个区又分成 94 个位对应于编码的第二个字节取值 0x21~0x7E (参见表 2-6 )

bull 例如ldquo中山大学rdquo的编码为中 (0xD6D0) 山 (0xC9BD) 大 (0xB4F3) 学 (0xD1A7)

GB 2312-80 字符集结构 20 21 22 helliphellip 7D 7E 7F

位号

区号

1 2 helliphellip 93 94

20

21~29 1~9 非汉字图符(682个)

2A~2F 10~15 空白区

30~57 16~55 一级汉字(3 755个)

58~77 56~87 二级汉字(3 008个)

78~7E 88~94 空白区

7F

第 1 区的部分非汉字图符

1区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 middot ˉ ˇ uml 々 mdash ~ hellip lsquo rsquo ldquo

17~32 rdquo 〔 〕 〈 〉 《 》 「 」 『 』 〖 〗 【 】 plusmn

33~48 times divide ∶ and or sum prod cup cap isin ∷ radic perp ∥ ang

49~64 ⊙ int ∮ equiv ≌ asymp ∽ prop ne ltu gtu le ge infin ∵ there4

65~80 deg prime Prime $ curren ¢ £ permil sect

81~94 rarr larr uarr darr

第 16 区的部分一级汉字

16区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 啊 阿 埃 挨 哎 唉 哀 皑 癌 蔼 矮 艾 碍 爱 隘 鞍

17~32 氨 安 俺 按 暗 岸 胺 案 肮 昂 盎 凹 敖 熬 翱 袄

33~48 傲 奥 懊 澳 芭 捌 扒 叭 吧 笆 八 疤 巴 拔 跋 靶

49~64 把 耙 坝 霸 罢 爸 白 柏 百 摆 佰 败 拜 稗 斑 班

65~80 搬 扳 般 颁 板 版 扮 拌 伴 瓣 半 办 绊 邦 帮 梆

81~94 榜 膀 绑 棒 磅 蚌 镑 傍 谤 苞 胞 包 褒 剥

第 56 区的部分二级汉字

56区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 亍 丌 兀 丐 廿 卅 丕 亘 丞 鬲 孬 噩 丨 禺 丿 匕

17~32 乇 夭 爻 卮 氐 囟 胤 馗 毓 睾 鼗 丶 亟 鼐 乜 乩

33~48 亓 芈 孛 啬 嘏 仄 厍 厝 厣 厥 厮 靥 赝 匚 叵 匦

49~64 匮 匾 赜 卦 卣 刂 刈 刎 刭 刳 刿 剀 剌 剞 剡 剜

65~80 蒯 剽 劂 劁 劐 劓 冂 罔 亻 仃 仉 仂 仨 仡 仫 仞

81~94 伛 仳 伢 佤 仵 伥 伧 伉 伫 佞 佧 攸 佚 佝

3汉字编码的辅助集bull 除了GB 2312基本集的 6 763 个简体汉字外国家标

准还给出了汉字编码字符集的多个辅助集bull 第二 四辅助集分别增加了 7 237 7 039 个简体汉字bull 第一和三 五辅助集则分别是与基本集和第二 四辅助集所对应的繁体汉字字符集的国家标准

bull 基本集加上辅助集共有 21 039 个简体汉字和 21 142个繁体汉字

bull 繁体汉字之所以多一些是因为在第一辅助集中有时几个繁体字对应一个简体字因此比基本集多出 103 个汉字

bull 基本集和辅助集的代码页之间靠其编码字节的最高位来区分

编码字符的分页标志

双字节汉字编码的页面结构第二字节 列号

行号 0 middot middot middot 32 33 34 helliphellip 125 126 127 128middot middot 160 161 162 helliphellip 254 255 0 middot middot 32

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

33 34 middot middot middot 126

1 2 middot middot middot 94

第四五辅助集 (7 039个汉字)

127

(兼容ASCII)

128 middot middot 160

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

161 162 middot middot middot 254

1 2 middot middot middot 94

第二三辅助集 (7 237个汉字)

1 2 middot middot middot 94

基本集第一辅助集 (6 763 6 866个汉字) (682个非汉字图符)

第一字节

255

4 Big5

bull 除了中国大陆使用的简体汉字外在台湾香港澳门和海外华侨社区使用的是传统的繁体汉字

bull 简体汉字使用 GB (国标)系列编码标准bull 繁体汉字一般使用的是 Big5内码(大五码)即台湾的ldquo资讯工业策进会rdquo发布的《标准交换码 (Ⅲ码 )》收录汉字 13 053 个

bull Big5内码是 1984年由台湾财团法人资讯工业策进会与宏碁 (Acer) 神通 (MiTAC) 佳佳零壹 (Zero One) 大众 (FIC) 等五大软件公司联合推出故称为大五码

BIG5 的代码空间低位字节

00 hellip 3F 40 hellip 7E 7F hellip A0 A1 hellip FE FF

高位字节

00middot

80

81middot

A0用户定义区 用户定义区

A1A2A3

非汉字图符 非汉字图符

A4middot

C6常用汉字 常用汉字

C7C8

用户定义区 用户定义区

C9middot

F9次常用汉字 次常用汉字

FAmiddot

FE用户定义区 用户定义区

FF

5少数民族文字编码bull 中国共有 56 个民族除了汉回满族一般使用汉语外其他少数民族大多有自己的民族语言

bull 我国各民族使用的 50 多种文字可以分为字母式结构文字和非字母式结构文字两大类ndash 字母式结构的有拉丁文斯拉夫文蒙古文维吾尔文哈萨克文藏文和朝鲜文等字母式

ndash 非字母式结构的有汉字象形文字图画文字和音节文字等bull 各民族文字的书写方向也有不同

ndash 壮文藏文朝鲜文彝文等的字从左到右行从上到下ndash 维吾尔文哈萨克文和柯尔克孜文等的字从右到左行从上

到下ndash 蒙古文和满文的字从上到下行从左到右ndash 汉字的书写方向有两种

bull 大陆的简体汉字的字从左到右行从上到下bull 港台与古旧书的繁体汉字的字从上到下行从右到左

国家标准bull 下面按发布时间列出若干已经公布的我国少数民族文字

编码集的国家标准(这些字符集一般分成两类对字母式结构文字采用八位编码对非字母式结构文字采用双字节编码)ndash GB 8045-87《信息处理交换用蒙古文七位和八位编码图形字

符集》收 82 个蒙古文字母和 12 个其他符号共 94 个字符ndash GB 12050-89《信息处理交换用维吾尔文编码图形字符集》收 32 个维吾尔文字母一个维吾尔文复合字符和 37 个其他符号共 70 个字符

ndash GB 12052-89《信息交换用朝鲜文编码字符集》收 5297 个朝鲜文字和 682 个其他符号(与 GB 2132同)共 5 979 个字符

ndash GB 13134-91《信息交换用彝文编码字符集》收 1165 个彝文字符和 688 个其他符号共 1853 个字符

ndash GB 16959-1997《信息技术 信息交换用藏文编码字符集 基本集》收 41 个藏文字母 36 个藏文主字 13 个元音字符12 个语音字符 10 个藏文数字 10 个半值符一个控制用连接符和 46 个其他藏文图形符号共 169 个字符

6 GB 13000bull GB 13000 是与 ISOIEC 10646 等价的国际通用编码字符集标准收汉字 2万多个但是与 GB 2312 和 GBK 不兼容

bull 1993年 5月 ISO 与 IEC 联合推出了可用于世界各种文字的通用编码字符集的国际标准的第 1部分ndash ISOIEC 10646-11993 Information technology -- Universal Multiple-Octe

t Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane (信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

ndash 该标准收字符 96万个几乎涵盖世界上的所有文字其中包含汉字 21 003 个

bull 1993年底我国推出了等同于国际标准 ISOIEC 1064611993 的强制性国家标准 ndash GB 130001-93《信息技术 通用多八位编码字符集( UCS ) 第一部分

体系结构与基本多文种平面》ndash 该标准于 1993年 12月 24日被国家技术监督局批准 1994年 8月 1日起实施

GB 13000 的主要特点

bull 世界各语言文种字符统一编码避免冲突便于国际交流

bull 编码空间宽阔连续每个图形字符的编码唯一(一字一码)不再存在兼容性问题

bull 按文种而不是按语言编码避免重复和浪费(如中日韩汉字的统一编码 CJK )

bull 与 GB 2312 和 GBK 不兼容

体系结构bull UCS 的体系结构是基于所谓ldquo多八位rdquo的而ldquo八位rdquo就是一个字节ldquo多八位rdquo就是多个字节

bull UCS采用 4 个字节来表征组面行位的四维空间bull 整个 UCS空间包含 128 个组( 0x00组 ~0x7F组)每组有 256 个平面( 0x00 平面 ~0xFF 平面)每个平面有 256 行每行又由 256 个字位构成

bull UCS共有( 128 times 256 = ) 32 768 个平面每个平面有( 256 times 256 = ) 65 536 个字位每个字位对应于一个字符的编码

bull 目前的编码只限于 00组已经定义的平面有 00组的00 平面mdashmdash称之为基本多文种平面 BMP ( Basic Multilingual Plane ) 及若干辅助平面

UCS 的全部编码空间

每个平面256times256 个

字位

00组 00 平面

00组 FF 平面

01组 00 平面

7F组 00 平面00

01组

7F组

UCS 的 00组

BMPbull BMP = Basic Multilingual Plane 基本多文种平面bull BMP 用作双八位编码字符集称之为 UCS-2 它被

分成四个区ndash A- 区(字位 0x0000~0x4DFF 有 19 903 个字位)用于

字母文字音节文字以及各种符号ndash I- 区(字位 0x4E00~0x9FFF 共 20 992 个字位)用于中日韩统一汉字( CJK )

ndash O- 区(字位 0xA000~0xDFFF 共 16 384 个字位)保留未来标准化用

ndash R- 区(字位 0xE000~0xFFFD 共 8 190 个字位)为 BMP 的限制使用区包括专用字符变形显现形式及兼容字符

BMP总貌

A-区

00~33 拼音文字(见下页)

34~3D 朝鲜文

3E~44 朝鲜文补充 -A

45~4D 朝鲜文补充 -B

I-区 4E~9F CJK统一汉字O-区 A0~DF

R-区

E0~F8 专用区

F9~FA CJK兼容汉字FB 拼音文字变形显现形式

FC~FD 阿拉伯文变形显现形式 -A

FE半形组合用标志

CJK兼容形式

小写变体

阿拉伯文变形显现形式 -B

FF 半形及全形字符 特殊字符

BMP 的0x00~0x33

行字母文字区

00 基本拉丁文 拉丁文-1补充

01 拉丁文扩充-A 拉丁文扩充-B

02 拉丁文扩充-B 国际音标扩充 进格修饰字符

03 组合用发音符 基本希腊文 希腊符号及哥普特文

04 西里尔文

05 美亚尼亚文 希伯来文(基本和扩充)

06 基本阿拉伯文 阿拉伯文扩充

07

08

09 梵文 孟加拉文

0A 锡克教文 古吉拉特文

0B 奥利雅文 泰米尔文

0C 泰卢固文 卡纳达文

0D 德拉维族文

0E 泰文 老挝文

0F

10 格鲁吉亚文

11 朝鲜文字母

12~1D

1E 拉丁文扩充增补

1F 希腊文扩充

20 广义标点 上下标 货币符号 符号组合用区分标志

21 类似字母的符号 数字形式 箭头

22 数学运算符

23 零杂技术用符号

24 控制图符 光学识别符 带括号的字母数字

25 制表符 方块元素 几何图形符

26 零杂符号

27 示意符等

28~2F

30 CJK符号和标点 平假名 片假名

31 注音 朝鲜文兼容字母 CJK零杂字符

32 带括号的CJK字母及月份

33 CJK兼容字符

留作将来标准化用

非图形字符

表示形式bull GB 13000提供了字符编码表示的两种替代使用的形式

ndash 双八位 BMP 形式( UCS-2 )mdashmdash允许使用 BMP 中的字符且每个字符用两个字节表示

ndash 肆八位正则形式( UCS-4 )mdashmdash允许使用 GB 13000 中的全部字符且每个字符用四个字节表示

bull 除了 UCS-24外还有另外两种变形的表示形式ndash UTF-8 (单字节 ~ 多字节)ndash UTF-16 (双字节和 4 字节与 UCS-2 等价)ndash 目前在工业上的实现均为 UTF-16 ( UCS-2 )和 UTF-8ndash UTF = Unicode UCS Transformation Format 统一码 UC

S转换格式bull 关于统一码我们会在下一小节详细介绍

7 GBK 与 GB 18030bull 由于 GB 13000 标准与 GB 2312 标准的字符编码不兼容作为过渡在国家信息技术标准化委员会的主持下制定了与 GB 2312兼容的《汉字内码扩展规范( GBK )》( K 为扩展的ldquo扩rdquo字的拼音首字母)并于 1995年 12月 15日由原国家技术监督局标准司联合原电子工业部科技与质量监督司作为指导性技术规范发布实施

bull 2000年 GBK又被国家标准 GB 18030-2000《信息技术 信息交换用汉字编码字符集 基本集的扩充》所代替该标准收汉字 2万 7千个

bull 与 GB 2312 一样 GB 18030 也为中国的强制性国家标准微软公司的 Windows XPVista78 中文版与苹果公司的 Mac OS X 和 iOS 谷歌公司的 Android (安卓)等操作系统已经全面支持 GBK

GB 18030 的码位范围分布

字节数 码位空间 码位数目

单字节 0x00~0x7F 128

双字节第 1字节 第 2字节

23 9400x81~0xFE

0x40~0x7E 0x80~0xFE

四字节第 1字节 第 2字节 第 3字节 第 4字节

1 587 6000x81~0xFE 0x30~0x39 0x81~0xFE 0x30~0x39

GB 18030的

总体结构图

收录字符bull 单字节部分mdashmdash收录了GBT 11383 的 0x00~0x7F 全部 128 个字符(似 ASCI

I )bull 双字节部分mdashmdash收录内容如下 (21 003 个汉字和 884 个符号共 21 887 个字符 )

ndash GB 130001-93 的全部 CJK 统一汉字字符 20 902 个( GB 2312 的编码汉字在双字节 2 区其他 CJK 统一汉字在双字节 34 区)

ndash GB 130001-93 的 CJK兼容区挑选出来的 21 个汉字ldquo郎凉秊helliphellip﨨﨩rdquo( 0xFD9C~0xFDA0 和 0xFE40~0xFE4F )

ndash GB 130001-93 中收录而 GB 2312未收录的台湾地区使用的图形字符 139 个ldquoˊˋ˙helliphelliprdquo( 0xA840~0xA895 和 0xA940~0XA988 )

ndash GB 130001-93收录的其他字符 31 ( 13)个(在双字节 5 区)ndash GB 2312-80 中的非汉字字符 682 个( 0xA1A1~0xA9EF )ndash GB 12345-90 的竖排标点符号 19 ( 29)个ldquo︵︶︹helliphellip︳︴rdquo( 0xA6D9~0xA6

F5 )ndash GB 2312-80未收录的 10 个小写罗马数字ldquoⅰⅱⅲhelliphellipⅸⅹrdquo( 0xA2A1~ 0xA2A

A )ndash GB 2312-80未收录的带音调的汉语拼音字母 5 ( 4)个ldquo ńňǹrdquo 以及 ɑ 和 ɡ ( 0

xA8BB~0xA8C0 )ndash 汉字数字零ldquo〇rdquo (0xA996) 和欧元符ldquoeurordquo (0xA2E3)ndash 表意文字描述符 13 个ldquohelliphelliprdquo( 0xA989~0xA995 )ndash 对 GB 130001-93增补的汉字和部首 构件 80 个ldquohelliphellip䶮rdquo( 0xFE50~ 0x

FEA0 )bull 四字节部分mdashmdash收录了上述双字节字符之外的包括 CJK 统一汉字扩充 A 在内

的 GB 130001-93 中的全部字符

GB 18030双字节部分的码位安排

类别 区名 码位范围 码位数 字符数 内容

符号区双字节 1区 A1A1~A9FE 846 718

GB 2312非汉字字符等

双字节 5区 A840~A9A0 192 166 台湾图符等

汉字区双字节 2区 B0A1~F7FE 6768 6763 GB 2312汉字双字节 3区 8140~A0FE 6080 6080 CJK统一汉字双字节 4区 AA40~FEA0 8160 8160 CJK统一汉字等

用户自定义区双字节用户区 1 AAA1~AFFE 564

用户自定义字符双字节用户区 2 F8A1~FEFE 658

双字节用户区 3 A140~A7A0 672

GB 18030双字节部分的编码空间结构图 尾字节

0x40larr――rarr0x7E 0x80larr――rarr0xA0 0xA1larr――――――――――――rarr0xFE

0x81 uarr darr

0xA0

0xA1 uarr darr

0xA7

0xA8 0xA9

首字节

0xAA uarr | | | | | | | | | | darr

0xFE

双字节 3区

汉字区6 080个码位

双字节用户区 3

用户自定义区672个码位

双字节 5区 图形符号区192个码位

双字节 4区

汉字区8 160个码位

双字节 1区

图形符号区564个码位

双字节 2区

汉字区6 768个码位

双字节用户区 1 用户自定义区564个码位

双字节用户区 2 用户自定义区658个码位

223 国际通用字符编码

bull Unicode (统一码)是由多语言软件制造商组成的统一码协会( httpwwwUnicodeorg)所制定一种国际字符的编码标准

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull 本节主要介绍这两种关系密切的主流国际字符编码标准的来历编码方案各自特点与相互关系

1 Unicode 统一码bull 发展历史

ndash 1987年施乐( Xerox )公司的 Joe Becker 与 Lee Collins 和苹果( Apple )公司的 Mark Davis 等人开始讨论统一编码 1987年 12月 Joe Becker造词 Unicode (统一码)含义为ldquo unique universal and uniform character encodingrdquo (单一通用统一的字符编码) 1989年 2月开始定期召开统一码会议 1989年 9月公布 Unicode草案

ndash 1991年 1月 3 日由 Xerox Apple Sun IBM Aldis Microsoft 等公司出资在美国加州成立了统一码协会( Unicode Consortium )并由协会设立非盈利性的统一码公司( Unicode Inc )后来 HP Adobe Borland Digital Lotus Novell 等公司也纷纷加入 1991年 1月成立统一码技术委员会 UTC 并制定了其规程

ndash 1991年 2月在 Ed Hart 的推动下进行了ldquo统一码对 10464 国际标准草案 1rdquo 的对话Unicode 与 ISOIEC 10646开始走向融合

ndash 1991年 8月发布 Unicode 标准 10版的第 1卷(体系结构非表意字符) 1992年6月发表 Unicode 10版的第 2卷(表意字符) 1993年 6月发布 Unicode 11版与 1993年 5月公布的 ISOIEC 10646-11993 实现了合并

ndash 1996年 7月发布 Unicode 20版ndash 1999年 9月发布 Unicode 30版ndash 2003年 4月发布 Unicode 40版(对应于 ISOIEC 106462003 ) 2004年 3月 31日发布 Unicode 401版 2005年 3月 31日发布 Unicode 410版

ndash 2006年 7月 14日发布 Unicode 50版 2008年 4月 4日发布 Unicode 51版 2009年 12月 22日发布 Unicode 52版

ndash 2010年 10月发布 Unicode 60版 2012年 1月发布 Unicode 61版(对应于 ISOIEC 106462012 ) 2012年 9月推出 Unicode 62版 2013年 9月推出 Unicode 63版

ndash 2014年 6月 16日发布 Unicode 70版 ndash 2015年 6月 17日发布 Unicode 80版

字符集bull Unicode 字符集的空间分成双字节的基本多语言平面 (Basic Multilingual Pla

ne BMP) 和 4 字节的辅助多语言平面 (Supplementary Multilingual Plane SMP) 两种

bull BMPndash Unicode 的基本平面或基本多语言平面 BMP 对应于 ISOIEC 10646-1 的第 00组的 00 平面( BMP )即 Unicode 与 ISOIEC 10646 的 BMP 中的字符编码完全一致

bull SMPndash 鉴于 Unicode 原有的 16位元空间不足以应用从 Unicode 31版本开始设立了 16 个辅助平面使 Unicode 的可使用空间由六万多字增至约一百万字

ndash 原有的 Unicode双字节空间称为基本平面或基本多语言平面 BMP 辅助多语言平面 SMP 字符要用 4 字节来储存

ndash 第一辅助平面摆放拼音文字(主要为现时已不再使用的文字)及符号范围在 U+10000 - U+1FFFD

ndash 第二辅助平面又称为表意文字补充平面 (Supplementary Ideographic Plane 简称 SIP) 现时摆放ldquo中日韩统汉字扩展 B 区rdquo共 43253 个汉字范围在 U+20000 - U+2FFFD

ndash 第三至十三辅助平面尚未使用ndash 第十四辅助平面又称为特殊用途补充平面 (Supplementary Special-purpose Pl

ane 简称 SSP) 摆放 Language tags 和 Variation Selectors 它们都是控制字符范围在 U+E0000 - U+E01FF

ndash 第十五至十六辅助平面都是私人使用区它们的范围是 U+F0000 - U+FFFFD 及 U+100000 - U+1000FD

bull Unicode 字符集的具体编码方式参加第 4小节ldquo 4 UTFrdquo

2 ISOIEC 10646

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull ISOIEC 10646 标准由 ISO 与 IEC 联合成立的 ISOIEC JTC1SC2WG2 制定ndash JTC 1 ( Joint Technical Committee 1 on Information

technology ISOIEC信息技术联合技术委员会 1 )负责信息技术方面标准的制定工作

ndash SC 2 ( SubCommittee 2 on Coded character sets 编码字符集分会 2 )下的 WG 2 ( Working Group 2 on Universal coded character set 通用编码字符集工作组 2 )负责制定国际通用字符编码标准即后来公布的 ISOIEC 10646

发展历史bull 1984年 ISO 的一些会员国发起制定新的国际字符编码标准同年 4月 ISO

与 IEC 联合成立 ISOIEC JTC1SC2WG2 1987年 3月制定出编码架构1992年 6月投票通过第二版国际标准草案

bull 1993年 5月推出 10646 标准时将内容分成两个部分标准首先发布的是其中的第 1 个部分(体系结构与基本多文种平面)的第 1版( Edition 1 ) ISOIEC 10646-11993 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane(信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

bull 2000年 3月推出 10646 标准第一个部分的第 2版( Edition 2 ) ISOIEC 10646-12000 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane

bull 2001年 10月推出 10646 标准第 2版的第二个部分(辅助平面)的第 1版( Edition 1 ) ISOIEC 10646-22001 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 2 Supplementary Planes

bull 2003年 10月推出的 10646新标准(第 1版 Edition 1 )将老标准中的两个部分标准合并成了一个单一的标准 ISOIEC 106462003 Information technology -- Universal Multiple- Octet Coded Character Set (UCS) 后来又于 2010年 2012年和 2014年分别推出了 ISOIEC 106462010 (第 2版)ISOIEC 106462012 (第 3版)和 ISOIEC 106462014 (第 4版)

UCS 通用字符集bull 通用字符集( Universal Character Set UCS )是

ISOIEC 10646 标准所定义的字符编码方式采用 4字节编码又称为 Universal Multiple-Octet Coded Character Set (通用多八位编码字符集)

bull 通用字符集是所有包括了其他字符集它保证了与其他字符集的双向兼容即如果你将任何文本字符串翻译到 UCS 格式然后再翻译回原编码你不会丢失任何信息

bull UCS 包含了已知语言的所有字符除了拉丁语希腊语斯拉夫语希伯来语阿拉伯语亚美尼亚语格鲁吉亚语还包括中文日文韩文这样的象形文字 UCS 还包括大量的图形印刷数学科学符号

名字与组合字符bull UCS 不仅给每个字符分配一个代码而且赋予了

一个正式的名字表示一个 UCS 或 Unicode值的十六进制数通常在前面加上ldquo U+rdquo 例如ldquo U+0041rdquo代表字符ldquo Ardquo

bull UCS里有些编码点分配给了组合字符组合字符机制允许在任何字符后加上重音符或其他指示标记 这在科学符号中特别有用 比如数学方程式和国际音标字母 可能会需要在一个基本字符后组合上一个或多个指示标记

实现级别bull 并不是所有的系统都需要支持像组合字符这样的的先进

机制因此 ISO 10646 指定了如下三种实现级别ndash 级别 1不支持组合字符和韩语 Hangul Jamo 字符 ( 一种特

别的 更加复杂的韩国文的编码 使用两个或三个子字符来编码一个韩文音节 )

ndash 级别 2类似于级别 1 但在某些文字中允许一列固定的组合字符 (例如 希伯来文 阿拉伯文 Devangari 孟加拉语 果鲁穆奇语 Gujarati Oriya 泰米尔语 Telugo 印 埃纳德语 Malayalam 泰国语和老挝语 ) 因为如果没有最起码的几个组合字符 UCS就不能完整地表达这些语言

ndash 级别 3支持所有的 UCS 字符如可以在任意一个字符上加上一个箭头或 和一个 tilde(颚化符号即字母上面的~ )

编码方式bull UCS 有如下两种编码方式

ndash UCS-2与 Unicode 的 2 字节编码基本一样ndash UCS-4 4 字节编码目前是在 UCS-2 前加

上 2 个全零的字节bull UCS 还有 UTF 编码方式参见下面第 4小节ldquo 4 UTFrdquo

3 Unicode 与 ISOIEC 10646bull 关系

ndash 历史上存在两个独立的尝试创立单一字符集的组织即国际标准化组织( ISO )和多语言软件制造商组成的统一码协会组织( Unicodeorg )前者开发的 ISO 10646项目后者开发的 Unicode项目因此最初制定了不同的标准

ndash 1991年前后两个项目的参与者都认识到世界不需要两个不兼容的字符集于是它们开始合并双方的工作成果并为创立一个单一编码表而协同工作

ndash 从 Unicode20开始 Unicode采用了与 ISO 10646-1相同的字库和字码 ISO 也承诺 ISO10646 将不会替超出 U+10FFFF 的 UCS-4 编码赋值以使得两者保持一致

ndash 两个项目仍都存在并独立地公布各自的标准但 Unicode协会和 ISOIEC JTC1SC2 都同意保持两者标准的码表兼容并紧密地共同调整任何未来的扩展

异同bull Unicode协会公布的 Unicode 标准包含了 ISO 10646-1 实现级别

3 的基本多文种平面在两个标准里所有的字符都在相同的位置并且有相同的名字

bull ISO 10646 标准就像 ISO 8859 标准一样只不过是一个简单的字符集表它定义了一些编码的别名指定了一些与标准有关的术语并包括了规范说明指定了怎样使用 UCS连接其他 ISO 标准的实现等

bull Unicode 标准额外定义了许多与字符有关的语义符号学并详细说明了绘制某些语言(如阿拉伯语)表达形式的算法处理双向文字(比如拉丁文和希伯来文的混合文字)的算法排序与字符串比较所需的算法等等

bull 考虑到 Unicode 标准有一个易记的名字既便宜又包括更多的辅助信息因而它使用得更广泛然而

bull 一般认为用于打印 ISO 10646-1 标准的字体在某些方面的质量要高于用于打印 Unicode 20 的专业字体设计者总是被建议说要两个标准都实现但一些提供的样例字形有显著的区别 ISO 10646-1 标准同样使用四种不同的风格变体来显示表意文字如中文日文和韩文 (CJK) 而 Unicode 20 的表里只有中文的变体

4 UTFbull Unicode 和 UCS 都是一个字符集可以看作为内码bull UTF ( UnicodeUCS Transformation Format 统一码

通用字符集转换格式)是一种编码方式它的出现是因为 Unicode 和 UCS 不适宜在某些场合直接传输和处理

bull UCS 和 Unicode 只是分配整数给字符的编码表现在存在好几种将一串字符表示为一串字节的方法(如高或低位字节在前)

bull 最显而易见的两种方法是将 UCS 和 Unicode 文本存储为 2 个 或 4 个字节序列的串这两种方法的正式名称分别为 UCS-2 和 UCS-4

bull 常用的 UTF具体编码方式有 UTF-8 UTF-16 和 UTF-32

UTF-8

bull UTF-8 是 UTF 的一种具体编码方式在 ISO 10646-1 的附录 R 和 IETF 的 RFC 2279 里定义

bull 由于要使文档中的文字与 ASCII兼容故 UTF-8 选择了使用可变长度字节来储存 Unicode 和 UCS 例如ndash ASCII 字母继续使用 1 字节储存ndash 重音文字希腊字母或西里尔字母等使用 2 字节来储存ndash 常用的汉字就要使用 3 字节ndash 辅助平面字符则使用 4 字节ndash 即 ASCII 不作变换其他字符做变长编码每个字符 1~4 字节

bull UTF-8 通常作为外码bull 在 UTF-8 文件的开首很多时都放置一个 U+FEFF 字符

(UTF-8 以 EF BB BF 代表 ) 以显示这个文字档案是以UTF-8 编码

UTF-8 的优点bull 与 CPU 字节顺序无关可以在不同平台之间交流

bull 容错能力高任何一个字节损坏后最多只会导致一个编码码位损失不会链锁错误 ( 如 GB 码错一个字节就会整行乱码 )

UTF-8 的缺点bull UTF-8 使用可变长度字节储存使计算机程序设计变得复杂 (故此在计算机程序或操作系统内部多采用 UCS-2 编码 )

bull 在旧式的中文日文及朝鲜文编码之中每字符都使用 2 字节储存而 UTF-8 须使用 3 字节 (采用 UTF-16 编码则可只使用 2字节储存 )

bull 泰语以往使用的 ISO 8859-11 每字符只使用 1 字节储存而 UTF-8 须使用 3 字节

UTF-8储存的多字节串字符bull U-00000000 - U-0000007F 0xxxxxxx bull U-00000080 - U-000007FF 110xxxxx 10xxxxxx

bull U-00000800 - U-0000FFFF 1110xxxx 10xxxxxx

10xxxxxx bull U-00010000 - U-001FFFFF 11110xxx 10xxxxx

x 10xxxxxx 10xxxxxx bull 在多字节串中第一个字节的开头ldquo 1rdquo 的数目就

是整个串中字节的数目bull 每个使用 UTF-8储存的字符除了第一个字节外其余字节的头两个位元都是以 10 开始使文字处理器能够较快地找出每个字符的开始位置

UTF-16bull UTF-16 是 UTF 的另一种具体编码方式在 ISO 1064

6-1 的附录 Q 和 IETF 的 RFC 2781 里定义bull UTF-16 是变长码( 2 或 4 字节)大致相当于 20位编码值在 0 到 0x10FFFF 之间基本上就是 Unicode 编码的实现 UTF-16 与 CPU 字序有关但因为最省空间常作为网络传输的外码 UTF-16 是 Unicode 的完美编码

bull lt0x10000 的直接用其对应的 16位整数编码位于 0x10000 ~ 0x10FFFF 之间的用 0xD800~0xDBFF 的 16位整数后跟 0xDC00~0xDFFF 的 16位整数的 4 字节编码 gt 0x10FFFF 的不能用 UTF-16 表示

bull 在 Unicode 的 BMP 中定义的字符(无论是拉丁字母汉字或其他文字或符号)一律使用 2 字节存储而在辅助平面定义的字符则以两个 2 字节的值来存储

UTF-16 的特点bull UTF-16比起 UTF-8 的好处在于大部分字符都以固定长

度的 2 字节存储但 UTF-16却无法相容于 ASCII 编码bull UTF-16 有两种编码模式即大尾序( big Endian 高位字节在前)和小尾序( little Endian 高位字节在后)储存形式(一般來說以 Macintosh 制作和存储的文字使用大尾序格式以 Microsoft 或 Linux 制作和存储的文字使用小尾序格式)

bull 为了弄区分 UTF-16 文件的大小尾序在 UTF-16 文件的开头都会放置一个 U+FEFF 字符作为字节顺序标记 (UTF-16LE 以 FF FE代表 UTF-16BE 以 FE FF代表 ) 以显示该文档是以 UTF-16 编码的

UTF-32

bull UTF-32 仅使用了 Unicode范围 (0 到 0x10FFFF) 的 32位编码相当于 UCS-4 的子集

bull 由于 Unicode 和 ISOIEC 10646 的编码和结构与前面讲过的 GB 13000 类似或等价这里就不再做详细的介绍

5支持bull 现在 UnicodeUCS 已经获得了十分广泛的支

持ndash网络与浏览器(如 HTML 4050 XML 与 IE

Safari Netscape Firefox Chrome Opera Edge 等)

ndash操作系统(如 Windows NT2000XPVista7810 Mac OS X iOS Android和 Linux )

ndash 编程语言新版本(如 CC++JavaObjective-CC Swift 等)

Unicode 代码的浏览器显示代码 字符标准名称 (英语 )

浏览器的显示

amp65 大写拉丁字母 A A

amp223 小写拉丁字母 Sharp S szlig

amp254 小写拉丁字母 Thorn thorn

amp916 大写希腊字母 Delta Δ

amp1049 大写斯拉夫字母 Short I Й

amp1511 希伯来字母 Qof ק

amp1605 阿拉伯字母 Meem م

amp3671 泰文数字 7 ๗amp4688 埃塞俄比亚音节文字 Qha ቐ

amp12354 日语平假名 A あamp12450 日语片假名 A アamp21494 简体汉字 叶 叶amp33865 繁体汉字 葉 葉amp50685 韩国音节文字 Yeob 엽

23 文字输出bull 文字输出是指将计算机内的字符编码通过计算机的输出设备(如显示器打印机喇叭)展现出所对应字符的图形或声音供人们阅读或聆听

bull 本节主要介绍文字图示输出的字形技术bull 文字声音输出属于语音合成只在本节的末尾作简单的介绍

231 字形技术bull 文字 = 图形bull 不论是象形文字中的单字还是拼音文字

中的字母都是用图形来表示的bull 在计算机里文字的表示 输出(显示和打

印)涉及ndash 字型ndash 字体ndash 字库

1字型bull 字型指构造和生成字形的方法一般可分为

ndash 点阵字 DOS 显卡 ROM 金山 科印特点似位图显示快占空间(字库大)放大后有马赛克效应

bull 显示字母 88 汉字 1616bull 打印 2424 4848 6464

ndash 矢量字单线条用于笔式绘图仪特点字库小算法简单难看

ndash 轮廓字用曲线描绘字的轮廓输出效果好所见即所得(WYSWYG) 可无级放大易实现空心 阴影 填充 变形等各种特效功能轮廓曲线一般采用样条曲线如 TrueType (Apple 1991 Mac OS Microsoft 1992 Windows 31)用的是二次 B 样条 Bezier曲线中文之星 RichWin采用的是三次 B 样条 Bezier曲线

字型种类

2字体bull 字体指字的形状风格如

ndash 汉字的

ndash 英文的

宋体楷体黑体仿宋

行楷隶书新魏幼圆

Times New Roman Arial Narrow Courier New

常用汉字字体bull 宋体mdashmdash宋体来自于北宋时雕版刻书所采用的欧体字(唐朝欧阳询体)宋体字的横顿拉捺挑钩别具特色间架平正疏密适中字体秀丽遒劲但笔画横细竖粗适合于刀刻不宜于手写现在宋体广泛用于印刷常来表现文档的正文

bull 仿宋体mdashmdash 1920年钱塘的丁辅之与丁善之等人将明代以后盛行的方廓形字体加以改造创造出长形和方形的聚珍仿宋后来演化为现在的仿宋体仿宋体比较接近于手写体为宋体和楷体的折中是采用的宋体的结构和楷体的笔法而成现常来表现打印文件以及文档的摘要和注释等

bull 黑体mdashmdash黑体是适应工艺美术的发展而出现的一种等线体是从日本引进的黑体的结构与宋体没有什么差别只是其笔画粗细一致健实粗壮主要用于文档的标题和重点及标语广告等方面

bull 楷体mdashmdash楷体源于楷书楷体的笔画圆浑笔调灵活结构端正美观但不宜于木板雕刻所以直到清末西洋的石板印刷术传入后才开始广泛用于印刷现代的楷体创造于 20世纪的二三十年代主要用于文档的正文(多用于中小学教材)也可用于工艺美术等方面

3字库bull 字库为一种文字的某一字体的所有字符的集合一般存放在一个磁盘文件中

bull 由于象形文字中单字的数量大(成千上万)而拼音文字中字母的数量小(不到一百个)所以字库的大小有很大的差别

bull 为了使文档界面丰富多彩常见的字处理软件都支持多种字体带有众多字库

4点阵字型的国家标准bull 我国已经公布了若干字体的点阵字型之国家标准

ndash GB 50071-19852001 信息技术 汉字编码字符集(基本集) 24 点阵字型

ndash GB 50072-19852001 信息技术 汉字编码字符集(辅助集) 24 点阵字型

ndash GB 5199-19862001 信息技术 汉字编码字符集(基本集) 16 点阵字型 宋体

ndash GB 6345-19862001 信息技术 汉字编码字符集(基本集) 32 点阵字型 宋体

ndash GB 12041-2001 信息技术 汉字编码字符集(基本集) 48点阵字型 宋体

ndash GB 17698-1999 信息技术 通用多八位编码字符集( I 区) 汉字 16 点阵字型

232 语音合成bull 文字的声音输出主要使用的是语音合成的技术bull 语音合成功能是ldquo文rarr语rdquo转换bull 文语转换 TTS (Text-To-Speech) 是将文本形式的信息转换成自然语音的一种技术其最终目标是使计算机输出清晰而又自然的声音

bull 英语的语音合成在上世纪 80年代就早已成熟而中文 汉语的合成现在也趋于成熟并有了广泛的应用(如汽车导航仪智能手机等)

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 36: 第一篇  媒体

编码方案bull GB 2312 对所有图形字符(包括汉字和非汉字图符)都采用两个字节表示每个字节的低七位用于编码最高位全为 1 这样可以兼容 ASCII 编码(字节的最高位全为 0 )

bull 虽然在一个字节中最高位为 1 的符号位置有 128 个但从前面 GB 2311 的分析可知为了与 ASCII 的代码结构兼容保留了( 32 + 2 = ) 34 个控制符位置最后只有( 128 ndash 34 = ) 94 个符号位可供图形字符编码使用

bull 图形字符在代码表中的位置用区位码表示将码表分成94 个区对应于编码的第一个字节取值 0x21~0x7E 每个区又分成 94 个位对应于编码的第二个字节取值 0x21~0x7E (参见表 2-6 )

bull 例如ldquo中山大学rdquo的编码为中 (0xD6D0) 山 (0xC9BD) 大 (0xB4F3) 学 (0xD1A7)

GB 2312-80 字符集结构 20 21 22 helliphellip 7D 7E 7F

位号

区号

1 2 helliphellip 93 94

20

21~29 1~9 非汉字图符(682个)

2A~2F 10~15 空白区

30~57 16~55 一级汉字(3 755个)

58~77 56~87 二级汉字(3 008个)

78~7E 88~94 空白区

7F

第 1 区的部分非汉字图符

1区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 middot ˉ ˇ uml 々 mdash ~ hellip lsquo rsquo ldquo

17~32 rdquo 〔 〕 〈 〉 《 》 「 」 『 』 〖 〗 【 】 plusmn

33~48 times divide ∶ and or sum prod cup cap isin ∷ radic perp ∥ ang

49~64 ⊙ int ∮ equiv ≌ asymp ∽ prop ne ltu gtu le ge infin ∵ there4

65~80 deg prime Prime $ curren ¢ £ permil sect

81~94 rarr larr uarr darr

第 16 区的部分一级汉字

16区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 啊 阿 埃 挨 哎 唉 哀 皑 癌 蔼 矮 艾 碍 爱 隘 鞍

17~32 氨 安 俺 按 暗 岸 胺 案 肮 昂 盎 凹 敖 熬 翱 袄

33~48 傲 奥 懊 澳 芭 捌 扒 叭 吧 笆 八 疤 巴 拔 跋 靶

49~64 把 耙 坝 霸 罢 爸 白 柏 百 摆 佰 败 拜 稗 斑 班

65~80 搬 扳 般 颁 板 版 扮 拌 伴 瓣 半 办 绊 邦 帮 梆

81~94 榜 膀 绑 棒 磅 蚌 镑 傍 谤 苞 胞 包 褒 剥

第 56 区的部分二级汉字

56区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 亍 丌 兀 丐 廿 卅 丕 亘 丞 鬲 孬 噩 丨 禺 丿 匕

17~32 乇 夭 爻 卮 氐 囟 胤 馗 毓 睾 鼗 丶 亟 鼐 乜 乩

33~48 亓 芈 孛 啬 嘏 仄 厍 厝 厣 厥 厮 靥 赝 匚 叵 匦

49~64 匮 匾 赜 卦 卣 刂 刈 刎 刭 刳 刿 剀 剌 剞 剡 剜

65~80 蒯 剽 劂 劁 劐 劓 冂 罔 亻 仃 仉 仂 仨 仡 仫 仞

81~94 伛 仳 伢 佤 仵 伥 伧 伉 伫 佞 佧 攸 佚 佝

3汉字编码的辅助集bull 除了GB 2312基本集的 6 763 个简体汉字外国家标

准还给出了汉字编码字符集的多个辅助集bull 第二 四辅助集分别增加了 7 237 7 039 个简体汉字bull 第一和三 五辅助集则分别是与基本集和第二 四辅助集所对应的繁体汉字字符集的国家标准

bull 基本集加上辅助集共有 21 039 个简体汉字和 21 142个繁体汉字

bull 繁体汉字之所以多一些是因为在第一辅助集中有时几个繁体字对应一个简体字因此比基本集多出 103 个汉字

bull 基本集和辅助集的代码页之间靠其编码字节的最高位来区分

编码字符的分页标志

双字节汉字编码的页面结构第二字节 列号

行号 0 middot middot middot 32 33 34 helliphellip 125 126 127 128middot middot 160 161 162 helliphellip 254 255 0 middot middot 32

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

33 34 middot middot middot 126

1 2 middot middot middot 94

第四五辅助集 (7 039个汉字)

127

(兼容ASCII)

128 middot middot 160

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

161 162 middot middot middot 254

1 2 middot middot middot 94

第二三辅助集 (7 237个汉字)

1 2 middot middot middot 94

基本集第一辅助集 (6 763 6 866个汉字) (682个非汉字图符)

第一字节

255

4 Big5

bull 除了中国大陆使用的简体汉字外在台湾香港澳门和海外华侨社区使用的是传统的繁体汉字

bull 简体汉字使用 GB (国标)系列编码标准bull 繁体汉字一般使用的是 Big5内码(大五码)即台湾的ldquo资讯工业策进会rdquo发布的《标准交换码 (Ⅲ码 )》收录汉字 13 053 个

bull Big5内码是 1984年由台湾财团法人资讯工业策进会与宏碁 (Acer) 神通 (MiTAC) 佳佳零壹 (Zero One) 大众 (FIC) 等五大软件公司联合推出故称为大五码

BIG5 的代码空间低位字节

00 hellip 3F 40 hellip 7E 7F hellip A0 A1 hellip FE FF

高位字节

00middot

80

81middot

A0用户定义区 用户定义区

A1A2A3

非汉字图符 非汉字图符

A4middot

C6常用汉字 常用汉字

C7C8

用户定义区 用户定义区

C9middot

F9次常用汉字 次常用汉字

FAmiddot

FE用户定义区 用户定义区

FF

5少数民族文字编码bull 中国共有 56 个民族除了汉回满族一般使用汉语外其他少数民族大多有自己的民族语言

bull 我国各民族使用的 50 多种文字可以分为字母式结构文字和非字母式结构文字两大类ndash 字母式结构的有拉丁文斯拉夫文蒙古文维吾尔文哈萨克文藏文和朝鲜文等字母式

ndash 非字母式结构的有汉字象形文字图画文字和音节文字等bull 各民族文字的书写方向也有不同

ndash 壮文藏文朝鲜文彝文等的字从左到右行从上到下ndash 维吾尔文哈萨克文和柯尔克孜文等的字从右到左行从上

到下ndash 蒙古文和满文的字从上到下行从左到右ndash 汉字的书写方向有两种

bull 大陆的简体汉字的字从左到右行从上到下bull 港台与古旧书的繁体汉字的字从上到下行从右到左

国家标准bull 下面按发布时间列出若干已经公布的我国少数民族文字

编码集的国家标准(这些字符集一般分成两类对字母式结构文字采用八位编码对非字母式结构文字采用双字节编码)ndash GB 8045-87《信息处理交换用蒙古文七位和八位编码图形字

符集》收 82 个蒙古文字母和 12 个其他符号共 94 个字符ndash GB 12050-89《信息处理交换用维吾尔文编码图形字符集》收 32 个维吾尔文字母一个维吾尔文复合字符和 37 个其他符号共 70 个字符

ndash GB 12052-89《信息交换用朝鲜文编码字符集》收 5297 个朝鲜文字和 682 个其他符号(与 GB 2132同)共 5 979 个字符

ndash GB 13134-91《信息交换用彝文编码字符集》收 1165 个彝文字符和 688 个其他符号共 1853 个字符

ndash GB 16959-1997《信息技术 信息交换用藏文编码字符集 基本集》收 41 个藏文字母 36 个藏文主字 13 个元音字符12 个语音字符 10 个藏文数字 10 个半值符一个控制用连接符和 46 个其他藏文图形符号共 169 个字符

6 GB 13000bull GB 13000 是与 ISOIEC 10646 等价的国际通用编码字符集标准收汉字 2万多个但是与 GB 2312 和 GBK 不兼容

bull 1993年 5月 ISO 与 IEC 联合推出了可用于世界各种文字的通用编码字符集的国际标准的第 1部分ndash ISOIEC 10646-11993 Information technology -- Universal Multiple-Octe

t Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane (信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

ndash 该标准收字符 96万个几乎涵盖世界上的所有文字其中包含汉字 21 003 个

bull 1993年底我国推出了等同于国际标准 ISOIEC 1064611993 的强制性国家标准 ndash GB 130001-93《信息技术 通用多八位编码字符集( UCS ) 第一部分

体系结构与基本多文种平面》ndash 该标准于 1993年 12月 24日被国家技术监督局批准 1994年 8月 1日起实施

GB 13000 的主要特点

bull 世界各语言文种字符统一编码避免冲突便于国际交流

bull 编码空间宽阔连续每个图形字符的编码唯一(一字一码)不再存在兼容性问题

bull 按文种而不是按语言编码避免重复和浪费(如中日韩汉字的统一编码 CJK )

bull 与 GB 2312 和 GBK 不兼容

体系结构bull UCS 的体系结构是基于所谓ldquo多八位rdquo的而ldquo八位rdquo就是一个字节ldquo多八位rdquo就是多个字节

bull UCS采用 4 个字节来表征组面行位的四维空间bull 整个 UCS空间包含 128 个组( 0x00组 ~0x7F组)每组有 256 个平面( 0x00 平面 ~0xFF 平面)每个平面有 256 行每行又由 256 个字位构成

bull UCS共有( 128 times 256 = ) 32 768 个平面每个平面有( 256 times 256 = ) 65 536 个字位每个字位对应于一个字符的编码

bull 目前的编码只限于 00组已经定义的平面有 00组的00 平面mdashmdash称之为基本多文种平面 BMP ( Basic Multilingual Plane ) 及若干辅助平面

UCS 的全部编码空间

每个平面256times256 个

字位

00组 00 平面

00组 FF 平面

01组 00 平面

7F组 00 平面00

01组

7F组

UCS 的 00组

BMPbull BMP = Basic Multilingual Plane 基本多文种平面bull BMP 用作双八位编码字符集称之为 UCS-2 它被

分成四个区ndash A- 区(字位 0x0000~0x4DFF 有 19 903 个字位)用于

字母文字音节文字以及各种符号ndash I- 区(字位 0x4E00~0x9FFF 共 20 992 个字位)用于中日韩统一汉字( CJK )

ndash O- 区(字位 0xA000~0xDFFF 共 16 384 个字位)保留未来标准化用

ndash R- 区(字位 0xE000~0xFFFD 共 8 190 个字位)为 BMP 的限制使用区包括专用字符变形显现形式及兼容字符

BMP总貌

A-区

00~33 拼音文字(见下页)

34~3D 朝鲜文

3E~44 朝鲜文补充 -A

45~4D 朝鲜文补充 -B

I-区 4E~9F CJK统一汉字O-区 A0~DF

R-区

E0~F8 专用区

F9~FA CJK兼容汉字FB 拼音文字变形显现形式

FC~FD 阿拉伯文变形显现形式 -A

FE半形组合用标志

CJK兼容形式

小写变体

阿拉伯文变形显现形式 -B

FF 半形及全形字符 特殊字符

BMP 的0x00~0x33

行字母文字区

00 基本拉丁文 拉丁文-1补充

01 拉丁文扩充-A 拉丁文扩充-B

02 拉丁文扩充-B 国际音标扩充 进格修饰字符

03 组合用发音符 基本希腊文 希腊符号及哥普特文

04 西里尔文

05 美亚尼亚文 希伯来文(基本和扩充)

06 基本阿拉伯文 阿拉伯文扩充

07

08

09 梵文 孟加拉文

0A 锡克教文 古吉拉特文

0B 奥利雅文 泰米尔文

0C 泰卢固文 卡纳达文

0D 德拉维族文

0E 泰文 老挝文

0F

10 格鲁吉亚文

11 朝鲜文字母

12~1D

1E 拉丁文扩充增补

1F 希腊文扩充

20 广义标点 上下标 货币符号 符号组合用区分标志

21 类似字母的符号 数字形式 箭头

22 数学运算符

23 零杂技术用符号

24 控制图符 光学识别符 带括号的字母数字

25 制表符 方块元素 几何图形符

26 零杂符号

27 示意符等

28~2F

30 CJK符号和标点 平假名 片假名

31 注音 朝鲜文兼容字母 CJK零杂字符

32 带括号的CJK字母及月份

33 CJK兼容字符

留作将来标准化用

非图形字符

表示形式bull GB 13000提供了字符编码表示的两种替代使用的形式

ndash 双八位 BMP 形式( UCS-2 )mdashmdash允许使用 BMP 中的字符且每个字符用两个字节表示

ndash 肆八位正则形式( UCS-4 )mdashmdash允许使用 GB 13000 中的全部字符且每个字符用四个字节表示

bull 除了 UCS-24外还有另外两种变形的表示形式ndash UTF-8 (单字节 ~ 多字节)ndash UTF-16 (双字节和 4 字节与 UCS-2 等价)ndash 目前在工业上的实现均为 UTF-16 ( UCS-2 )和 UTF-8ndash UTF = Unicode UCS Transformation Format 统一码 UC

S转换格式bull 关于统一码我们会在下一小节详细介绍

7 GBK 与 GB 18030bull 由于 GB 13000 标准与 GB 2312 标准的字符编码不兼容作为过渡在国家信息技术标准化委员会的主持下制定了与 GB 2312兼容的《汉字内码扩展规范( GBK )》( K 为扩展的ldquo扩rdquo字的拼音首字母)并于 1995年 12月 15日由原国家技术监督局标准司联合原电子工业部科技与质量监督司作为指导性技术规范发布实施

bull 2000年 GBK又被国家标准 GB 18030-2000《信息技术 信息交换用汉字编码字符集 基本集的扩充》所代替该标准收汉字 2万 7千个

bull 与 GB 2312 一样 GB 18030 也为中国的强制性国家标准微软公司的 Windows XPVista78 中文版与苹果公司的 Mac OS X 和 iOS 谷歌公司的 Android (安卓)等操作系统已经全面支持 GBK

GB 18030 的码位范围分布

字节数 码位空间 码位数目

单字节 0x00~0x7F 128

双字节第 1字节 第 2字节

23 9400x81~0xFE

0x40~0x7E 0x80~0xFE

四字节第 1字节 第 2字节 第 3字节 第 4字节

1 587 6000x81~0xFE 0x30~0x39 0x81~0xFE 0x30~0x39

GB 18030的

总体结构图

收录字符bull 单字节部分mdashmdash收录了GBT 11383 的 0x00~0x7F 全部 128 个字符(似 ASCI

I )bull 双字节部分mdashmdash收录内容如下 (21 003 个汉字和 884 个符号共 21 887 个字符 )

ndash GB 130001-93 的全部 CJK 统一汉字字符 20 902 个( GB 2312 的编码汉字在双字节 2 区其他 CJK 统一汉字在双字节 34 区)

ndash GB 130001-93 的 CJK兼容区挑选出来的 21 个汉字ldquo郎凉秊helliphellip﨨﨩rdquo( 0xFD9C~0xFDA0 和 0xFE40~0xFE4F )

ndash GB 130001-93 中收录而 GB 2312未收录的台湾地区使用的图形字符 139 个ldquoˊˋ˙helliphelliprdquo( 0xA840~0xA895 和 0xA940~0XA988 )

ndash GB 130001-93收录的其他字符 31 ( 13)个(在双字节 5 区)ndash GB 2312-80 中的非汉字字符 682 个( 0xA1A1~0xA9EF )ndash GB 12345-90 的竖排标点符号 19 ( 29)个ldquo︵︶︹helliphellip︳︴rdquo( 0xA6D9~0xA6

F5 )ndash GB 2312-80未收录的 10 个小写罗马数字ldquoⅰⅱⅲhelliphellipⅸⅹrdquo( 0xA2A1~ 0xA2A

A )ndash GB 2312-80未收录的带音调的汉语拼音字母 5 ( 4)个ldquo ńňǹrdquo 以及 ɑ 和 ɡ ( 0

xA8BB~0xA8C0 )ndash 汉字数字零ldquo〇rdquo (0xA996) 和欧元符ldquoeurordquo (0xA2E3)ndash 表意文字描述符 13 个ldquohelliphelliprdquo( 0xA989~0xA995 )ndash 对 GB 130001-93增补的汉字和部首 构件 80 个ldquohelliphellip䶮rdquo( 0xFE50~ 0x

FEA0 )bull 四字节部分mdashmdash收录了上述双字节字符之外的包括 CJK 统一汉字扩充 A 在内

的 GB 130001-93 中的全部字符

GB 18030双字节部分的码位安排

类别 区名 码位范围 码位数 字符数 内容

符号区双字节 1区 A1A1~A9FE 846 718

GB 2312非汉字字符等

双字节 5区 A840~A9A0 192 166 台湾图符等

汉字区双字节 2区 B0A1~F7FE 6768 6763 GB 2312汉字双字节 3区 8140~A0FE 6080 6080 CJK统一汉字双字节 4区 AA40~FEA0 8160 8160 CJK统一汉字等

用户自定义区双字节用户区 1 AAA1~AFFE 564

用户自定义字符双字节用户区 2 F8A1~FEFE 658

双字节用户区 3 A140~A7A0 672

GB 18030双字节部分的编码空间结构图 尾字节

0x40larr――rarr0x7E 0x80larr――rarr0xA0 0xA1larr――――――――――――rarr0xFE

0x81 uarr darr

0xA0

0xA1 uarr darr

0xA7

0xA8 0xA9

首字节

0xAA uarr | | | | | | | | | | darr

0xFE

双字节 3区

汉字区6 080个码位

双字节用户区 3

用户自定义区672个码位

双字节 5区 图形符号区192个码位

双字节 4区

汉字区8 160个码位

双字节 1区

图形符号区564个码位

双字节 2区

汉字区6 768个码位

双字节用户区 1 用户自定义区564个码位

双字节用户区 2 用户自定义区658个码位

223 国际通用字符编码

bull Unicode (统一码)是由多语言软件制造商组成的统一码协会( httpwwwUnicodeorg)所制定一种国际字符的编码标准

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull 本节主要介绍这两种关系密切的主流国际字符编码标准的来历编码方案各自特点与相互关系

1 Unicode 统一码bull 发展历史

ndash 1987年施乐( Xerox )公司的 Joe Becker 与 Lee Collins 和苹果( Apple )公司的 Mark Davis 等人开始讨论统一编码 1987年 12月 Joe Becker造词 Unicode (统一码)含义为ldquo unique universal and uniform character encodingrdquo (单一通用统一的字符编码) 1989年 2月开始定期召开统一码会议 1989年 9月公布 Unicode草案

ndash 1991年 1月 3 日由 Xerox Apple Sun IBM Aldis Microsoft 等公司出资在美国加州成立了统一码协会( Unicode Consortium )并由协会设立非盈利性的统一码公司( Unicode Inc )后来 HP Adobe Borland Digital Lotus Novell 等公司也纷纷加入 1991年 1月成立统一码技术委员会 UTC 并制定了其规程

ndash 1991年 2月在 Ed Hart 的推动下进行了ldquo统一码对 10464 国际标准草案 1rdquo 的对话Unicode 与 ISOIEC 10646开始走向融合

ndash 1991年 8月发布 Unicode 标准 10版的第 1卷(体系结构非表意字符) 1992年6月发表 Unicode 10版的第 2卷(表意字符) 1993年 6月发布 Unicode 11版与 1993年 5月公布的 ISOIEC 10646-11993 实现了合并

ndash 1996年 7月发布 Unicode 20版ndash 1999年 9月发布 Unicode 30版ndash 2003年 4月发布 Unicode 40版(对应于 ISOIEC 106462003 ) 2004年 3月 31日发布 Unicode 401版 2005年 3月 31日发布 Unicode 410版

ndash 2006年 7月 14日发布 Unicode 50版 2008年 4月 4日发布 Unicode 51版 2009年 12月 22日发布 Unicode 52版

ndash 2010年 10月发布 Unicode 60版 2012年 1月发布 Unicode 61版(对应于 ISOIEC 106462012 ) 2012年 9月推出 Unicode 62版 2013年 9月推出 Unicode 63版

ndash 2014年 6月 16日发布 Unicode 70版 ndash 2015年 6月 17日发布 Unicode 80版

字符集bull Unicode 字符集的空间分成双字节的基本多语言平面 (Basic Multilingual Pla

ne BMP) 和 4 字节的辅助多语言平面 (Supplementary Multilingual Plane SMP) 两种

bull BMPndash Unicode 的基本平面或基本多语言平面 BMP 对应于 ISOIEC 10646-1 的第 00组的 00 平面( BMP )即 Unicode 与 ISOIEC 10646 的 BMP 中的字符编码完全一致

bull SMPndash 鉴于 Unicode 原有的 16位元空间不足以应用从 Unicode 31版本开始设立了 16 个辅助平面使 Unicode 的可使用空间由六万多字增至约一百万字

ndash 原有的 Unicode双字节空间称为基本平面或基本多语言平面 BMP 辅助多语言平面 SMP 字符要用 4 字节来储存

ndash 第一辅助平面摆放拼音文字(主要为现时已不再使用的文字)及符号范围在 U+10000 - U+1FFFD

ndash 第二辅助平面又称为表意文字补充平面 (Supplementary Ideographic Plane 简称 SIP) 现时摆放ldquo中日韩统汉字扩展 B 区rdquo共 43253 个汉字范围在 U+20000 - U+2FFFD

ndash 第三至十三辅助平面尚未使用ndash 第十四辅助平面又称为特殊用途补充平面 (Supplementary Special-purpose Pl

ane 简称 SSP) 摆放 Language tags 和 Variation Selectors 它们都是控制字符范围在 U+E0000 - U+E01FF

ndash 第十五至十六辅助平面都是私人使用区它们的范围是 U+F0000 - U+FFFFD 及 U+100000 - U+1000FD

bull Unicode 字符集的具体编码方式参加第 4小节ldquo 4 UTFrdquo

2 ISOIEC 10646

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull ISOIEC 10646 标准由 ISO 与 IEC 联合成立的 ISOIEC JTC1SC2WG2 制定ndash JTC 1 ( Joint Technical Committee 1 on Information

technology ISOIEC信息技术联合技术委员会 1 )负责信息技术方面标准的制定工作

ndash SC 2 ( SubCommittee 2 on Coded character sets 编码字符集分会 2 )下的 WG 2 ( Working Group 2 on Universal coded character set 通用编码字符集工作组 2 )负责制定国际通用字符编码标准即后来公布的 ISOIEC 10646

发展历史bull 1984年 ISO 的一些会员国发起制定新的国际字符编码标准同年 4月 ISO

与 IEC 联合成立 ISOIEC JTC1SC2WG2 1987年 3月制定出编码架构1992年 6月投票通过第二版国际标准草案

bull 1993年 5月推出 10646 标准时将内容分成两个部分标准首先发布的是其中的第 1 个部分(体系结构与基本多文种平面)的第 1版( Edition 1 ) ISOIEC 10646-11993 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane(信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

bull 2000年 3月推出 10646 标准第一个部分的第 2版( Edition 2 ) ISOIEC 10646-12000 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane

bull 2001年 10月推出 10646 标准第 2版的第二个部分(辅助平面)的第 1版( Edition 1 ) ISOIEC 10646-22001 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 2 Supplementary Planes

bull 2003年 10月推出的 10646新标准(第 1版 Edition 1 )将老标准中的两个部分标准合并成了一个单一的标准 ISOIEC 106462003 Information technology -- Universal Multiple- Octet Coded Character Set (UCS) 后来又于 2010年 2012年和 2014年分别推出了 ISOIEC 106462010 (第 2版)ISOIEC 106462012 (第 3版)和 ISOIEC 106462014 (第 4版)

UCS 通用字符集bull 通用字符集( Universal Character Set UCS )是

ISOIEC 10646 标准所定义的字符编码方式采用 4字节编码又称为 Universal Multiple-Octet Coded Character Set (通用多八位编码字符集)

bull 通用字符集是所有包括了其他字符集它保证了与其他字符集的双向兼容即如果你将任何文本字符串翻译到 UCS 格式然后再翻译回原编码你不会丢失任何信息

bull UCS 包含了已知语言的所有字符除了拉丁语希腊语斯拉夫语希伯来语阿拉伯语亚美尼亚语格鲁吉亚语还包括中文日文韩文这样的象形文字 UCS 还包括大量的图形印刷数学科学符号

名字与组合字符bull UCS 不仅给每个字符分配一个代码而且赋予了

一个正式的名字表示一个 UCS 或 Unicode值的十六进制数通常在前面加上ldquo U+rdquo 例如ldquo U+0041rdquo代表字符ldquo Ardquo

bull UCS里有些编码点分配给了组合字符组合字符机制允许在任何字符后加上重音符或其他指示标记 这在科学符号中特别有用 比如数学方程式和国际音标字母 可能会需要在一个基本字符后组合上一个或多个指示标记

实现级别bull 并不是所有的系统都需要支持像组合字符这样的的先进

机制因此 ISO 10646 指定了如下三种实现级别ndash 级别 1不支持组合字符和韩语 Hangul Jamo 字符 ( 一种特

别的 更加复杂的韩国文的编码 使用两个或三个子字符来编码一个韩文音节 )

ndash 级别 2类似于级别 1 但在某些文字中允许一列固定的组合字符 (例如 希伯来文 阿拉伯文 Devangari 孟加拉语 果鲁穆奇语 Gujarati Oriya 泰米尔语 Telugo 印 埃纳德语 Malayalam 泰国语和老挝语 ) 因为如果没有最起码的几个组合字符 UCS就不能完整地表达这些语言

ndash 级别 3支持所有的 UCS 字符如可以在任意一个字符上加上一个箭头或 和一个 tilde(颚化符号即字母上面的~ )

编码方式bull UCS 有如下两种编码方式

ndash UCS-2与 Unicode 的 2 字节编码基本一样ndash UCS-4 4 字节编码目前是在 UCS-2 前加

上 2 个全零的字节bull UCS 还有 UTF 编码方式参见下面第 4小节ldquo 4 UTFrdquo

3 Unicode 与 ISOIEC 10646bull 关系

ndash 历史上存在两个独立的尝试创立单一字符集的组织即国际标准化组织( ISO )和多语言软件制造商组成的统一码协会组织( Unicodeorg )前者开发的 ISO 10646项目后者开发的 Unicode项目因此最初制定了不同的标准

ndash 1991年前后两个项目的参与者都认识到世界不需要两个不兼容的字符集于是它们开始合并双方的工作成果并为创立一个单一编码表而协同工作

ndash 从 Unicode20开始 Unicode采用了与 ISO 10646-1相同的字库和字码 ISO 也承诺 ISO10646 将不会替超出 U+10FFFF 的 UCS-4 编码赋值以使得两者保持一致

ndash 两个项目仍都存在并独立地公布各自的标准但 Unicode协会和 ISOIEC JTC1SC2 都同意保持两者标准的码表兼容并紧密地共同调整任何未来的扩展

异同bull Unicode协会公布的 Unicode 标准包含了 ISO 10646-1 实现级别

3 的基本多文种平面在两个标准里所有的字符都在相同的位置并且有相同的名字

bull ISO 10646 标准就像 ISO 8859 标准一样只不过是一个简单的字符集表它定义了一些编码的别名指定了一些与标准有关的术语并包括了规范说明指定了怎样使用 UCS连接其他 ISO 标准的实现等

bull Unicode 标准额外定义了许多与字符有关的语义符号学并详细说明了绘制某些语言(如阿拉伯语)表达形式的算法处理双向文字(比如拉丁文和希伯来文的混合文字)的算法排序与字符串比较所需的算法等等

bull 考虑到 Unicode 标准有一个易记的名字既便宜又包括更多的辅助信息因而它使用得更广泛然而

bull 一般认为用于打印 ISO 10646-1 标准的字体在某些方面的质量要高于用于打印 Unicode 20 的专业字体设计者总是被建议说要两个标准都实现但一些提供的样例字形有显著的区别 ISO 10646-1 标准同样使用四种不同的风格变体来显示表意文字如中文日文和韩文 (CJK) 而 Unicode 20 的表里只有中文的变体

4 UTFbull Unicode 和 UCS 都是一个字符集可以看作为内码bull UTF ( UnicodeUCS Transformation Format 统一码

通用字符集转换格式)是一种编码方式它的出现是因为 Unicode 和 UCS 不适宜在某些场合直接传输和处理

bull UCS 和 Unicode 只是分配整数给字符的编码表现在存在好几种将一串字符表示为一串字节的方法(如高或低位字节在前)

bull 最显而易见的两种方法是将 UCS 和 Unicode 文本存储为 2 个 或 4 个字节序列的串这两种方法的正式名称分别为 UCS-2 和 UCS-4

bull 常用的 UTF具体编码方式有 UTF-8 UTF-16 和 UTF-32

UTF-8

bull UTF-8 是 UTF 的一种具体编码方式在 ISO 10646-1 的附录 R 和 IETF 的 RFC 2279 里定义

bull 由于要使文档中的文字与 ASCII兼容故 UTF-8 选择了使用可变长度字节来储存 Unicode 和 UCS 例如ndash ASCII 字母继续使用 1 字节储存ndash 重音文字希腊字母或西里尔字母等使用 2 字节来储存ndash 常用的汉字就要使用 3 字节ndash 辅助平面字符则使用 4 字节ndash 即 ASCII 不作变换其他字符做变长编码每个字符 1~4 字节

bull UTF-8 通常作为外码bull 在 UTF-8 文件的开首很多时都放置一个 U+FEFF 字符

(UTF-8 以 EF BB BF 代表 ) 以显示这个文字档案是以UTF-8 编码

UTF-8 的优点bull 与 CPU 字节顺序无关可以在不同平台之间交流

bull 容错能力高任何一个字节损坏后最多只会导致一个编码码位损失不会链锁错误 ( 如 GB 码错一个字节就会整行乱码 )

UTF-8 的缺点bull UTF-8 使用可变长度字节储存使计算机程序设计变得复杂 (故此在计算机程序或操作系统内部多采用 UCS-2 编码 )

bull 在旧式的中文日文及朝鲜文编码之中每字符都使用 2 字节储存而 UTF-8 须使用 3 字节 (采用 UTF-16 编码则可只使用 2字节储存 )

bull 泰语以往使用的 ISO 8859-11 每字符只使用 1 字节储存而 UTF-8 须使用 3 字节

UTF-8储存的多字节串字符bull U-00000000 - U-0000007F 0xxxxxxx bull U-00000080 - U-000007FF 110xxxxx 10xxxxxx

bull U-00000800 - U-0000FFFF 1110xxxx 10xxxxxx

10xxxxxx bull U-00010000 - U-001FFFFF 11110xxx 10xxxxx

x 10xxxxxx 10xxxxxx bull 在多字节串中第一个字节的开头ldquo 1rdquo 的数目就

是整个串中字节的数目bull 每个使用 UTF-8储存的字符除了第一个字节外其余字节的头两个位元都是以 10 开始使文字处理器能够较快地找出每个字符的开始位置

UTF-16bull UTF-16 是 UTF 的另一种具体编码方式在 ISO 1064

6-1 的附录 Q 和 IETF 的 RFC 2781 里定义bull UTF-16 是变长码( 2 或 4 字节)大致相当于 20位编码值在 0 到 0x10FFFF 之间基本上就是 Unicode 编码的实现 UTF-16 与 CPU 字序有关但因为最省空间常作为网络传输的外码 UTF-16 是 Unicode 的完美编码

bull lt0x10000 的直接用其对应的 16位整数编码位于 0x10000 ~ 0x10FFFF 之间的用 0xD800~0xDBFF 的 16位整数后跟 0xDC00~0xDFFF 的 16位整数的 4 字节编码 gt 0x10FFFF 的不能用 UTF-16 表示

bull 在 Unicode 的 BMP 中定义的字符(无论是拉丁字母汉字或其他文字或符号)一律使用 2 字节存储而在辅助平面定义的字符则以两个 2 字节的值来存储

UTF-16 的特点bull UTF-16比起 UTF-8 的好处在于大部分字符都以固定长

度的 2 字节存储但 UTF-16却无法相容于 ASCII 编码bull UTF-16 有两种编码模式即大尾序( big Endian 高位字节在前)和小尾序( little Endian 高位字节在后)储存形式(一般來說以 Macintosh 制作和存储的文字使用大尾序格式以 Microsoft 或 Linux 制作和存储的文字使用小尾序格式)

bull 为了弄区分 UTF-16 文件的大小尾序在 UTF-16 文件的开头都会放置一个 U+FEFF 字符作为字节顺序标记 (UTF-16LE 以 FF FE代表 UTF-16BE 以 FE FF代表 ) 以显示该文档是以 UTF-16 编码的

UTF-32

bull UTF-32 仅使用了 Unicode范围 (0 到 0x10FFFF) 的 32位编码相当于 UCS-4 的子集

bull 由于 Unicode 和 ISOIEC 10646 的编码和结构与前面讲过的 GB 13000 类似或等价这里就不再做详细的介绍

5支持bull 现在 UnicodeUCS 已经获得了十分广泛的支

持ndash网络与浏览器(如 HTML 4050 XML 与 IE

Safari Netscape Firefox Chrome Opera Edge 等)

ndash操作系统(如 Windows NT2000XPVista7810 Mac OS X iOS Android和 Linux )

ndash 编程语言新版本(如 CC++JavaObjective-CC Swift 等)

Unicode 代码的浏览器显示代码 字符标准名称 (英语 )

浏览器的显示

amp65 大写拉丁字母 A A

amp223 小写拉丁字母 Sharp S szlig

amp254 小写拉丁字母 Thorn thorn

amp916 大写希腊字母 Delta Δ

amp1049 大写斯拉夫字母 Short I Й

amp1511 希伯来字母 Qof ק

amp1605 阿拉伯字母 Meem م

amp3671 泰文数字 7 ๗amp4688 埃塞俄比亚音节文字 Qha ቐ

amp12354 日语平假名 A あamp12450 日语片假名 A アamp21494 简体汉字 叶 叶amp33865 繁体汉字 葉 葉amp50685 韩国音节文字 Yeob 엽

23 文字输出bull 文字输出是指将计算机内的字符编码通过计算机的输出设备(如显示器打印机喇叭)展现出所对应字符的图形或声音供人们阅读或聆听

bull 本节主要介绍文字图示输出的字形技术bull 文字声音输出属于语音合成只在本节的末尾作简单的介绍

231 字形技术bull 文字 = 图形bull 不论是象形文字中的单字还是拼音文字

中的字母都是用图形来表示的bull 在计算机里文字的表示 输出(显示和打

印)涉及ndash 字型ndash 字体ndash 字库

1字型bull 字型指构造和生成字形的方法一般可分为

ndash 点阵字 DOS 显卡 ROM 金山 科印特点似位图显示快占空间(字库大)放大后有马赛克效应

bull 显示字母 88 汉字 1616bull 打印 2424 4848 6464

ndash 矢量字单线条用于笔式绘图仪特点字库小算法简单难看

ndash 轮廓字用曲线描绘字的轮廓输出效果好所见即所得(WYSWYG) 可无级放大易实现空心 阴影 填充 变形等各种特效功能轮廓曲线一般采用样条曲线如 TrueType (Apple 1991 Mac OS Microsoft 1992 Windows 31)用的是二次 B 样条 Bezier曲线中文之星 RichWin采用的是三次 B 样条 Bezier曲线

字型种类

2字体bull 字体指字的形状风格如

ndash 汉字的

ndash 英文的

宋体楷体黑体仿宋

行楷隶书新魏幼圆

Times New Roman Arial Narrow Courier New

常用汉字字体bull 宋体mdashmdash宋体来自于北宋时雕版刻书所采用的欧体字(唐朝欧阳询体)宋体字的横顿拉捺挑钩别具特色间架平正疏密适中字体秀丽遒劲但笔画横细竖粗适合于刀刻不宜于手写现在宋体广泛用于印刷常来表现文档的正文

bull 仿宋体mdashmdash 1920年钱塘的丁辅之与丁善之等人将明代以后盛行的方廓形字体加以改造创造出长形和方形的聚珍仿宋后来演化为现在的仿宋体仿宋体比较接近于手写体为宋体和楷体的折中是采用的宋体的结构和楷体的笔法而成现常来表现打印文件以及文档的摘要和注释等

bull 黑体mdashmdash黑体是适应工艺美术的发展而出现的一种等线体是从日本引进的黑体的结构与宋体没有什么差别只是其笔画粗细一致健实粗壮主要用于文档的标题和重点及标语广告等方面

bull 楷体mdashmdash楷体源于楷书楷体的笔画圆浑笔调灵活结构端正美观但不宜于木板雕刻所以直到清末西洋的石板印刷术传入后才开始广泛用于印刷现代的楷体创造于 20世纪的二三十年代主要用于文档的正文(多用于中小学教材)也可用于工艺美术等方面

3字库bull 字库为一种文字的某一字体的所有字符的集合一般存放在一个磁盘文件中

bull 由于象形文字中单字的数量大(成千上万)而拼音文字中字母的数量小(不到一百个)所以字库的大小有很大的差别

bull 为了使文档界面丰富多彩常见的字处理软件都支持多种字体带有众多字库

4点阵字型的国家标准bull 我国已经公布了若干字体的点阵字型之国家标准

ndash GB 50071-19852001 信息技术 汉字编码字符集(基本集) 24 点阵字型

ndash GB 50072-19852001 信息技术 汉字编码字符集(辅助集) 24 点阵字型

ndash GB 5199-19862001 信息技术 汉字编码字符集(基本集) 16 点阵字型 宋体

ndash GB 6345-19862001 信息技术 汉字编码字符集(基本集) 32 点阵字型 宋体

ndash GB 12041-2001 信息技术 汉字编码字符集(基本集) 48点阵字型 宋体

ndash GB 17698-1999 信息技术 通用多八位编码字符集( I 区) 汉字 16 点阵字型

232 语音合成bull 文字的声音输出主要使用的是语音合成的技术bull 语音合成功能是ldquo文rarr语rdquo转换bull 文语转换 TTS (Text-To-Speech) 是将文本形式的信息转换成自然语音的一种技术其最终目标是使计算机输出清晰而又自然的声音

bull 英语的语音合成在上世纪 80年代就早已成熟而中文 汉语的合成现在也趋于成熟并有了广泛的应用(如汽车导航仪智能手机等)

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 37: 第一篇  媒体

GB 2312-80 字符集结构 20 21 22 helliphellip 7D 7E 7F

位号

区号

1 2 helliphellip 93 94

20

21~29 1~9 非汉字图符(682个)

2A~2F 10~15 空白区

30~57 16~55 一级汉字(3 755个)

58~77 56~87 二级汉字(3 008个)

78~7E 88~94 空白区

7F

第 1 区的部分非汉字图符

1区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 middot ˉ ˇ uml 々 mdash ~ hellip lsquo rsquo ldquo

17~32 rdquo 〔 〕 〈 〉 《 》 「 」 『 』 〖 〗 【 】 plusmn

33~48 times divide ∶ and or sum prod cup cap isin ∷ radic perp ∥ ang

49~64 ⊙ int ∮ equiv ≌ asymp ∽ prop ne ltu gtu le ge infin ∵ there4

65~80 deg prime Prime $ curren ¢ £ permil sect

81~94 rarr larr uarr darr

第 16 区的部分一级汉字

16区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 啊 阿 埃 挨 哎 唉 哀 皑 癌 蔼 矮 艾 碍 爱 隘 鞍

17~32 氨 安 俺 按 暗 岸 胺 案 肮 昂 盎 凹 敖 熬 翱 袄

33~48 傲 奥 懊 澳 芭 捌 扒 叭 吧 笆 八 疤 巴 拔 跋 靶

49~64 把 耙 坝 霸 罢 爸 白 柏 百 摆 佰 败 拜 稗 斑 班

65~80 搬 扳 般 颁 板 版 扮 拌 伴 瓣 半 办 绊 邦 帮 梆

81~94 榜 膀 绑 棒 磅 蚌 镑 傍 谤 苞 胞 包 褒 剥

第 56 区的部分二级汉字

56区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 亍 丌 兀 丐 廿 卅 丕 亘 丞 鬲 孬 噩 丨 禺 丿 匕

17~32 乇 夭 爻 卮 氐 囟 胤 馗 毓 睾 鼗 丶 亟 鼐 乜 乩

33~48 亓 芈 孛 啬 嘏 仄 厍 厝 厣 厥 厮 靥 赝 匚 叵 匦

49~64 匮 匾 赜 卦 卣 刂 刈 刎 刭 刳 刿 剀 剌 剞 剡 剜

65~80 蒯 剽 劂 劁 劐 劓 冂 罔 亻 仃 仉 仂 仨 仡 仫 仞

81~94 伛 仳 伢 佤 仵 伥 伧 伉 伫 佞 佧 攸 佚 佝

3汉字编码的辅助集bull 除了GB 2312基本集的 6 763 个简体汉字外国家标

准还给出了汉字编码字符集的多个辅助集bull 第二 四辅助集分别增加了 7 237 7 039 个简体汉字bull 第一和三 五辅助集则分别是与基本集和第二 四辅助集所对应的繁体汉字字符集的国家标准

bull 基本集加上辅助集共有 21 039 个简体汉字和 21 142个繁体汉字

bull 繁体汉字之所以多一些是因为在第一辅助集中有时几个繁体字对应一个简体字因此比基本集多出 103 个汉字

bull 基本集和辅助集的代码页之间靠其编码字节的最高位来区分

编码字符的分页标志

双字节汉字编码的页面结构第二字节 列号

行号 0 middot middot middot 32 33 34 helliphellip 125 126 127 128middot middot 160 161 162 helliphellip 254 255 0 middot middot 32

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

33 34 middot middot middot 126

1 2 middot middot middot 94

第四五辅助集 (7 039个汉字)

127

(兼容ASCII)

128 middot middot 160

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

161 162 middot middot middot 254

1 2 middot middot middot 94

第二三辅助集 (7 237个汉字)

1 2 middot middot middot 94

基本集第一辅助集 (6 763 6 866个汉字) (682个非汉字图符)

第一字节

255

4 Big5

bull 除了中国大陆使用的简体汉字外在台湾香港澳门和海外华侨社区使用的是传统的繁体汉字

bull 简体汉字使用 GB (国标)系列编码标准bull 繁体汉字一般使用的是 Big5内码(大五码)即台湾的ldquo资讯工业策进会rdquo发布的《标准交换码 (Ⅲ码 )》收录汉字 13 053 个

bull Big5内码是 1984年由台湾财团法人资讯工业策进会与宏碁 (Acer) 神通 (MiTAC) 佳佳零壹 (Zero One) 大众 (FIC) 等五大软件公司联合推出故称为大五码

BIG5 的代码空间低位字节

00 hellip 3F 40 hellip 7E 7F hellip A0 A1 hellip FE FF

高位字节

00middot

80

81middot

A0用户定义区 用户定义区

A1A2A3

非汉字图符 非汉字图符

A4middot

C6常用汉字 常用汉字

C7C8

用户定义区 用户定义区

C9middot

F9次常用汉字 次常用汉字

FAmiddot

FE用户定义区 用户定义区

FF

5少数民族文字编码bull 中国共有 56 个民族除了汉回满族一般使用汉语外其他少数民族大多有自己的民族语言

bull 我国各民族使用的 50 多种文字可以分为字母式结构文字和非字母式结构文字两大类ndash 字母式结构的有拉丁文斯拉夫文蒙古文维吾尔文哈萨克文藏文和朝鲜文等字母式

ndash 非字母式结构的有汉字象形文字图画文字和音节文字等bull 各民族文字的书写方向也有不同

ndash 壮文藏文朝鲜文彝文等的字从左到右行从上到下ndash 维吾尔文哈萨克文和柯尔克孜文等的字从右到左行从上

到下ndash 蒙古文和满文的字从上到下行从左到右ndash 汉字的书写方向有两种

bull 大陆的简体汉字的字从左到右行从上到下bull 港台与古旧书的繁体汉字的字从上到下行从右到左

国家标准bull 下面按发布时间列出若干已经公布的我国少数民族文字

编码集的国家标准(这些字符集一般分成两类对字母式结构文字采用八位编码对非字母式结构文字采用双字节编码)ndash GB 8045-87《信息处理交换用蒙古文七位和八位编码图形字

符集》收 82 个蒙古文字母和 12 个其他符号共 94 个字符ndash GB 12050-89《信息处理交换用维吾尔文编码图形字符集》收 32 个维吾尔文字母一个维吾尔文复合字符和 37 个其他符号共 70 个字符

ndash GB 12052-89《信息交换用朝鲜文编码字符集》收 5297 个朝鲜文字和 682 个其他符号(与 GB 2132同)共 5 979 个字符

ndash GB 13134-91《信息交换用彝文编码字符集》收 1165 个彝文字符和 688 个其他符号共 1853 个字符

ndash GB 16959-1997《信息技术 信息交换用藏文编码字符集 基本集》收 41 个藏文字母 36 个藏文主字 13 个元音字符12 个语音字符 10 个藏文数字 10 个半值符一个控制用连接符和 46 个其他藏文图形符号共 169 个字符

6 GB 13000bull GB 13000 是与 ISOIEC 10646 等价的国际通用编码字符集标准收汉字 2万多个但是与 GB 2312 和 GBK 不兼容

bull 1993年 5月 ISO 与 IEC 联合推出了可用于世界各种文字的通用编码字符集的国际标准的第 1部分ndash ISOIEC 10646-11993 Information technology -- Universal Multiple-Octe

t Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane (信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

ndash 该标准收字符 96万个几乎涵盖世界上的所有文字其中包含汉字 21 003 个

bull 1993年底我国推出了等同于国际标准 ISOIEC 1064611993 的强制性国家标准 ndash GB 130001-93《信息技术 通用多八位编码字符集( UCS ) 第一部分

体系结构与基本多文种平面》ndash 该标准于 1993年 12月 24日被国家技术监督局批准 1994年 8月 1日起实施

GB 13000 的主要特点

bull 世界各语言文种字符统一编码避免冲突便于国际交流

bull 编码空间宽阔连续每个图形字符的编码唯一(一字一码)不再存在兼容性问题

bull 按文种而不是按语言编码避免重复和浪费(如中日韩汉字的统一编码 CJK )

bull 与 GB 2312 和 GBK 不兼容

体系结构bull UCS 的体系结构是基于所谓ldquo多八位rdquo的而ldquo八位rdquo就是一个字节ldquo多八位rdquo就是多个字节

bull UCS采用 4 个字节来表征组面行位的四维空间bull 整个 UCS空间包含 128 个组( 0x00组 ~0x7F组)每组有 256 个平面( 0x00 平面 ~0xFF 平面)每个平面有 256 行每行又由 256 个字位构成

bull UCS共有( 128 times 256 = ) 32 768 个平面每个平面有( 256 times 256 = ) 65 536 个字位每个字位对应于一个字符的编码

bull 目前的编码只限于 00组已经定义的平面有 00组的00 平面mdashmdash称之为基本多文种平面 BMP ( Basic Multilingual Plane ) 及若干辅助平面

UCS 的全部编码空间

每个平面256times256 个

字位

00组 00 平面

00组 FF 平面

01组 00 平面

7F组 00 平面00

01组

7F组

UCS 的 00组

BMPbull BMP = Basic Multilingual Plane 基本多文种平面bull BMP 用作双八位编码字符集称之为 UCS-2 它被

分成四个区ndash A- 区(字位 0x0000~0x4DFF 有 19 903 个字位)用于

字母文字音节文字以及各种符号ndash I- 区(字位 0x4E00~0x9FFF 共 20 992 个字位)用于中日韩统一汉字( CJK )

ndash O- 区(字位 0xA000~0xDFFF 共 16 384 个字位)保留未来标准化用

ndash R- 区(字位 0xE000~0xFFFD 共 8 190 个字位)为 BMP 的限制使用区包括专用字符变形显现形式及兼容字符

BMP总貌

A-区

00~33 拼音文字(见下页)

34~3D 朝鲜文

3E~44 朝鲜文补充 -A

45~4D 朝鲜文补充 -B

I-区 4E~9F CJK统一汉字O-区 A0~DF

R-区

E0~F8 专用区

F9~FA CJK兼容汉字FB 拼音文字变形显现形式

FC~FD 阿拉伯文变形显现形式 -A

FE半形组合用标志

CJK兼容形式

小写变体

阿拉伯文变形显现形式 -B

FF 半形及全形字符 特殊字符

BMP 的0x00~0x33

行字母文字区

00 基本拉丁文 拉丁文-1补充

01 拉丁文扩充-A 拉丁文扩充-B

02 拉丁文扩充-B 国际音标扩充 进格修饰字符

03 组合用发音符 基本希腊文 希腊符号及哥普特文

04 西里尔文

05 美亚尼亚文 希伯来文(基本和扩充)

06 基本阿拉伯文 阿拉伯文扩充

07

08

09 梵文 孟加拉文

0A 锡克教文 古吉拉特文

0B 奥利雅文 泰米尔文

0C 泰卢固文 卡纳达文

0D 德拉维族文

0E 泰文 老挝文

0F

10 格鲁吉亚文

11 朝鲜文字母

12~1D

1E 拉丁文扩充增补

1F 希腊文扩充

20 广义标点 上下标 货币符号 符号组合用区分标志

21 类似字母的符号 数字形式 箭头

22 数学运算符

23 零杂技术用符号

24 控制图符 光学识别符 带括号的字母数字

25 制表符 方块元素 几何图形符

26 零杂符号

27 示意符等

28~2F

30 CJK符号和标点 平假名 片假名

31 注音 朝鲜文兼容字母 CJK零杂字符

32 带括号的CJK字母及月份

33 CJK兼容字符

留作将来标准化用

非图形字符

表示形式bull GB 13000提供了字符编码表示的两种替代使用的形式

ndash 双八位 BMP 形式( UCS-2 )mdashmdash允许使用 BMP 中的字符且每个字符用两个字节表示

ndash 肆八位正则形式( UCS-4 )mdashmdash允许使用 GB 13000 中的全部字符且每个字符用四个字节表示

bull 除了 UCS-24外还有另外两种变形的表示形式ndash UTF-8 (单字节 ~ 多字节)ndash UTF-16 (双字节和 4 字节与 UCS-2 等价)ndash 目前在工业上的实现均为 UTF-16 ( UCS-2 )和 UTF-8ndash UTF = Unicode UCS Transformation Format 统一码 UC

S转换格式bull 关于统一码我们会在下一小节详细介绍

7 GBK 与 GB 18030bull 由于 GB 13000 标准与 GB 2312 标准的字符编码不兼容作为过渡在国家信息技术标准化委员会的主持下制定了与 GB 2312兼容的《汉字内码扩展规范( GBK )》( K 为扩展的ldquo扩rdquo字的拼音首字母)并于 1995年 12月 15日由原国家技术监督局标准司联合原电子工业部科技与质量监督司作为指导性技术规范发布实施

bull 2000年 GBK又被国家标准 GB 18030-2000《信息技术 信息交换用汉字编码字符集 基本集的扩充》所代替该标准收汉字 2万 7千个

bull 与 GB 2312 一样 GB 18030 也为中国的强制性国家标准微软公司的 Windows XPVista78 中文版与苹果公司的 Mac OS X 和 iOS 谷歌公司的 Android (安卓)等操作系统已经全面支持 GBK

GB 18030 的码位范围分布

字节数 码位空间 码位数目

单字节 0x00~0x7F 128

双字节第 1字节 第 2字节

23 9400x81~0xFE

0x40~0x7E 0x80~0xFE

四字节第 1字节 第 2字节 第 3字节 第 4字节

1 587 6000x81~0xFE 0x30~0x39 0x81~0xFE 0x30~0x39

GB 18030的

总体结构图

收录字符bull 单字节部分mdashmdash收录了GBT 11383 的 0x00~0x7F 全部 128 个字符(似 ASCI

I )bull 双字节部分mdashmdash收录内容如下 (21 003 个汉字和 884 个符号共 21 887 个字符 )

ndash GB 130001-93 的全部 CJK 统一汉字字符 20 902 个( GB 2312 的编码汉字在双字节 2 区其他 CJK 统一汉字在双字节 34 区)

ndash GB 130001-93 的 CJK兼容区挑选出来的 21 个汉字ldquo郎凉秊helliphellip﨨﨩rdquo( 0xFD9C~0xFDA0 和 0xFE40~0xFE4F )

ndash GB 130001-93 中收录而 GB 2312未收录的台湾地区使用的图形字符 139 个ldquoˊˋ˙helliphelliprdquo( 0xA840~0xA895 和 0xA940~0XA988 )

ndash GB 130001-93收录的其他字符 31 ( 13)个(在双字节 5 区)ndash GB 2312-80 中的非汉字字符 682 个( 0xA1A1~0xA9EF )ndash GB 12345-90 的竖排标点符号 19 ( 29)个ldquo︵︶︹helliphellip︳︴rdquo( 0xA6D9~0xA6

F5 )ndash GB 2312-80未收录的 10 个小写罗马数字ldquoⅰⅱⅲhelliphellipⅸⅹrdquo( 0xA2A1~ 0xA2A

A )ndash GB 2312-80未收录的带音调的汉语拼音字母 5 ( 4)个ldquo ńňǹrdquo 以及 ɑ 和 ɡ ( 0

xA8BB~0xA8C0 )ndash 汉字数字零ldquo〇rdquo (0xA996) 和欧元符ldquoeurordquo (0xA2E3)ndash 表意文字描述符 13 个ldquohelliphelliprdquo( 0xA989~0xA995 )ndash 对 GB 130001-93增补的汉字和部首 构件 80 个ldquohelliphellip䶮rdquo( 0xFE50~ 0x

FEA0 )bull 四字节部分mdashmdash收录了上述双字节字符之外的包括 CJK 统一汉字扩充 A 在内

的 GB 130001-93 中的全部字符

GB 18030双字节部分的码位安排

类别 区名 码位范围 码位数 字符数 内容

符号区双字节 1区 A1A1~A9FE 846 718

GB 2312非汉字字符等

双字节 5区 A840~A9A0 192 166 台湾图符等

汉字区双字节 2区 B0A1~F7FE 6768 6763 GB 2312汉字双字节 3区 8140~A0FE 6080 6080 CJK统一汉字双字节 4区 AA40~FEA0 8160 8160 CJK统一汉字等

用户自定义区双字节用户区 1 AAA1~AFFE 564

用户自定义字符双字节用户区 2 F8A1~FEFE 658

双字节用户区 3 A140~A7A0 672

GB 18030双字节部分的编码空间结构图 尾字节

0x40larr――rarr0x7E 0x80larr――rarr0xA0 0xA1larr――――――――――――rarr0xFE

0x81 uarr darr

0xA0

0xA1 uarr darr

0xA7

0xA8 0xA9

首字节

0xAA uarr | | | | | | | | | | darr

0xFE

双字节 3区

汉字区6 080个码位

双字节用户区 3

用户自定义区672个码位

双字节 5区 图形符号区192个码位

双字节 4区

汉字区8 160个码位

双字节 1区

图形符号区564个码位

双字节 2区

汉字区6 768个码位

双字节用户区 1 用户自定义区564个码位

双字节用户区 2 用户自定义区658个码位

223 国际通用字符编码

bull Unicode (统一码)是由多语言软件制造商组成的统一码协会( httpwwwUnicodeorg)所制定一种国际字符的编码标准

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull 本节主要介绍这两种关系密切的主流国际字符编码标准的来历编码方案各自特点与相互关系

1 Unicode 统一码bull 发展历史

ndash 1987年施乐( Xerox )公司的 Joe Becker 与 Lee Collins 和苹果( Apple )公司的 Mark Davis 等人开始讨论统一编码 1987年 12月 Joe Becker造词 Unicode (统一码)含义为ldquo unique universal and uniform character encodingrdquo (单一通用统一的字符编码) 1989年 2月开始定期召开统一码会议 1989年 9月公布 Unicode草案

ndash 1991年 1月 3 日由 Xerox Apple Sun IBM Aldis Microsoft 等公司出资在美国加州成立了统一码协会( Unicode Consortium )并由协会设立非盈利性的统一码公司( Unicode Inc )后来 HP Adobe Borland Digital Lotus Novell 等公司也纷纷加入 1991年 1月成立统一码技术委员会 UTC 并制定了其规程

ndash 1991年 2月在 Ed Hart 的推动下进行了ldquo统一码对 10464 国际标准草案 1rdquo 的对话Unicode 与 ISOIEC 10646开始走向融合

ndash 1991年 8月发布 Unicode 标准 10版的第 1卷(体系结构非表意字符) 1992年6月发表 Unicode 10版的第 2卷(表意字符) 1993年 6月发布 Unicode 11版与 1993年 5月公布的 ISOIEC 10646-11993 实现了合并

ndash 1996年 7月发布 Unicode 20版ndash 1999年 9月发布 Unicode 30版ndash 2003年 4月发布 Unicode 40版(对应于 ISOIEC 106462003 ) 2004年 3月 31日发布 Unicode 401版 2005年 3月 31日发布 Unicode 410版

ndash 2006年 7月 14日发布 Unicode 50版 2008年 4月 4日发布 Unicode 51版 2009年 12月 22日发布 Unicode 52版

ndash 2010年 10月发布 Unicode 60版 2012年 1月发布 Unicode 61版(对应于 ISOIEC 106462012 ) 2012年 9月推出 Unicode 62版 2013年 9月推出 Unicode 63版

ndash 2014年 6月 16日发布 Unicode 70版 ndash 2015年 6月 17日发布 Unicode 80版

字符集bull Unicode 字符集的空间分成双字节的基本多语言平面 (Basic Multilingual Pla

ne BMP) 和 4 字节的辅助多语言平面 (Supplementary Multilingual Plane SMP) 两种

bull BMPndash Unicode 的基本平面或基本多语言平面 BMP 对应于 ISOIEC 10646-1 的第 00组的 00 平面( BMP )即 Unicode 与 ISOIEC 10646 的 BMP 中的字符编码完全一致

bull SMPndash 鉴于 Unicode 原有的 16位元空间不足以应用从 Unicode 31版本开始设立了 16 个辅助平面使 Unicode 的可使用空间由六万多字增至约一百万字

ndash 原有的 Unicode双字节空间称为基本平面或基本多语言平面 BMP 辅助多语言平面 SMP 字符要用 4 字节来储存

ndash 第一辅助平面摆放拼音文字(主要为现时已不再使用的文字)及符号范围在 U+10000 - U+1FFFD

ndash 第二辅助平面又称为表意文字补充平面 (Supplementary Ideographic Plane 简称 SIP) 现时摆放ldquo中日韩统汉字扩展 B 区rdquo共 43253 个汉字范围在 U+20000 - U+2FFFD

ndash 第三至十三辅助平面尚未使用ndash 第十四辅助平面又称为特殊用途补充平面 (Supplementary Special-purpose Pl

ane 简称 SSP) 摆放 Language tags 和 Variation Selectors 它们都是控制字符范围在 U+E0000 - U+E01FF

ndash 第十五至十六辅助平面都是私人使用区它们的范围是 U+F0000 - U+FFFFD 及 U+100000 - U+1000FD

bull Unicode 字符集的具体编码方式参加第 4小节ldquo 4 UTFrdquo

2 ISOIEC 10646

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull ISOIEC 10646 标准由 ISO 与 IEC 联合成立的 ISOIEC JTC1SC2WG2 制定ndash JTC 1 ( Joint Technical Committee 1 on Information

technology ISOIEC信息技术联合技术委员会 1 )负责信息技术方面标准的制定工作

ndash SC 2 ( SubCommittee 2 on Coded character sets 编码字符集分会 2 )下的 WG 2 ( Working Group 2 on Universal coded character set 通用编码字符集工作组 2 )负责制定国际通用字符编码标准即后来公布的 ISOIEC 10646

发展历史bull 1984年 ISO 的一些会员国发起制定新的国际字符编码标准同年 4月 ISO

与 IEC 联合成立 ISOIEC JTC1SC2WG2 1987年 3月制定出编码架构1992年 6月投票通过第二版国际标准草案

bull 1993年 5月推出 10646 标准时将内容分成两个部分标准首先发布的是其中的第 1 个部分(体系结构与基本多文种平面)的第 1版( Edition 1 ) ISOIEC 10646-11993 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane(信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

bull 2000年 3月推出 10646 标准第一个部分的第 2版( Edition 2 ) ISOIEC 10646-12000 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane

bull 2001年 10月推出 10646 标准第 2版的第二个部分(辅助平面)的第 1版( Edition 1 ) ISOIEC 10646-22001 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 2 Supplementary Planes

bull 2003年 10月推出的 10646新标准(第 1版 Edition 1 )将老标准中的两个部分标准合并成了一个单一的标准 ISOIEC 106462003 Information technology -- Universal Multiple- Octet Coded Character Set (UCS) 后来又于 2010年 2012年和 2014年分别推出了 ISOIEC 106462010 (第 2版)ISOIEC 106462012 (第 3版)和 ISOIEC 106462014 (第 4版)

UCS 通用字符集bull 通用字符集( Universal Character Set UCS )是

ISOIEC 10646 标准所定义的字符编码方式采用 4字节编码又称为 Universal Multiple-Octet Coded Character Set (通用多八位编码字符集)

bull 通用字符集是所有包括了其他字符集它保证了与其他字符集的双向兼容即如果你将任何文本字符串翻译到 UCS 格式然后再翻译回原编码你不会丢失任何信息

bull UCS 包含了已知语言的所有字符除了拉丁语希腊语斯拉夫语希伯来语阿拉伯语亚美尼亚语格鲁吉亚语还包括中文日文韩文这样的象形文字 UCS 还包括大量的图形印刷数学科学符号

名字与组合字符bull UCS 不仅给每个字符分配一个代码而且赋予了

一个正式的名字表示一个 UCS 或 Unicode值的十六进制数通常在前面加上ldquo U+rdquo 例如ldquo U+0041rdquo代表字符ldquo Ardquo

bull UCS里有些编码点分配给了组合字符组合字符机制允许在任何字符后加上重音符或其他指示标记 这在科学符号中特别有用 比如数学方程式和国际音标字母 可能会需要在一个基本字符后组合上一个或多个指示标记

实现级别bull 并不是所有的系统都需要支持像组合字符这样的的先进

机制因此 ISO 10646 指定了如下三种实现级别ndash 级别 1不支持组合字符和韩语 Hangul Jamo 字符 ( 一种特

别的 更加复杂的韩国文的编码 使用两个或三个子字符来编码一个韩文音节 )

ndash 级别 2类似于级别 1 但在某些文字中允许一列固定的组合字符 (例如 希伯来文 阿拉伯文 Devangari 孟加拉语 果鲁穆奇语 Gujarati Oriya 泰米尔语 Telugo 印 埃纳德语 Malayalam 泰国语和老挝语 ) 因为如果没有最起码的几个组合字符 UCS就不能完整地表达这些语言

ndash 级别 3支持所有的 UCS 字符如可以在任意一个字符上加上一个箭头或 和一个 tilde(颚化符号即字母上面的~ )

编码方式bull UCS 有如下两种编码方式

ndash UCS-2与 Unicode 的 2 字节编码基本一样ndash UCS-4 4 字节编码目前是在 UCS-2 前加

上 2 个全零的字节bull UCS 还有 UTF 编码方式参见下面第 4小节ldquo 4 UTFrdquo

3 Unicode 与 ISOIEC 10646bull 关系

ndash 历史上存在两个独立的尝试创立单一字符集的组织即国际标准化组织( ISO )和多语言软件制造商组成的统一码协会组织( Unicodeorg )前者开发的 ISO 10646项目后者开发的 Unicode项目因此最初制定了不同的标准

ndash 1991年前后两个项目的参与者都认识到世界不需要两个不兼容的字符集于是它们开始合并双方的工作成果并为创立一个单一编码表而协同工作

ndash 从 Unicode20开始 Unicode采用了与 ISO 10646-1相同的字库和字码 ISO 也承诺 ISO10646 将不会替超出 U+10FFFF 的 UCS-4 编码赋值以使得两者保持一致

ndash 两个项目仍都存在并独立地公布各自的标准但 Unicode协会和 ISOIEC JTC1SC2 都同意保持两者标准的码表兼容并紧密地共同调整任何未来的扩展

异同bull Unicode协会公布的 Unicode 标准包含了 ISO 10646-1 实现级别

3 的基本多文种平面在两个标准里所有的字符都在相同的位置并且有相同的名字

bull ISO 10646 标准就像 ISO 8859 标准一样只不过是一个简单的字符集表它定义了一些编码的别名指定了一些与标准有关的术语并包括了规范说明指定了怎样使用 UCS连接其他 ISO 标准的实现等

bull Unicode 标准额外定义了许多与字符有关的语义符号学并详细说明了绘制某些语言(如阿拉伯语)表达形式的算法处理双向文字(比如拉丁文和希伯来文的混合文字)的算法排序与字符串比较所需的算法等等

bull 考虑到 Unicode 标准有一个易记的名字既便宜又包括更多的辅助信息因而它使用得更广泛然而

bull 一般认为用于打印 ISO 10646-1 标准的字体在某些方面的质量要高于用于打印 Unicode 20 的专业字体设计者总是被建议说要两个标准都实现但一些提供的样例字形有显著的区别 ISO 10646-1 标准同样使用四种不同的风格变体来显示表意文字如中文日文和韩文 (CJK) 而 Unicode 20 的表里只有中文的变体

4 UTFbull Unicode 和 UCS 都是一个字符集可以看作为内码bull UTF ( UnicodeUCS Transformation Format 统一码

通用字符集转换格式)是一种编码方式它的出现是因为 Unicode 和 UCS 不适宜在某些场合直接传输和处理

bull UCS 和 Unicode 只是分配整数给字符的编码表现在存在好几种将一串字符表示为一串字节的方法(如高或低位字节在前)

bull 最显而易见的两种方法是将 UCS 和 Unicode 文本存储为 2 个 或 4 个字节序列的串这两种方法的正式名称分别为 UCS-2 和 UCS-4

bull 常用的 UTF具体编码方式有 UTF-8 UTF-16 和 UTF-32

UTF-8

bull UTF-8 是 UTF 的一种具体编码方式在 ISO 10646-1 的附录 R 和 IETF 的 RFC 2279 里定义

bull 由于要使文档中的文字与 ASCII兼容故 UTF-8 选择了使用可变长度字节来储存 Unicode 和 UCS 例如ndash ASCII 字母继续使用 1 字节储存ndash 重音文字希腊字母或西里尔字母等使用 2 字节来储存ndash 常用的汉字就要使用 3 字节ndash 辅助平面字符则使用 4 字节ndash 即 ASCII 不作变换其他字符做变长编码每个字符 1~4 字节

bull UTF-8 通常作为外码bull 在 UTF-8 文件的开首很多时都放置一个 U+FEFF 字符

(UTF-8 以 EF BB BF 代表 ) 以显示这个文字档案是以UTF-8 编码

UTF-8 的优点bull 与 CPU 字节顺序无关可以在不同平台之间交流

bull 容错能力高任何一个字节损坏后最多只会导致一个编码码位损失不会链锁错误 ( 如 GB 码错一个字节就会整行乱码 )

UTF-8 的缺点bull UTF-8 使用可变长度字节储存使计算机程序设计变得复杂 (故此在计算机程序或操作系统内部多采用 UCS-2 编码 )

bull 在旧式的中文日文及朝鲜文编码之中每字符都使用 2 字节储存而 UTF-8 须使用 3 字节 (采用 UTF-16 编码则可只使用 2字节储存 )

bull 泰语以往使用的 ISO 8859-11 每字符只使用 1 字节储存而 UTF-8 须使用 3 字节

UTF-8储存的多字节串字符bull U-00000000 - U-0000007F 0xxxxxxx bull U-00000080 - U-000007FF 110xxxxx 10xxxxxx

bull U-00000800 - U-0000FFFF 1110xxxx 10xxxxxx

10xxxxxx bull U-00010000 - U-001FFFFF 11110xxx 10xxxxx

x 10xxxxxx 10xxxxxx bull 在多字节串中第一个字节的开头ldquo 1rdquo 的数目就

是整个串中字节的数目bull 每个使用 UTF-8储存的字符除了第一个字节外其余字节的头两个位元都是以 10 开始使文字处理器能够较快地找出每个字符的开始位置

UTF-16bull UTF-16 是 UTF 的另一种具体编码方式在 ISO 1064

6-1 的附录 Q 和 IETF 的 RFC 2781 里定义bull UTF-16 是变长码( 2 或 4 字节)大致相当于 20位编码值在 0 到 0x10FFFF 之间基本上就是 Unicode 编码的实现 UTF-16 与 CPU 字序有关但因为最省空间常作为网络传输的外码 UTF-16 是 Unicode 的完美编码

bull lt0x10000 的直接用其对应的 16位整数编码位于 0x10000 ~ 0x10FFFF 之间的用 0xD800~0xDBFF 的 16位整数后跟 0xDC00~0xDFFF 的 16位整数的 4 字节编码 gt 0x10FFFF 的不能用 UTF-16 表示

bull 在 Unicode 的 BMP 中定义的字符(无论是拉丁字母汉字或其他文字或符号)一律使用 2 字节存储而在辅助平面定义的字符则以两个 2 字节的值来存储

UTF-16 的特点bull UTF-16比起 UTF-8 的好处在于大部分字符都以固定长

度的 2 字节存储但 UTF-16却无法相容于 ASCII 编码bull UTF-16 有两种编码模式即大尾序( big Endian 高位字节在前)和小尾序( little Endian 高位字节在后)储存形式(一般來說以 Macintosh 制作和存储的文字使用大尾序格式以 Microsoft 或 Linux 制作和存储的文字使用小尾序格式)

bull 为了弄区分 UTF-16 文件的大小尾序在 UTF-16 文件的开头都会放置一个 U+FEFF 字符作为字节顺序标记 (UTF-16LE 以 FF FE代表 UTF-16BE 以 FE FF代表 ) 以显示该文档是以 UTF-16 编码的

UTF-32

bull UTF-32 仅使用了 Unicode范围 (0 到 0x10FFFF) 的 32位编码相当于 UCS-4 的子集

bull 由于 Unicode 和 ISOIEC 10646 的编码和结构与前面讲过的 GB 13000 类似或等价这里就不再做详细的介绍

5支持bull 现在 UnicodeUCS 已经获得了十分广泛的支

持ndash网络与浏览器(如 HTML 4050 XML 与 IE

Safari Netscape Firefox Chrome Opera Edge 等)

ndash操作系统(如 Windows NT2000XPVista7810 Mac OS X iOS Android和 Linux )

ndash 编程语言新版本(如 CC++JavaObjective-CC Swift 等)

Unicode 代码的浏览器显示代码 字符标准名称 (英语 )

浏览器的显示

amp65 大写拉丁字母 A A

amp223 小写拉丁字母 Sharp S szlig

amp254 小写拉丁字母 Thorn thorn

amp916 大写希腊字母 Delta Δ

amp1049 大写斯拉夫字母 Short I Й

amp1511 希伯来字母 Qof ק

amp1605 阿拉伯字母 Meem م

amp3671 泰文数字 7 ๗amp4688 埃塞俄比亚音节文字 Qha ቐ

amp12354 日语平假名 A あamp12450 日语片假名 A アamp21494 简体汉字 叶 叶amp33865 繁体汉字 葉 葉amp50685 韩国音节文字 Yeob 엽

23 文字输出bull 文字输出是指将计算机内的字符编码通过计算机的输出设备(如显示器打印机喇叭)展现出所对应字符的图形或声音供人们阅读或聆听

bull 本节主要介绍文字图示输出的字形技术bull 文字声音输出属于语音合成只在本节的末尾作简单的介绍

231 字形技术bull 文字 = 图形bull 不论是象形文字中的单字还是拼音文字

中的字母都是用图形来表示的bull 在计算机里文字的表示 输出(显示和打

印)涉及ndash 字型ndash 字体ndash 字库

1字型bull 字型指构造和生成字形的方法一般可分为

ndash 点阵字 DOS 显卡 ROM 金山 科印特点似位图显示快占空间(字库大)放大后有马赛克效应

bull 显示字母 88 汉字 1616bull 打印 2424 4848 6464

ndash 矢量字单线条用于笔式绘图仪特点字库小算法简单难看

ndash 轮廓字用曲线描绘字的轮廓输出效果好所见即所得(WYSWYG) 可无级放大易实现空心 阴影 填充 变形等各种特效功能轮廓曲线一般采用样条曲线如 TrueType (Apple 1991 Mac OS Microsoft 1992 Windows 31)用的是二次 B 样条 Bezier曲线中文之星 RichWin采用的是三次 B 样条 Bezier曲线

字型种类

2字体bull 字体指字的形状风格如

ndash 汉字的

ndash 英文的

宋体楷体黑体仿宋

行楷隶书新魏幼圆

Times New Roman Arial Narrow Courier New

常用汉字字体bull 宋体mdashmdash宋体来自于北宋时雕版刻书所采用的欧体字(唐朝欧阳询体)宋体字的横顿拉捺挑钩别具特色间架平正疏密适中字体秀丽遒劲但笔画横细竖粗适合于刀刻不宜于手写现在宋体广泛用于印刷常来表现文档的正文

bull 仿宋体mdashmdash 1920年钱塘的丁辅之与丁善之等人将明代以后盛行的方廓形字体加以改造创造出长形和方形的聚珍仿宋后来演化为现在的仿宋体仿宋体比较接近于手写体为宋体和楷体的折中是采用的宋体的结构和楷体的笔法而成现常来表现打印文件以及文档的摘要和注释等

bull 黑体mdashmdash黑体是适应工艺美术的发展而出现的一种等线体是从日本引进的黑体的结构与宋体没有什么差别只是其笔画粗细一致健实粗壮主要用于文档的标题和重点及标语广告等方面

bull 楷体mdashmdash楷体源于楷书楷体的笔画圆浑笔调灵活结构端正美观但不宜于木板雕刻所以直到清末西洋的石板印刷术传入后才开始广泛用于印刷现代的楷体创造于 20世纪的二三十年代主要用于文档的正文(多用于中小学教材)也可用于工艺美术等方面

3字库bull 字库为一种文字的某一字体的所有字符的集合一般存放在一个磁盘文件中

bull 由于象形文字中单字的数量大(成千上万)而拼音文字中字母的数量小(不到一百个)所以字库的大小有很大的差别

bull 为了使文档界面丰富多彩常见的字处理软件都支持多种字体带有众多字库

4点阵字型的国家标准bull 我国已经公布了若干字体的点阵字型之国家标准

ndash GB 50071-19852001 信息技术 汉字编码字符集(基本集) 24 点阵字型

ndash GB 50072-19852001 信息技术 汉字编码字符集(辅助集) 24 点阵字型

ndash GB 5199-19862001 信息技术 汉字编码字符集(基本集) 16 点阵字型 宋体

ndash GB 6345-19862001 信息技术 汉字编码字符集(基本集) 32 点阵字型 宋体

ndash GB 12041-2001 信息技术 汉字编码字符集(基本集) 48点阵字型 宋体

ndash GB 17698-1999 信息技术 通用多八位编码字符集( I 区) 汉字 16 点阵字型

232 语音合成bull 文字的声音输出主要使用的是语音合成的技术bull 语音合成功能是ldquo文rarr语rdquo转换bull 文语转换 TTS (Text-To-Speech) 是将文本形式的信息转换成自然语音的一种技术其最终目标是使计算机输出清晰而又自然的声音

bull 英语的语音合成在上世纪 80年代就早已成熟而中文 汉语的合成现在也趋于成熟并有了广泛的应用(如汽车导航仪智能手机等)

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 38: 第一篇  媒体

第 1 区的部分非汉字图符

1区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 middot ˉ ˇ uml 々 mdash ~ hellip lsquo rsquo ldquo

17~32 rdquo 〔 〕 〈 〉 《 》 「 」 『 』 〖 〗 【 】 plusmn

33~48 times divide ∶ and or sum prod cup cap isin ∷ radic perp ∥ ang

49~64 ⊙ int ∮ equiv ≌ asymp ∽ prop ne ltu gtu le ge infin ∵ there4

65~80 deg prime Prime $ curren ¢ £ permil sect

81~94 rarr larr uarr darr

第 16 区的部分一级汉字

16区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 啊 阿 埃 挨 哎 唉 哀 皑 癌 蔼 矮 艾 碍 爱 隘 鞍

17~32 氨 安 俺 按 暗 岸 胺 案 肮 昂 盎 凹 敖 熬 翱 袄

33~48 傲 奥 懊 澳 芭 捌 扒 叭 吧 笆 八 疤 巴 拔 跋 靶

49~64 把 耙 坝 霸 罢 爸 白 柏 百 摆 佰 败 拜 稗 斑 班

65~80 搬 扳 般 颁 板 版 扮 拌 伴 瓣 半 办 绊 邦 帮 梆

81~94 榜 膀 绑 棒 磅 蚌 镑 傍 谤 苞 胞 包 褒 剥

第 56 区的部分二级汉字

56区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 亍 丌 兀 丐 廿 卅 丕 亘 丞 鬲 孬 噩 丨 禺 丿 匕

17~32 乇 夭 爻 卮 氐 囟 胤 馗 毓 睾 鼗 丶 亟 鼐 乜 乩

33~48 亓 芈 孛 啬 嘏 仄 厍 厝 厣 厥 厮 靥 赝 匚 叵 匦

49~64 匮 匾 赜 卦 卣 刂 刈 刎 刭 刳 刿 剀 剌 剞 剡 剜

65~80 蒯 剽 劂 劁 劐 劓 冂 罔 亻 仃 仉 仂 仨 仡 仫 仞

81~94 伛 仳 伢 佤 仵 伥 伧 伉 伫 佞 佧 攸 佚 佝

3汉字编码的辅助集bull 除了GB 2312基本集的 6 763 个简体汉字外国家标

准还给出了汉字编码字符集的多个辅助集bull 第二 四辅助集分别增加了 7 237 7 039 个简体汉字bull 第一和三 五辅助集则分别是与基本集和第二 四辅助集所对应的繁体汉字字符集的国家标准

bull 基本集加上辅助集共有 21 039 个简体汉字和 21 142个繁体汉字

bull 繁体汉字之所以多一些是因为在第一辅助集中有时几个繁体字对应一个简体字因此比基本集多出 103 个汉字

bull 基本集和辅助集的代码页之间靠其编码字节的最高位来区分

编码字符的分页标志

双字节汉字编码的页面结构第二字节 列号

行号 0 middot middot middot 32 33 34 helliphellip 125 126 127 128middot middot 160 161 162 helliphellip 254 255 0 middot middot 32

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

33 34 middot middot middot 126

1 2 middot middot middot 94

第四五辅助集 (7 039个汉字)

127

(兼容ASCII)

128 middot middot 160

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

161 162 middot middot middot 254

1 2 middot middot middot 94

第二三辅助集 (7 237个汉字)

1 2 middot middot middot 94

基本集第一辅助集 (6 763 6 866个汉字) (682个非汉字图符)

第一字节

255

4 Big5

bull 除了中国大陆使用的简体汉字外在台湾香港澳门和海外华侨社区使用的是传统的繁体汉字

bull 简体汉字使用 GB (国标)系列编码标准bull 繁体汉字一般使用的是 Big5内码(大五码)即台湾的ldquo资讯工业策进会rdquo发布的《标准交换码 (Ⅲ码 )》收录汉字 13 053 个

bull Big5内码是 1984年由台湾财团法人资讯工业策进会与宏碁 (Acer) 神通 (MiTAC) 佳佳零壹 (Zero One) 大众 (FIC) 等五大软件公司联合推出故称为大五码

BIG5 的代码空间低位字节

00 hellip 3F 40 hellip 7E 7F hellip A0 A1 hellip FE FF

高位字节

00middot

80

81middot

A0用户定义区 用户定义区

A1A2A3

非汉字图符 非汉字图符

A4middot

C6常用汉字 常用汉字

C7C8

用户定义区 用户定义区

C9middot

F9次常用汉字 次常用汉字

FAmiddot

FE用户定义区 用户定义区

FF

5少数民族文字编码bull 中国共有 56 个民族除了汉回满族一般使用汉语外其他少数民族大多有自己的民族语言

bull 我国各民族使用的 50 多种文字可以分为字母式结构文字和非字母式结构文字两大类ndash 字母式结构的有拉丁文斯拉夫文蒙古文维吾尔文哈萨克文藏文和朝鲜文等字母式

ndash 非字母式结构的有汉字象形文字图画文字和音节文字等bull 各民族文字的书写方向也有不同

ndash 壮文藏文朝鲜文彝文等的字从左到右行从上到下ndash 维吾尔文哈萨克文和柯尔克孜文等的字从右到左行从上

到下ndash 蒙古文和满文的字从上到下行从左到右ndash 汉字的书写方向有两种

bull 大陆的简体汉字的字从左到右行从上到下bull 港台与古旧书的繁体汉字的字从上到下行从右到左

国家标准bull 下面按发布时间列出若干已经公布的我国少数民族文字

编码集的国家标准(这些字符集一般分成两类对字母式结构文字采用八位编码对非字母式结构文字采用双字节编码)ndash GB 8045-87《信息处理交换用蒙古文七位和八位编码图形字

符集》收 82 个蒙古文字母和 12 个其他符号共 94 个字符ndash GB 12050-89《信息处理交换用维吾尔文编码图形字符集》收 32 个维吾尔文字母一个维吾尔文复合字符和 37 个其他符号共 70 个字符

ndash GB 12052-89《信息交换用朝鲜文编码字符集》收 5297 个朝鲜文字和 682 个其他符号(与 GB 2132同)共 5 979 个字符

ndash GB 13134-91《信息交换用彝文编码字符集》收 1165 个彝文字符和 688 个其他符号共 1853 个字符

ndash GB 16959-1997《信息技术 信息交换用藏文编码字符集 基本集》收 41 个藏文字母 36 个藏文主字 13 个元音字符12 个语音字符 10 个藏文数字 10 个半值符一个控制用连接符和 46 个其他藏文图形符号共 169 个字符

6 GB 13000bull GB 13000 是与 ISOIEC 10646 等价的国际通用编码字符集标准收汉字 2万多个但是与 GB 2312 和 GBK 不兼容

bull 1993年 5月 ISO 与 IEC 联合推出了可用于世界各种文字的通用编码字符集的国际标准的第 1部分ndash ISOIEC 10646-11993 Information technology -- Universal Multiple-Octe

t Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane (信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

ndash 该标准收字符 96万个几乎涵盖世界上的所有文字其中包含汉字 21 003 个

bull 1993年底我国推出了等同于国际标准 ISOIEC 1064611993 的强制性国家标准 ndash GB 130001-93《信息技术 通用多八位编码字符集( UCS ) 第一部分

体系结构与基本多文种平面》ndash 该标准于 1993年 12月 24日被国家技术监督局批准 1994年 8月 1日起实施

GB 13000 的主要特点

bull 世界各语言文种字符统一编码避免冲突便于国际交流

bull 编码空间宽阔连续每个图形字符的编码唯一(一字一码)不再存在兼容性问题

bull 按文种而不是按语言编码避免重复和浪费(如中日韩汉字的统一编码 CJK )

bull 与 GB 2312 和 GBK 不兼容

体系结构bull UCS 的体系结构是基于所谓ldquo多八位rdquo的而ldquo八位rdquo就是一个字节ldquo多八位rdquo就是多个字节

bull UCS采用 4 个字节来表征组面行位的四维空间bull 整个 UCS空间包含 128 个组( 0x00组 ~0x7F组)每组有 256 个平面( 0x00 平面 ~0xFF 平面)每个平面有 256 行每行又由 256 个字位构成

bull UCS共有( 128 times 256 = ) 32 768 个平面每个平面有( 256 times 256 = ) 65 536 个字位每个字位对应于一个字符的编码

bull 目前的编码只限于 00组已经定义的平面有 00组的00 平面mdashmdash称之为基本多文种平面 BMP ( Basic Multilingual Plane ) 及若干辅助平面

UCS 的全部编码空间

每个平面256times256 个

字位

00组 00 平面

00组 FF 平面

01组 00 平面

7F组 00 平面00

01组

7F组

UCS 的 00组

BMPbull BMP = Basic Multilingual Plane 基本多文种平面bull BMP 用作双八位编码字符集称之为 UCS-2 它被

分成四个区ndash A- 区(字位 0x0000~0x4DFF 有 19 903 个字位)用于

字母文字音节文字以及各种符号ndash I- 区(字位 0x4E00~0x9FFF 共 20 992 个字位)用于中日韩统一汉字( CJK )

ndash O- 区(字位 0xA000~0xDFFF 共 16 384 个字位)保留未来标准化用

ndash R- 区(字位 0xE000~0xFFFD 共 8 190 个字位)为 BMP 的限制使用区包括专用字符变形显现形式及兼容字符

BMP总貌

A-区

00~33 拼音文字(见下页)

34~3D 朝鲜文

3E~44 朝鲜文补充 -A

45~4D 朝鲜文补充 -B

I-区 4E~9F CJK统一汉字O-区 A0~DF

R-区

E0~F8 专用区

F9~FA CJK兼容汉字FB 拼音文字变形显现形式

FC~FD 阿拉伯文变形显现形式 -A

FE半形组合用标志

CJK兼容形式

小写变体

阿拉伯文变形显现形式 -B

FF 半形及全形字符 特殊字符

BMP 的0x00~0x33

行字母文字区

00 基本拉丁文 拉丁文-1补充

01 拉丁文扩充-A 拉丁文扩充-B

02 拉丁文扩充-B 国际音标扩充 进格修饰字符

03 组合用发音符 基本希腊文 希腊符号及哥普特文

04 西里尔文

05 美亚尼亚文 希伯来文(基本和扩充)

06 基本阿拉伯文 阿拉伯文扩充

07

08

09 梵文 孟加拉文

0A 锡克教文 古吉拉特文

0B 奥利雅文 泰米尔文

0C 泰卢固文 卡纳达文

0D 德拉维族文

0E 泰文 老挝文

0F

10 格鲁吉亚文

11 朝鲜文字母

12~1D

1E 拉丁文扩充增补

1F 希腊文扩充

20 广义标点 上下标 货币符号 符号组合用区分标志

21 类似字母的符号 数字形式 箭头

22 数学运算符

23 零杂技术用符号

24 控制图符 光学识别符 带括号的字母数字

25 制表符 方块元素 几何图形符

26 零杂符号

27 示意符等

28~2F

30 CJK符号和标点 平假名 片假名

31 注音 朝鲜文兼容字母 CJK零杂字符

32 带括号的CJK字母及月份

33 CJK兼容字符

留作将来标准化用

非图形字符

表示形式bull GB 13000提供了字符编码表示的两种替代使用的形式

ndash 双八位 BMP 形式( UCS-2 )mdashmdash允许使用 BMP 中的字符且每个字符用两个字节表示

ndash 肆八位正则形式( UCS-4 )mdashmdash允许使用 GB 13000 中的全部字符且每个字符用四个字节表示

bull 除了 UCS-24外还有另外两种变形的表示形式ndash UTF-8 (单字节 ~ 多字节)ndash UTF-16 (双字节和 4 字节与 UCS-2 等价)ndash 目前在工业上的实现均为 UTF-16 ( UCS-2 )和 UTF-8ndash UTF = Unicode UCS Transformation Format 统一码 UC

S转换格式bull 关于统一码我们会在下一小节详细介绍

7 GBK 与 GB 18030bull 由于 GB 13000 标准与 GB 2312 标准的字符编码不兼容作为过渡在国家信息技术标准化委员会的主持下制定了与 GB 2312兼容的《汉字内码扩展规范( GBK )》( K 为扩展的ldquo扩rdquo字的拼音首字母)并于 1995年 12月 15日由原国家技术监督局标准司联合原电子工业部科技与质量监督司作为指导性技术规范发布实施

bull 2000年 GBK又被国家标准 GB 18030-2000《信息技术 信息交换用汉字编码字符集 基本集的扩充》所代替该标准收汉字 2万 7千个

bull 与 GB 2312 一样 GB 18030 也为中国的强制性国家标准微软公司的 Windows XPVista78 中文版与苹果公司的 Mac OS X 和 iOS 谷歌公司的 Android (安卓)等操作系统已经全面支持 GBK

GB 18030 的码位范围分布

字节数 码位空间 码位数目

单字节 0x00~0x7F 128

双字节第 1字节 第 2字节

23 9400x81~0xFE

0x40~0x7E 0x80~0xFE

四字节第 1字节 第 2字节 第 3字节 第 4字节

1 587 6000x81~0xFE 0x30~0x39 0x81~0xFE 0x30~0x39

GB 18030的

总体结构图

收录字符bull 单字节部分mdashmdash收录了GBT 11383 的 0x00~0x7F 全部 128 个字符(似 ASCI

I )bull 双字节部分mdashmdash收录内容如下 (21 003 个汉字和 884 个符号共 21 887 个字符 )

ndash GB 130001-93 的全部 CJK 统一汉字字符 20 902 个( GB 2312 的编码汉字在双字节 2 区其他 CJK 统一汉字在双字节 34 区)

ndash GB 130001-93 的 CJK兼容区挑选出来的 21 个汉字ldquo郎凉秊helliphellip﨨﨩rdquo( 0xFD9C~0xFDA0 和 0xFE40~0xFE4F )

ndash GB 130001-93 中收录而 GB 2312未收录的台湾地区使用的图形字符 139 个ldquoˊˋ˙helliphelliprdquo( 0xA840~0xA895 和 0xA940~0XA988 )

ndash GB 130001-93收录的其他字符 31 ( 13)个(在双字节 5 区)ndash GB 2312-80 中的非汉字字符 682 个( 0xA1A1~0xA9EF )ndash GB 12345-90 的竖排标点符号 19 ( 29)个ldquo︵︶︹helliphellip︳︴rdquo( 0xA6D9~0xA6

F5 )ndash GB 2312-80未收录的 10 个小写罗马数字ldquoⅰⅱⅲhelliphellipⅸⅹrdquo( 0xA2A1~ 0xA2A

A )ndash GB 2312-80未收录的带音调的汉语拼音字母 5 ( 4)个ldquo ńňǹrdquo 以及 ɑ 和 ɡ ( 0

xA8BB~0xA8C0 )ndash 汉字数字零ldquo〇rdquo (0xA996) 和欧元符ldquoeurordquo (0xA2E3)ndash 表意文字描述符 13 个ldquohelliphelliprdquo( 0xA989~0xA995 )ndash 对 GB 130001-93增补的汉字和部首 构件 80 个ldquohelliphellip䶮rdquo( 0xFE50~ 0x

FEA0 )bull 四字节部分mdashmdash收录了上述双字节字符之外的包括 CJK 统一汉字扩充 A 在内

的 GB 130001-93 中的全部字符

GB 18030双字节部分的码位安排

类别 区名 码位范围 码位数 字符数 内容

符号区双字节 1区 A1A1~A9FE 846 718

GB 2312非汉字字符等

双字节 5区 A840~A9A0 192 166 台湾图符等

汉字区双字节 2区 B0A1~F7FE 6768 6763 GB 2312汉字双字节 3区 8140~A0FE 6080 6080 CJK统一汉字双字节 4区 AA40~FEA0 8160 8160 CJK统一汉字等

用户自定义区双字节用户区 1 AAA1~AFFE 564

用户自定义字符双字节用户区 2 F8A1~FEFE 658

双字节用户区 3 A140~A7A0 672

GB 18030双字节部分的编码空间结构图 尾字节

0x40larr――rarr0x7E 0x80larr――rarr0xA0 0xA1larr――――――――――――rarr0xFE

0x81 uarr darr

0xA0

0xA1 uarr darr

0xA7

0xA8 0xA9

首字节

0xAA uarr | | | | | | | | | | darr

0xFE

双字节 3区

汉字区6 080个码位

双字节用户区 3

用户自定义区672个码位

双字节 5区 图形符号区192个码位

双字节 4区

汉字区8 160个码位

双字节 1区

图形符号区564个码位

双字节 2区

汉字区6 768个码位

双字节用户区 1 用户自定义区564个码位

双字节用户区 2 用户自定义区658个码位

223 国际通用字符编码

bull Unicode (统一码)是由多语言软件制造商组成的统一码协会( httpwwwUnicodeorg)所制定一种国际字符的编码标准

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull 本节主要介绍这两种关系密切的主流国际字符编码标准的来历编码方案各自特点与相互关系

1 Unicode 统一码bull 发展历史

ndash 1987年施乐( Xerox )公司的 Joe Becker 与 Lee Collins 和苹果( Apple )公司的 Mark Davis 等人开始讨论统一编码 1987年 12月 Joe Becker造词 Unicode (统一码)含义为ldquo unique universal and uniform character encodingrdquo (单一通用统一的字符编码) 1989年 2月开始定期召开统一码会议 1989年 9月公布 Unicode草案

ndash 1991年 1月 3 日由 Xerox Apple Sun IBM Aldis Microsoft 等公司出资在美国加州成立了统一码协会( Unicode Consortium )并由协会设立非盈利性的统一码公司( Unicode Inc )后来 HP Adobe Borland Digital Lotus Novell 等公司也纷纷加入 1991年 1月成立统一码技术委员会 UTC 并制定了其规程

ndash 1991年 2月在 Ed Hart 的推动下进行了ldquo统一码对 10464 国际标准草案 1rdquo 的对话Unicode 与 ISOIEC 10646开始走向融合

ndash 1991年 8月发布 Unicode 标准 10版的第 1卷(体系结构非表意字符) 1992年6月发表 Unicode 10版的第 2卷(表意字符) 1993年 6月发布 Unicode 11版与 1993年 5月公布的 ISOIEC 10646-11993 实现了合并

ndash 1996年 7月发布 Unicode 20版ndash 1999年 9月发布 Unicode 30版ndash 2003年 4月发布 Unicode 40版(对应于 ISOIEC 106462003 ) 2004年 3月 31日发布 Unicode 401版 2005年 3月 31日发布 Unicode 410版

ndash 2006年 7月 14日发布 Unicode 50版 2008年 4月 4日发布 Unicode 51版 2009年 12月 22日发布 Unicode 52版

ndash 2010年 10月发布 Unicode 60版 2012年 1月发布 Unicode 61版(对应于 ISOIEC 106462012 ) 2012年 9月推出 Unicode 62版 2013年 9月推出 Unicode 63版

ndash 2014年 6月 16日发布 Unicode 70版 ndash 2015年 6月 17日发布 Unicode 80版

字符集bull Unicode 字符集的空间分成双字节的基本多语言平面 (Basic Multilingual Pla

ne BMP) 和 4 字节的辅助多语言平面 (Supplementary Multilingual Plane SMP) 两种

bull BMPndash Unicode 的基本平面或基本多语言平面 BMP 对应于 ISOIEC 10646-1 的第 00组的 00 平面( BMP )即 Unicode 与 ISOIEC 10646 的 BMP 中的字符编码完全一致

bull SMPndash 鉴于 Unicode 原有的 16位元空间不足以应用从 Unicode 31版本开始设立了 16 个辅助平面使 Unicode 的可使用空间由六万多字增至约一百万字

ndash 原有的 Unicode双字节空间称为基本平面或基本多语言平面 BMP 辅助多语言平面 SMP 字符要用 4 字节来储存

ndash 第一辅助平面摆放拼音文字(主要为现时已不再使用的文字)及符号范围在 U+10000 - U+1FFFD

ndash 第二辅助平面又称为表意文字补充平面 (Supplementary Ideographic Plane 简称 SIP) 现时摆放ldquo中日韩统汉字扩展 B 区rdquo共 43253 个汉字范围在 U+20000 - U+2FFFD

ndash 第三至十三辅助平面尚未使用ndash 第十四辅助平面又称为特殊用途补充平面 (Supplementary Special-purpose Pl

ane 简称 SSP) 摆放 Language tags 和 Variation Selectors 它们都是控制字符范围在 U+E0000 - U+E01FF

ndash 第十五至十六辅助平面都是私人使用区它们的范围是 U+F0000 - U+FFFFD 及 U+100000 - U+1000FD

bull Unicode 字符集的具体编码方式参加第 4小节ldquo 4 UTFrdquo

2 ISOIEC 10646

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull ISOIEC 10646 标准由 ISO 与 IEC 联合成立的 ISOIEC JTC1SC2WG2 制定ndash JTC 1 ( Joint Technical Committee 1 on Information

technology ISOIEC信息技术联合技术委员会 1 )负责信息技术方面标准的制定工作

ndash SC 2 ( SubCommittee 2 on Coded character sets 编码字符集分会 2 )下的 WG 2 ( Working Group 2 on Universal coded character set 通用编码字符集工作组 2 )负责制定国际通用字符编码标准即后来公布的 ISOIEC 10646

发展历史bull 1984年 ISO 的一些会员国发起制定新的国际字符编码标准同年 4月 ISO

与 IEC 联合成立 ISOIEC JTC1SC2WG2 1987年 3月制定出编码架构1992年 6月投票通过第二版国际标准草案

bull 1993年 5月推出 10646 标准时将内容分成两个部分标准首先发布的是其中的第 1 个部分(体系结构与基本多文种平面)的第 1版( Edition 1 ) ISOIEC 10646-11993 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane(信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

bull 2000年 3月推出 10646 标准第一个部分的第 2版( Edition 2 ) ISOIEC 10646-12000 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane

bull 2001年 10月推出 10646 标准第 2版的第二个部分(辅助平面)的第 1版( Edition 1 ) ISOIEC 10646-22001 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 2 Supplementary Planes

bull 2003年 10月推出的 10646新标准(第 1版 Edition 1 )将老标准中的两个部分标准合并成了一个单一的标准 ISOIEC 106462003 Information technology -- Universal Multiple- Octet Coded Character Set (UCS) 后来又于 2010年 2012年和 2014年分别推出了 ISOIEC 106462010 (第 2版)ISOIEC 106462012 (第 3版)和 ISOIEC 106462014 (第 4版)

UCS 通用字符集bull 通用字符集( Universal Character Set UCS )是

ISOIEC 10646 标准所定义的字符编码方式采用 4字节编码又称为 Universal Multiple-Octet Coded Character Set (通用多八位编码字符集)

bull 通用字符集是所有包括了其他字符集它保证了与其他字符集的双向兼容即如果你将任何文本字符串翻译到 UCS 格式然后再翻译回原编码你不会丢失任何信息

bull UCS 包含了已知语言的所有字符除了拉丁语希腊语斯拉夫语希伯来语阿拉伯语亚美尼亚语格鲁吉亚语还包括中文日文韩文这样的象形文字 UCS 还包括大量的图形印刷数学科学符号

名字与组合字符bull UCS 不仅给每个字符分配一个代码而且赋予了

一个正式的名字表示一个 UCS 或 Unicode值的十六进制数通常在前面加上ldquo U+rdquo 例如ldquo U+0041rdquo代表字符ldquo Ardquo

bull UCS里有些编码点分配给了组合字符组合字符机制允许在任何字符后加上重音符或其他指示标记 这在科学符号中特别有用 比如数学方程式和国际音标字母 可能会需要在一个基本字符后组合上一个或多个指示标记

实现级别bull 并不是所有的系统都需要支持像组合字符这样的的先进

机制因此 ISO 10646 指定了如下三种实现级别ndash 级别 1不支持组合字符和韩语 Hangul Jamo 字符 ( 一种特

别的 更加复杂的韩国文的编码 使用两个或三个子字符来编码一个韩文音节 )

ndash 级别 2类似于级别 1 但在某些文字中允许一列固定的组合字符 (例如 希伯来文 阿拉伯文 Devangari 孟加拉语 果鲁穆奇语 Gujarati Oriya 泰米尔语 Telugo 印 埃纳德语 Malayalam 泰国语和老挝语 ) 因为如果没有最起码的几个组合字符 UCS就不能完整地表达这些语言

ndash 级别 3支持所有的 UCS 字符如可以在任意一个字符上加上一个箭头或 和一个 tilde(颚化符号即字母上面的~ )

编码方式bull UCS 有如下两种编码方式

ndash UCS-2与 Unicode 的 2 字节编码基本一样ndash UCS-4 4 字节编码目前是在 UCS-2 前加

上 2 个全零的字节bull UCS 还有 UTF 编码方式参见下面第 4小节ldquo 4 UTFrdquo

3 Unicode 与 ISOIEC 10646bull 关系

ndash 历史上存在两个独立的尝试创立单一字符集的组织即国际标准化组织( ISO )和多语言软件制造商组成的统一码协会组织( Unicodeorg )前者开发的 ISO 10646项目后者开发的 Unicode项目因此最初制定了不同的标准

ndash 1991年前后两个项目的参与者都认识到世界不需要两个不兼容的字符集于是它们开始合并双方的工作成果并为创立一个单一编码表而协同工作

ndash 从 Unicode20开始 Unicode采用了与 ISO 10646-1相同的字库和字码 ISO 也承诺 ISO10646 将不会替超出 U+10FFFF 的 UCS-4 编码赋值以使得两者保持一致

ndash 两个项目仍都存在并独立地公布各自的标准但 Unicode协会和 ISOIEC JTC1SC2 都同意保持两者标准的码表兼容并紧密地共同调整任何未来的扩展

异同bull Unicode协会公布的 Unicode 标准包含了 ISO 10646-1 实现级别

3 的基本多文种平面在两个标准里所有的字符都在相同的位置并且有相同的名字

bull ISO 10646 标准就像 ISO 8859 标准一样只不过是一个简单的字符集表它定义了一些编码的别名指定了一些与标准有关的术语并包括了规范说明指定了怎样使用 UCS连接其他 ISO 标准的实现等

bull Unicode 标准额外定义了许多与字符有关的语义符号学并详细说明了绘制某些语言(如阿拉伯语)表达形式的算法处理双向文字(比如拉丁文和希伯来文的混合文字)的算法排序与字符串比较所需的算法等等

bull 考虑到 Unicode 标准有一个易记的名字既便宜又包括更多的辅助信息因而它使用得更广泛然而

bull 一般认为用于打印 ISO 10646-1 标准的字体在某些方面的质量要高于用于打印 Unicode 20 的专业字体设计者总是被建议说要两个标准都实现但一些提供的样例字形有显著的区别 ISO 10646-1 标准同样使用四种不同的风格变体来显示表意文字如中文日文和韩文 (CJK) 而 Unicode 20 的表里只有中文的变体

4 UTFbull Unicode 和 UCS 都是一个字符集可以看作为内码bull UTF ( UnicodeUCS Transformation Format 统一码

通用字符集转换格式)是一种编码方式它的出现是因为 Unicode 和 UCS 不适宜在某些场合直接传输和处理

bull UCS 和 Unicode 只是分配整数给字符的编码表现在存在好几种将一串字符表示为一串字节的方法(如高或低位字节在前)

bull 最显而易见的两种方法是将 UCS 和 Unicode 文本存储为 2 个 或 4 个字节序列的串这两种方法的正式名称分别为 UCS-2 和 UCS-4

bull 常用的 UTF具体编码方式有 UTF-8 UTF-16 和 UTF-32

UTF-8

bull UTF-8 是 UTF 的一种具体编码方式在 ISO 10646-1 的附录 R 和 IETF 的 RFC 2279 里定义

bull 由于要使文档中的文字与 ASCII兼容故 UTF-8 选择了使用可变长度字节来储存 Unicode 和 UCS 例如ndash ASCII 字母继续使用 1 字节储存ndash 重音文字希腊字母或西里尔字母等使用 2 字节来储存ndash 常用的汉字就要使用 3 字节ndash 辅助平面字符则使用 4 字节ndash 即 ASCII 不作变换其他字符做变长编码每个字符 1~4 字节

bull UTF-8 通常作为外码bull 在 UTF-8 文件的开首很多时都放置一个 U+FEFF 字符

(UTF-8 以 EF BB BF 代表 ) 以显示这个文字档案是以UTF-8 编码

UTF-8 的优点bull 与 CPU 字节顺序无关可以在不同平台之间交流

bull 容错能力高任何一个字节损坏后最多只会导致一个编码码位损失不会链锁错误 ( 如 GB 码错一个字节就会整行乱码 )

UTF-8 的缺点bull UTF-8 使用可变长度字节储存使计算机程序设计变得复杂 (故此在计算机程序或操作系统内部多采用 UCS-2 编码 )

bull 在旧式的中文日文及朝鲜文编码之中每字符都使用 2 字节储存而 UTF-8 须使用 3 字节 (采用 UTF-16 编码则可只使用 2字节储存 )

bull 泰语以往使用的 ISO 8859-11 每字符只使用 1 字节储存而 UTF-8 须使用 3 字节

UTF-8储存的多字节串字符bull U-00000000 - U-0000007F 0xxxxxxx bull U-00000080 - U-000007FF 110xxxxx 10xxxxxx

bull U-00000800 - U-0000FFFF 1110xxxx 10xxxxxx

10xxxxxx bull U-00010000 - U-001FFFFF 11110xxx 10xxxxx

x 10xxxxxx 10xxxxxx bull 在多字节串中第一个字节的开头ldquo 1rdquo 的数目就

是整个串中字节的数目bull 每个使用 UTF-8储存的字符除了第一个字节外其余字节的头两个位元都是以 10 开始使文字处理器能够较快地找出每个字符的开始位置

UTF-16bull UTF-16 是 UTF 的另一种具体编码方式在 ISO 1064

6-1 的附录 Q 和 IETF 的 RFC 2781 里定义bull UTF-16 是变长码( 2 或 4 字节)大致相当于 20位编码值在 0 到 0x10FFFF 之间基本上就是 Unicode 编码的实现 UTF-16 与 CPU 字序有关但因为最省空间常作为网络传输的外码 UTF-16 是 Unicode 的完美编码

bull lt0x10000 的直接用其对应的 16位整数编码位于 0x10000 ~ 0x10FFFF 之间的用 0xD800~0xDBFF 的 16位整数后跟 0xDC00~0xDFFF 的 16位整数的 4 字节编码 gt 0x10FFFF 的不能用 UTF-16 表示

bull 在 Unicode 的 BMP 中定义的字符(无论是拉丁字母汉字或其他文字或符号)一律使用 2 字节存储而在辅助平面定义的字符则以两个 2 字节的值来存储

UTF-16 的特点bull UTF-16比起 UTF-8 的好处在于大部分字符都以固定长

度的 2 字节存储但 UTF-16却无法相容于 ASCII 编码bull UTF-16 有两种编码模式即大尾序( big Endian 高位字节在前)和小尾序( little Endian 高位字节在后)储存形式(一般來說以 Macintosh 制作和存储的文字使用大尾序格式以 Microsoft 或 Linux 制作和存储的文字使用小尾序格式)

bull 为了弄区分 UTF-16 文件的大小尾序在 UTF-16 文件的开头都会放置一个 U+FEFF 字符作为字节顺序标记 (UTF-16LE 以 FF FE代表 UTF-16BE 以 FE FF代表 ) 以显示该文档是以 UTF-16 编码的

UTF-32

bull UTF-32 仅使用了 Unicode范围 (0 到 0x10FFFF) 的 32位编码相当于 UCS-4 的子集

bull 由于 Unicode 和 ISOIEC 10646 的编码和结构与前面讲过的 GB 13000 类似或等价这里就不再做详细的介绍

5支持bull 现在 UnicodeUCS 已经获得了十分广泛的支

持ndash网络与浏览器(如 HTML 4050 XML 与 IE

Safari Netscape Firefox Chrome Opera Edge 等)

ndash操作系统(如 Windows NT2000XPVista7810 Mac OS X iOS Android和 Linux )

ndash 编程语言新版本(如 CC++JavaObjective-CC Swift 等)

Unicode 代码的浏览器显示代码 字符标准名称 (英语 )

浏览器的显示

amp65 大写拉丁字母 A A

amp223 小写拉丁字母 Sharp S szlig

amp254 小写拉丁字母 Thorn thorn

amp916 大写希腊字母 Delta Δ

amp1049 大写斯拉夫字母 Short I Й

amp1511 希伯来字母 Qof ק

amp1605 阿拉伯字母 Meem م

amp3671 泰文数字 7 ๗amp4688 埃塞俄比亚音节文字 Qha ቐ

amp12354 日语平假名 A あamp12450 日语片假名 A アamp21494 简体汉字 叶 叶amp33865 繁体汉字 葉 葉amp50685 韩国音节文字 Yeob 엽

23 文字输出bull 文字输出是指将计算机内的字符编码通过计算机的输出设备(如显示器打印机喇叭)展现出所对应字符的图形或声音供人们阅读或聆听

bull 本节主要介绍文字图示输出的字形技术bull 文字声音输出属于语音合成只在本节的末尾作简单的介绍

231 字形技术bull 文字 = 图形bull 不论是象形文字中的单字还是拼音文字

中的字母都是用图形来表示的bull 在计算机里文字的表示 输出(显示和打

印)涉及ndash 字型ndash 字体ndash 字库

1字型bull 字型指构造和生成字形的方法一般可分为

ndash 点阵字 DOS 显卡 ROM 金山 科印特点似位图显示快占空间(字库大)放大后有马赛克效应

bull 显示字母 88 汉字 1616bull 打印 2424 4848 6464

ndash 矢量字单线条用于笔式绘图仪特点字库小算法简单难看

ndash 轮廓字用曲线描绘字的轮廓输出效果好所见即所得(WYSWYG) 可无级放大易实现空心 阴影 填充 变形等各种特效功能轮廓曲线一般采用样条曲线如 TrueType (Apple 1991 Mac OS Microsoft 1992 Windows 31)用的是二次 B 样条 Bezier曲线中文之星 RichWin采用的是三次 B 样条 Bezier曲线

字型种类

2字体bull 字体指字的形状风格如

ndash 汉字的

ndash 英文的

宋体楷体黑体仿宋

行楷隶书新魏幼圆

Times New Roman Arial Narrow Courier New

常用汉字字体bull 宋体mdashmdash宋体来自于北宋时雕版刻书所采用的欧体字(唐朝欧阳询体)宋体字的横顿拉捺挑钩别具特色间架平正疏密适中字体秀丽遒劲但笔画横细竖粗适合于刀刻不宜于手写现在宋体广泛用于印刷常来表现文档的正文

bull 仿宋体mdashmdash 1920年钱塘的丁辅之与丁善之等人将明代以后盛行的方廓形字体加以改造创造出长形和方形的聚珍仿宋后来演化为现在的仿宋体仿宋体比较接近于手写体为宋体和楷体的折中是采用的宋体的结构和楷体的笔法而成现常来表现打印文件以及文档的摘要和注释等

bull 黑体mdashmdash黑体是适应工艺美术的发展而出现的一种等线体是从日本引进的黑体的结构与宋体没有什么差别只是其笔画粗细一致健实粗壮主要用于文档的标题和重点及标语广告等方面

bull 楷体mdashmdash楷体源于楷书楷体的笔画圆浑笔调灵活结构端正美观但不宜于木板雕刻所以直到清末西洋的石板印刷术传入后才开始广泛用于印刷现代的楷体创造于 20世纪的二三十年代主要用于文档的正文(多用于中小学教材)也可用于工艺美术等方面

3字库bull 字库为一种文字的某一字体的所有字符的集合一般存放在一个磁盘文件中

bull 由于象形文字中单字的数量大(成千上万)而拼音文字中字母的数量小(不到一百个)所以字库的大小有很大的差别

bull 为了使文档界面丰富多彩常见的字处理软件都支持多种字体带有众多字库

4点阵字型的国家标准bull 我国已经公布了若干字体的点阵字型之国家标准

ndash GB 50071-19852001 信息技术 汉字编码字符集(基本集) 24 点阵字型

ndash GB 50072-19852001 信息技术 汉字编码字符集(辅助集) 24 点阵字型

ndash GB 5199-19862001 信息技术 汉字编码字符集(基本集) 16 点阵字型 宋体

ndash GB 6345-19862001 信息技术 汉字编码字符集(基本集) 32 点阵字型 宋体

ndash GB 12041-2001 信息技术 汉字编码字符集(基本集) 48点阵字型 宋体

ndash GB 17698-1999 信息技术 通用多八位编码字符集( I 区) 汉字 16 点阵字型

232 语音合成bull 文字的声音输出主要使用的是语音合成的技术bull 语音合成功能是ldquo文rarr语rdquo转换bull 文语转换 TTS (Text-To-Speech) 是将文本形式的信息转换成自然语音的一种技术其最终目标是使计算机输出清晰而又自然的声音

bull 英语的语音合成在上世纪 80年代就早已成熟而中文 汉语的合成现在也趋于成熟并有了广泛的应用(如汽车导航仪智能手机等)

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 39: 第一篇  媒体

第 16 区的部分一级汉字

16区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 啊 阿 埃 挨 哎 唉 哀 皑 癌 蔼 矮 艾 碍 爱 隘 鞍

17~32 氨 安 俺 按 暗 岸 胺 案 肮 昂 盎 凹 敖 熬 翱 袄

33~48 傲 奥 懊 澳 芭 捌 扒 叭 吧 笆 八 疤 巴 拔 跋 靶

49~64 把 耙 坝 霸 罢 爸 白 柏 百 摆 佰 败 拜 稗 斑 班

65~80 搬 扳 般 颁 板 版 扮 拌 伴 瓣 半 办 绊 邦 帮 梆

81~94 榜 膀 绑 棒 磅 蚌 镑 傍 谤 苞 胞 包 褒 剥

第 56 区的部分二级汉字

56区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 亍 丌 兀 丐 廿 卅 丕 亘 丞 鬲 孬 噩 丨 禺 丿 匕

17~32 乇 夭 爻 卮 氐 囟 胤 馗 毓 睾 鼗 丶 亟 鼐 乜 乩

33~48 亓 芈 孛 啬 嘏 仄 厍 厝 厣 厥 厮 靥 赝 匚 叵 匦

49~64 匮 匾 赜 卦 卣 刂 刈 刎 刭 刳 刿 剀 剌 剞 剡 剜

65~80 蒯 剽 劂 劁 劐 劓 冂 罔 亻 仃 仉 仂 仨 仡 仫 仞

81~94 伛 仳 伢 佤 仵 伥 伧 伉 伫 佞 佧 攸 佚 佝

3汉字编码的辅助集bull 除了GB 2312基本集的 6 763 个简体汉字外国家标

准还给出了汉字编码字符集的多个辅助集bull 第二 四辅助集分别增加了 7 237 7 039 个简体汉字bull 第一和三 五辅助集则分别是与基本集和第二 四辅助集所对应的繁体汉字字符集的国家标准

bull 基本集加上辅助集共有 21 039 个简体汉字和 21 142个繁体汉字

bull 繁体汉字之所以多一些是因为在第一辅助集中有时几个繁体字对应一个简体字因此比基本集多出 103 个汉字

bull 基本集和辅助集的代码页之间靠其编码字节的最高位来区分

编码字符的分页标志

双字节汉字编码的页面结构第二字节 列号

行号 0 middot middot middot 32 33 34 helliphellip 125 126 127 128middot middot 160 161 162 helliphellip 254 255 0 middot middot 32

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

33 34 middot middot middot 126

1 2 middot middot middot 94

第四五辅助集 (7 039个汉字)

127

(兼容ASCII)

128 middot middot 160

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

161 162 middot middot middot 254

1 2 middot middot middot 94

第二三辅助集 (7 237个汉字)

1 2 middot middot middot 94

基本集第一辅助集 (6 763 6 866个汉字) (682个非汉字图符)

第一字节

255

4 Big5

bull 除了中国大陆使用的简体汉字外在台湾香港澳门和海外华侨社区使用的是传统的繁体汉字

bull 简体汉字使用 GB (国标)系列编码标准bull 繁体汉字一般使用的是 Big5内码(大五码)即台湾的ldquo资讯工业策进会rdquo发布的《标准交换码 (Ⅲ码 )》收录汉字 13 053 个

bull Big5内码是 1984年由台湾财团法人资讯工业策进会与宏碁 (Acer) 神通 (MiTAC) 佳佳零壹 (Zero One) 大众 (FIC) 等五大软件公司联合推出故称为大五码

BIG5 的代码空间低位字节

00 hellip 3F 40 hellip 7E 7F hellip A0 A1 hellip FE FF

高位字节

00middot

80

81middot

A0用户定义区 用户定义区

A1A2A3

非汉字图符 非汉字图符

A4middot

C6常用汉字 常用汉字

C7C8

用户定义区 用户定义区

C9middot

F9次常用汉字 次常用汉字

FAmiddot

FE用户定义区 用户定义区

FF

5少数民族文字编码bull 中国共有 56 个民族除了汉回满族一般使用汉语外其他少数民族大多有自己的民族语言

bull 我国各民族使用的 50 多种文字可以分为字母式结构文字和非字母式结构文字两大类ndash 字母式结构的有拉丁文斯拉夫文蒙古文维吾尔文哈萨克文藏文和朝鲜文等字母式

ndash 非字母式结构的有汉字象形文字图画文字和音节文字等bull 各民族文字的书写方向也有不同

ndash 壮文藏文朝鲜文彝文等的字从左到右行从上到下ndash 维吾尔文哈萨克文和柯尔克孜文等的字从右到左行从上

到下ndash 蒙古文和满文的字从上到下行从左到右ndash 汉字的书写方向有两种

bull 大陆的简体汉字的字从左到右行从上到下bull 港台与古旧书的繁体汉字的字从上到下行从右到左

国家标准bull 下面按发布时间列出若干已经公布的我国少数民族文字

编码集的国家标准(这些字符集一般分成两类对字母式结构文字采用八位编码对非字母式结构文字采用双字节编码)ndash GB 8045-87《信息处理交换用蒙古文七位和八位编码图形字

符集》收 82 个蒙古文字母和 12 个其他符号共 94 个字符ndash GB 12050-89《信息处理交换用维吾尔文编码图形字符集》收 32 个维吾尔文字母一个维吾尔文复合字符和 37 个其他符号共 70 个字符

ndash GB 12052-89《信息交换用朝鲜文编码字符集》收 5297 个朝鲜文字和 682 个其他符号(与 GB 2132同)共 5 979 个字符

ndash GB 13134-91《信息交换用彝文编码字符集》收 1165 个彝文字符和 688 个其他符号共 1853 个字符

ndash GB 16959-1997《信息技术 信息交换用藏文编码字符集 基本集》收 41 个藏文字母 36 个藏文主字 13 个元音字符12 个语音字符 10 个藏文数字 10 个半值符一个控制用连接符和 46 个其他藏文图形符号共 169 个字符

6 GB 13000bull GB 13000 是与 ISOIEC 10646 等价的国际通用编码字符集标准收汉字 2万多个但是与 GB 2312 和 GBK 不兼容

bull 1993年 5月 ISO 与 IEC 联合推出了可用于世界各种文字的通用编码字符集的国际标准的第 1部分ndash ISOIEC 10646-11993 Information technology -- Universal Multiple-Octe

t Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane (信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

ndash 该标准收字符 96万个几乎涵盖世界上的所有文字其中包含汉字 21 003 个

bull 1993年底我国推出了等同于国际标准 ISOIEC 1064611993 的强制性国家标准 ndash GB 130001-93《信息技术 通用多八位编码字符集( UCS ) 第一部分

体系结构与基本多文种平面》ndash 该标准于 1993年 12月 24日被国家技术监督局批准 1994年 8月 1日起实施

GB 13000 的主要特点

bull 世界各语言文种字符统一编码避免冲突便于国际交流

bull 编码空间宽阔连续每个图形字符的编码唯一(一字一码)不再存在兼容性问题

bull 按文种而不是按语言编码避免重复和浪费(如中日韩汉字的统一编码 CJK )

bull 与 GB 2312 和 GBK 不兼容

体系结构bull UCS 的体系结构是基于所谓ldquo多八位rdquo的而ldquo八位rdquo就是一个字节ldquo多八位rdquo就是多个字节

bull UCS采用 4 个字节来表征组面行位的四维空间bull 整个 UCS空间包含 128 个组( 0x00组 ~0x7F组)每组有 256 个平面( 0x00 平面 ~0xFF 平面)每个平面有 256 行每行又由 256 个字位构成

bull UCS共有( 128 times 256 = ) 32 768 个平面每个平面有( 256 times 256 = ) 65 536 个字位每个字位对应于一个字符的编码

bull 目前的编码只限于 00组已经定义的平面有 00组的00 平面mdashmdash称之为基本多文种平面 BMP ( Basic Multilingual Plane ) 及若干辅助平面

UCS 的全部编码空间

每个平面256times256 个

字位

00组 00 平面

00组 FF 平面

01组 00 平面

7F组 00 平面00

01组

7F组

UCS 的 00组

BMPbull BMP = Basic Multilingual Plane 基本多文种平面bull BMP 用作双八位编码字符集称之为 UCS-2 它被

分成四个区ndash A- 区(字位 0x0000~0x4DFF 有 19 903 个字位)用于

字母文字音节文字以及各种符号ndash I- 区(字位 0x4E00~0x9FFF 共 20 992 个字位)用于中日韩统一汉字( CJK )

ndash O- 区(字位 0xA000~0xDFFF 共 16 384 个字位)保留未来标准化用

ndash R- 区(字位 0xE000~0xFFFD 共 8 190 个字位)为 BMP 的限制使用区包括专用字符变形显现形式及兼容字符

BMP总貌

A-区

00~33 拼音文字(见下页)

34~3D 朝鲜文

3E~44 朝鲜文补充 -A

45~4D 朝鲜文补充 -B

I-区 4E~9F CJK统一汉字O-区 A0~DF

R-区

E0~F8 专用区

F9~FA CJK兼容汉字FB 拼音文字变形显现形式

FC~FD 阿拉伯文变形显现形式 -A

FE半形组合用标志

CJK兼容形式

小写变体

阿拉伯文变形显现形式 -B

FF 半形及全形字符 特殊字符

BMP 的0x00~0x33

行字母文字区

00 基本拉丁文 拉丁文-1补充

01 拉丁文扩充-A 拉丁文扩充-B

02 拉丁文扩充-B 国际音标扩充 进格修饰字符

03 组合用发音符 基本希腊文 希腊符号及哥普特文

04 西里尔文

05 美亚尼亚文 希伯来文(基本和扩充)

06 基本阿拉伯文 阿拉伯文扩充

07

08

09 梵文 孟加拉文

0A 锡克教文 古吉拉特文

0B 奥利雅文 泰米尔文

0C 泰卢固文 卡纳达文

0D 德拉维族文

0E 泰文 老挝文

0F

10 格鲁吉亚文

11 朝鲜文字母

12~1D

1E 拉丁文扩充增补

1F 希腊文扩充

20 广义标点 上下标 货币符号 符号组合用区分标志

21 类似字母的符号 数字形式 箭头

22 数学运算符

23 零杂技术用符号

24 控制图符 光学识别符 带括号的字母数字

25 制表符 方块元素 几何图形符

26 零杂符号

27 示意符等

28~2F

30 CJK符号和标点 平假名 片假名

31 注音 朝鲜文兼容字母 CJK零杂字符

32 带括号的CJK字母及月份

33 CJK兼容字符

留作将来标准化用

非图形字符

表示形式bull GB 13000提供了字符编码表示的两种替代使用的形式

ndash 双八位 BMP 形式( UCS-2 )mdashmdash允许使用 BMP 中的字符且每个字符用两个字节表示

ndash 肆八位正则形式( UCS-4 )mdashmdash允许使用 GB 13000 中的全部字符且每个字符用四个字节表示

bull 除了 UCS-24外还有另外两种变形的表示形式ndash UTF-8 (单字节 ~ 多字节)ndash UTF-16 (双字节和 4 字节与 UCS-2 等价)ndash 目前在工业上的实现均为 UTF-16 ( UCS-2 )和 UTF-8ndash UTF = Unicode UCS Transformation Format 统一码 UC

S转换格式bull 关于统一码我们会在下一小节详细介绍

7 GBK 与 GB 18030bull 由于 GB 13000 标准与 GB 2312 标准的字符编码不兼容作为过渡在国家信息技术标准化委员会的主持下制定了与 GB 2312兼容的《汉字内码扩展规范( GBK )》( K 为扩展的ldquo扩rdquo字的拼音首字母)并于 1995年 12月 15日由原国家技术监督局标准司联合原电子工业部科技与质量监督司作为指导性技术规范发布实施

bull 2000年 GBK又被国家标准 GB 18030-2000《信息技术 信息交换用汉字编码字符集 基本集的扩充》所代替该标准收汉字 2万 7千个

bull 与 GB 2312 一样 GB 18030 也为中国的强制性国家标准微软公司的 Windows XPVista78 中文版与苹果公司的 Mac OS X 和 iOS 谷歌公司的 Android (安卓)等操作系统已经全面支持 GBK

GB 18030 的码位范围分布

字节数 码位空间 码位数目

单字节 0x00~0x7F 128

双字节第 1字节 第 2字节

23 9400x81~0xFE

0x40~0x7E 0x80~0xFE

四字节第 1字节 第 2字节 第 3字节 第 4字节

1 587 6000x81~0xFE 0x30~0x39 0x81~0xFE 0x30~0x39

GB 18030的

总体结构图

收录字符bull 单字节部分mdashmdash收录了GBT 11383 的 0x00~0x7F 全部 128 个字符(似 ASCI

I )bull 双字节部分mdashmdash收录内容如下 (21 003 个汉字和 884 个符号共 21 887 个字符 )

ndash GB 130001-93 的全部 CJK 统一汉字字符 20 902 个( GB 2312 的编码汉字在双字节 2 区其他 CJK 统一汉字在双字节 34 区)

ndash GB 130001-93 的 CJK兼容区挑选出来的 21 个汉字ldquo郎凉秊helliphellip﨨﨩rdquo( 0xFD9C~0xFDA0 和 0xFE40~0xFE4F )

ndash GB 130001-93 中收录而 GB 2312未收录的台湾地区使用的图形字符 139 个ldquoˊˋ˙helliphelliprdquo( 0xA840~0xA895 和 0xA940~0XA988 )

ndash GB 130001-93收录的其他字符 31 ( 13)个(在双字节 5 区)ndash GB 2312-80 中的非汉字字符 682 个( 0xA1A1~0xA9EF )ndash GB 12345-90 的竖排标点符号 19 ( 29)个ldquo︵︶︹helliphellip︳︴rdquo( 0xA6D9~0xA6

F5 )ndash GB 2312-80未收录的 10 个小写罗马数字ldquoⅰⅱⅲhelliphellipⅸⅹrdquo( 0xA2A1~ 0xA2A

A )ndash GB 2312-80未收录的带音调的汉语拼音字母 5 ( 4)个ldquo ńňǹrdquo 以及 ɑ 和 ɡ ( 0

xA8BB~0xA8C0 )ndash 汉字数字零ldquo〇rdquo (0xA996) 和欧元符ldquoeurordquo (0xA2E3)ndash 表意文字描述符 13 个ldquohelliphelliprdquo( 0xA989~0xA995 )ndash 对 GB 130001-93增补的汉字和部首 构件 80 个ldquohelliphellip䶮rdquo( 0xFE50~ 0x

FEA0 )bull 四字节部分mdashmdash收录了上述双字节字符之外的包括 CJK 统一汉字扩充 A 在内

的 GB 130001-93 中的全部字符

GB 18030双字节部分的码位安排

类别 区名 码位范围 码位数 字符数 内容

符号区双字节 1区 A1A1~A9FE 846 718

GB 2312非汉字字符等

双字节 5区 A840~A9A0 192 166 台湾图符等

汉字区双字节 2区 B0A1~F7FE 6768 6763 GB 2312汉字双字节 3区 8140~A0FE 6080 6080 CJK统一汉字双字节 4区 AA40~FEA0 8160 8160 CJK统一汉字等

用户自定义区双字节用户区 1 AAA1~AFFE 564

用户自定义字符双字节用户区 2 F8A1~FEFE 658

双字节用户区 3 A140~A7A0 672

GB 18030双字节部分的编码空间结构图 尾字节

0x40larr――rarr0x7E 0x80larr――rarr0xA0 0xA1larr――――――――――――rarr0xFE

0x81 uarr darr

0xA0

0xA1 uarr darr

0xA7

0xA8 0xA9

首字节

0xAA uarr | | | | | | | | | | darr

0xFE

双字节 3区

汉字区6 080个码位

双字节用户区 3

用户自定义区672个码位

双字节 5区 图形符号区192个码位

双字节 4区

汉字区8 160个码位

双字节 1区

图形符号区564个码位

双字节 2区

汉字区6 768个码位

双字节用户区 1 用户自定义区564个码位

双字节用户区 2 用户自定义区658个码位

223 国际通用字符编码

bull Unicode (统一码)是由多语言软件制造商组成的统一码协会( httpwwwUnicodeorg)所制定一种国际字符的编码标准

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull 本节主要介绍这两种关系密切的主流国际字符编码标准的来历编码方案各自特点与相互关系

1 Unicode 统一码bull 发展历史

ndash 1987年施乐( Xerox )公司的 Joe Becker 与 Lee Collins 和苹果( Apple )公司的 Mark Davis 等人开始讨论统一编码 1987年 12月 Joe Becker造词 Unicode (统一码)含义为ldquo unique universal and uniform character encodingrdquo (单一通用统一的字符编码) 1989年 2月开始定期召开统一码会议 1989年 9月公布 Unicode草案

ndash 1991年 1月 3 日由 Xerox Apple Sun IBM Aldis Microsoft 等公司出资在美国加州成立了统一码协会( Unicode Consortium )并由协会设立非盈利性的统一码公司( Unicode Inc )后来 HP Adobe Borland Digital Lotus Novell 等公司也纷纷加入 1991年 1月成立统一码技术委员会 UTC 并制定了其规程

ndash 1991年 2月在 Ed Hart 的推动下进行了ldquo统一码对 10464 国际标准草案 1rdquo 的对话Unicode 与 ISOIEC 10646开始走向融合

ndash 1991年 8月发布 Unicode 标准 10版的第 1卷(体系结构非表意字符) 1992年6月发表 Unicode 10版的第 2卷(表意字符) 1993年 6月发布 Unicode 11版与 1993年 5月公布的 ISOIEC 10646-11993 实现了合并

ndash 1996年 7月发布 Unicode 20版ndash 1999年 9月发布 Unicode 30版ndash 2003年 4月发布 Unicode 40版(对应于 ISOIEC 106462003 ) 2004年 3月 31日发布 Unicode 401版 2005年 3月 31日发布 Unicode 410版

ndash 2006年 7月 14日发布 Unicode 50版 2008年 4月 4日发布 Unicode 51版 2009年 12月 22日发布 Unicode 52版

ndash 2010年 10月发布 Unicode 60版 2012年 1月发布 Unicode 61版(对应于 ISOIEC 106462012 ) 2012年 9月推出 Unicode 62版 2013年 9月推出 Unicode 63版

ndash 2014年 6月 16日发布 Unicode 70版 ndash 2015年 6月 17日发布 Unicode 80版

字符集bull Unicode 字符集的空间分成双字节的基本多语言平面 (Basic Multilingual Pla

ne BMP) 和 4 字节的辅助多语言平面 (Supplementary Multilingual Plane SMP) 两种

bull BMPndash Unicode 的基本平面或基本多语言平面 BMP 对应于 ISOIEC 10646-1 的第 00组的 00 平面( BMP )即 Unicode 与 ISOIEC 10646 的 BMP 中的字符编码完全一致

bull SMPndash 鉴于 Unicode 原有的 16位元空间不足以应用从 Unicode 31版本开始设立了 16 个辅助平面使 Unicode 的可使用空间由六万多字增至约一百万字

ndash 原有的 Unicode双字节空间称为基本平面或基本多语言平面 BMP 辅助多语言平面 SMP 字符要用 4 字节来储存

ndash 第一辅助平面摆放拼音文字(主要为现时已不再使用的文字)及符号范围在 U+10000 - U+1FFFD

ndash 第二辅助平面又称为表意文字补充平面 (Supplementary Ideographic Plane 简称 SIP) 现时摆放ldquo中日韩统汉字扩展 B 区rdquo共 43253 个汉字范围在 U+20000 - U+2FFFD

ndash 第三至十三辅助平面尚未使用ndash 第十四辅助平面又称为特殊用途补充平面 (Supplementary Special-purpose Pl

ane 简称 SSP) 摆放 Language tags 和 Variation Selectors 它们都是控制字符范围在 U+E0000 - U+E01FF

ndash 第十五至十六辅助平面都是私人使用区它们的范围是 U+F0000 - U+FFFFD 及 U+100000 - U+1000FD

bull Unicode 字符集的具体编码方式参加第 4小节ldquo 4 UTFrdquo

2 ISOIEC 10646

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull ISOIEC 10646 标准由 ISO 与 IEC 联合成立的 ISOIEC JTC1SC2WG2 制定ndash JTC 1 ( Joint Technical Committee 1 on Information

technology ISOIEC信息技术联合技术委员会 1 )负责信息技术方面标准的制定工作

ndash SC 2 ( SubCommittee 2 on Coded character sets 编码字符集分会 2 )下的 WG 2 ( Working Group 2 on Universal coded character set 通用编码字符集工作组 2 )负责制定国际通用字符编码标准即后来公布的 ISOIEC 10646

发展历史bull 1984年 ISO 的一些会员国发起制定新的国际字符编码标准同年 4月 ISO

与 IEC 联合成立 ISOIEC JTC1SC2WG2 1987年 3月制定出编码架构1992年 6月投票通过第二版国际标准草案

bull 1993年 5月推出 10646 标准时将内容分成两个部分标准首先发布的是其中的第 1 个部分(体系结构与基本多文种平面)的第 1版( Edition 1 ) ISOIEC 10646-11993 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane(信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

bull 2000年 3月推出 10646 标准第一个部分的第 2版( Edition 2 ) ISOIEC 10646-12000 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane

bull 2001年 10月推出 10646 标准第 2版的第二个部分(辅助平面)的第 1版( Edition 1 ) ISOIEC 10646-22001 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 2 Supplementary Planes

bull 2003年 10月推出的 10646新标准(第 1版 Edition 1 )将老标准中的两个部分标准合并成了一个单一的标准 ISOIEC 106462003 Information technology -- Universal Multiple- Octet Coded Character Set (UCS) 后来又于 2010年 2012年和 2014年分别推出了 ISOIEC 106462010 (第 2版)ISOIEC 106462012 (第 3版)和 ISOIEC 106462014 (第 4版)

UCS 通用字符集bull 通用字符集( Universal Character Set UCS )是

ISOIEC 10646 标准所定义的字符编码方式采用 4字节编码又称为 Universal Multiple-Octet Coded Character Set (通用多八位编码字符集)

bull 通用字符集是所有包括了其他字符集它保证了与其他字符集的双向兼容即如果你将任何文本字符串翻译到 UCS 格式然后再翻译回原编码你不会丢失任何信息

bull UCS 包含了已知语言的所有字符除了拉丁语希腊语斯拉夫语希伯来语阿拉伯语亚美尼亚语格鲁吉亚语还包括中文日文韩文这样的象形文字 UCS 还包括大量的图形印刷数学科学符号

名字与组合字符bull UCS 不仅给每个字符分配一个代码而且赋予了

一个正式的名字表示一个 UCS 或 Unicode值的十六进制数通常在前面加上ldquo U+rdquo 例如ldquo U+0041rdquo代表字符ldquo Ardquo

bull UCS里有些编码点分配给了组合字符组合字符机制允许在任何字符后加上重音符或其他指示标记 这在科学符号中特别有用 比如数学方程式和国际音标字母 可能会需要在一个基本字符后组合上一个或多个指示标记

实现级别bull 并不是所有的系统都需要支持像组合字符这样的的先进

机制因此 ISO 10646 指定了如下三种实现级别ndash 级别 1不支持组合字符和韩语 Hangul Jamo 字符 ( 一种特

别的 更加复杂的韩国文的编码 使用两个或三个子字符来编码一个韩文音节 )

ndash 级别 2类似于级别 1 但在某些文字中允许一列固定的组合字符 (例如 希伯来文 阿拉伯文 Devangari 孟加拉语 果鲁穆奇语 Gujarati Oriya 泰米尔语 Telugo 印 埃纳德语 Malayalam 泰国语和老挝语 ) 因为如果没有最起码的几个组合字符 UCS就不能完整地表达这些语言

ndash 级别 3支持所有的 UCS 字符如可以在任意一个字符上加上一个箭头或 和一个 tilde(颚化符号即字母上面的~ )

编码方式bull UCS 有如下两种编码方式

ndash UCS-2与 Unicode 的 2 字节编码基本一样ndash UCS-4 4 字节编码目前是在 UCS-2 前加

上 2 个全零的字节bull UCS 还有 UTF 编码方式参见下面第 4小节ldquo 4 UTFrdquo

3 Unicode 与 ISOIEC 10646bull 关系

ndash 历史上存在两个独立的尝试创立单一字符集的组织即国际标准化组织( ISO )和多语言软件制造商组成的统一码协会组织( Unicodeorg )前者开发的 ISO 10646项目后者开发的 Unicode项目因此最初制定了不同的标准

ndash 1991年前后两个项目的参与者都认识到世界不需要两个不兼容的字符集于是它们开始合并双方的工作成果并为创立一个单一编码表而协同工作

ndash 从 Unicode20开始 Unicode采用了与 ISO 10646-1相同的字库和字码 ISO 也承诺 ISO10646 将不会替超出 U+10FFFF 的 UCS-4 编码赋值以使得两者保持一致

ndash 两个项目仍都存在并独立地公布各自的标准但 Unicode协会和 ISOIEC JTC1SC2 都同意保持两者标准的码表兼容并紧密地共同调整任何未来的扩展

异同bull Unicode协会公布的 Unicode 标准包含了 ISO 10646-1 实现级别

3 的基本多文种平面在两个标准里所有的字符都在相同的位置并且有相同的名字

bull ISO 10646 标准就像 ISO 8859 标准一样只不过是一个简单的字符集表它定义了一些编码的别名指定了一些与标准有关的术语并包括了规范说明指定了怎样使用 UCS连接其他 ISO 标准的实现等

bull Unicode 标准额外定义了许多与字符有关的语义符号学并详细说明了绘制某些语言(如阿拉伯语)表达形式的算法处理双向文字(比如拉丁文和希伯来文的混合文字)的算法排序与字符串比较所需的算法等等

bull 考虑到 Unicode 标准有一个易记的名字既便宜又包括更多的辅助信息因而它使用得更广泛然而

bull 一般认为用于打印 ISO 10646-1 标准的字体在某些方面的质量要高于用于打印 Unicode 20 的专业字体设计者总是被建议说要两个标准都实现但一些提供的样例字形有显著的区别 ISO 10646-1 标准同样使用四种不同的风格变体来显示表意文字如中文日文和韩文 (CJK) 而 Unicode 20 的表里只有中文的变体

4 UTFbull Unicode 和 UCS 都是一个字符集可以看作为内码bull UTF ( UnicodeUCS Transformation Format 统一码

通用字符集转换格式)是一种编码方式它的出现是因为 Unicode 和 UCS 不适宜在某些场合直接传输和处理

bull UCS 和 Unicode 只是分配整数给字符的编码表现在存在好几种将一串字符表示为一串字节的方法(如高或低位字节在前)

bull 最显而易见的两种方法是将 UCS 和 Unicode 文本存储为 2 个 或 4 个字节序列的串这两种方法的正式名称分别为 UCS-2 和 UCS-4

bull 常用的 UTF具体编码方式有 UTF-8 UTF-16 和 UTF-32

UTF-8

bull UTF-8 是 UTF 的一种具体编码方式在 ISO 10646-1 的附录 R 和 IETF 的 RFC 2279 里定义

bull 由于要使文档中的文字与 ASCII兼容故 UTF-8 选择了使用可变长度字节来储存 Unicode 和 UCS 例如ndash ASCII 字母继续使用 1 字节储存ndash 重音文字希腊字母或西里尔字母等使用 2 字节来储存ndash 常用的汉字就要使用 3 字节ndash 辅助平面字符则使用 4 字节ndash 即 ASCII 不作变换其他字符做变长编码每个字符 1~4 字节

bull UTF-8 通常作为外码bull 在 UTF-8 文件的开首很多时都放置一个 U+FEFF 字符

(UTF-8 以 EF BB BF 代表 ) 以显示这个文字档案是以UTF-8 编码

UTF-8 的优点bull 与 CPU 字节顺序无关可以在不同平台之间交流

bull 容错能力高任何一个字节损坏后最多只会导致一个编码码位损失不会链锁错误 ( 如 GB 码错一个字节就会整行乱码 )

UTF-8 的缺点bull UTF-8 使用可变长度字节储存使计算机程序设计变得复杂 (故此在计算机程序或操作系统内部多采用 UCS-2 编码 )

bull 在旧式的中文日文及朝鲜文编码之中每字符都使用 2 字节储存而 UTF-8 须使用 3 字节 (采用 UTF-16 编码则可只使用 2字节储存 )

bull 泰语以往使用的 ISO 8859-11 每字符只使用 1 字节储存而 UTF-8 须使用 3 字节

UTF-8储存的多字节串字符bull U-00000000 - U-0000007F 0xxxxxxx bull U-00000080 - U-000007FF 110xxxxx 10xxxxxx

bull U-00000800 - U-0000FFFF 1110xxxx 10xxxxxx

10xxxxxx bull U-00010000 - U-001FFFFF 11110xxx 10xxxxx

x 10xxxxxx 10xxxxxx bull 在多字节串中第一个字节的开头ldquo 1rdquo 的数目就

是整个串中字节的数目bull 每个使用 UTF-8储存的字符除了第一个字节外其余字节的头两个位元都是以 10 开始使文字处理器能够较快地找出每个字符的开始位置

UTF-16bull UTF-16 是 UTF 的另一种具体编码方式在 ISO 1064

6-1 的附录 Q 和 IETF 的 RFC 2781 里定义bull UTF-16 是变长码( 2 或 4 字节)大致相当于 20位编码值在 0 到 0x10FFFF 之间基本上就是 Unicode 编码的实现 UTF-16 与 CPU 字序有关但因为最省空间常作为网络传输的外码 UTF-16 是 Unicode 的完美编码

bull lt0x10000 的直接用其对应的 16位整数编码位于 0x10000 ~ 0x10FFFF 之间的用 0xD800~0xDBFF 的 16位整数后跟 0xDC00~0xDFFF 的 16位整数的 4 字节编码 gt 0x10FFFF 的不能用 UTF-16 表示

bull 在 Unicode 的 BMP 中定义的字符(无论是拉丁字母汉字或其他文字或符号)一律使用 2 字节存储而在辅助平面定义的字符则以两个 2 字节的值来存储

UTF-16 的特点bull UTF-16比起 UTF-8 的好处在于大部分字符都以固定长

度的 2 字节存储但 UTF-16却无法相容于 ASCII 编码bull UTF-16 有两种编码模式即大尾序( big Endian 高位字节在前)和小尾序( little Endian 高位字节在后)储存形式(一般來說以 Macintosh 制作和存储的文字使用大尾序格式以 Microsoft 或 Linux 制作和存储的文字使用小尾序格式)

bull 为了弄区分 UTF-16 文件的大小尾序在 UTF-16 文件的开头都会放置一个 U+FEFF 字符作为字节顺序标记 (UTF-16LE 以 FF FE代表 UTF-16BE 以 FE FF代表 ) 以显示该文档是以 UTF-16 编码的

UTF-32

bull UTF-32 仅使用了 Unicode范围 (0 到 0x10FFFF) 的 32位编码相当于 UCS-4 的子集

bull 由于 Unicode 和 ISOIEC 10646 的编码和结构与前面讲过的 GB 13000 类似或等价这里就不再做详细的介绍

5支持bull 现在 UnicodeUCS 已经获得了十分广泛的支

持ndash网络与浏览器(如 HTML 4050 XML 与 IE

Safari Netscape Firefox Chrome Opera Edge 等)

ndash操作系统(如 Windows NT2000XPVista7810 Mac OS X iOS Android和 Linux )

ndash 编程语言新版本(如 CC++JavaObjective-CC Swift 等)

Unicode 代码的浏览器显示代码 字符标准名称 (英语 )

浏览器的显示

amp65 大写拉丁字母 A A

amp223 小写拉丁字母 Sharp S szlig

amp254 小写拉丁字母 Thorn thorn

amp916 大写希腊字母 Delta Δ

amp1049 大写斯拉夫字母 Short I Й

amp1511 希伯来字母 Qof ק

amp1605 阿拉伯字母 Meem م

amp3671 泰文数字 7 ๗amp4688 埃塞俄比亚音节文字 Qha ቐ

amp12354 日语平假名 A あamp12450 日语片假名 A アamp21494 简体汉字 叶 叶amp33865 繁体汉字 葉 葉amp50685 韩国音节文字 Yeob 엽

23 文字输出bull 文字输出是指将计算机内的字符编码通过计算机的输出设备(如显示器打印机喇叭)展现出所对应字符的图形或声音供人们阅读或聆听

bull 本节主要介绍文字图示输出的字形技术bull 文字声音输出属于语音合成只在本节的末尾作简单的介绍

231 字形技术bull 文字 = 图形bull 不论是象形文字中的单字还是拼音文字

中的字母都是用图形来表示的bull 在计算机里文字的表示 输出(显示和打

印)涉及ndash 字型ndash 字体ndash 字库

1字型bull 字型指构造和生成字形的方法一般可分为

ndash 点阵字 DOS 显卡 ROM 金山 科印特点似位图显示快占空间(字库大)放大后有马赛克效应

bull 显示字母 88 汉字 1616bull 打印 2424 4848 6464

ndash 矢量字单线条用于笔式绘图仪特点字库小算法简单难看

ndash 轮廓字用曲线描绘字的轮廓输出效果好所见即所得(WYSWYG) 可无级放大易实现空心 阴影 填充 变形等各种特效功能轮廓曲线一般采用样条曲线如 TrueType (Apple 1991 Mac OS Microsoft 1992 Windows 31)用的是二次 B 样条 Bezier曲线中文之星 RichWin采用的是三次 B 样条 Bezier曲线

字型种类

2字体bull 字体指字的形状风格如

ndash 汉字的

ndash 英文的

宋体楷体黑体仿宋

行楷隶书新魏幼圆

Times New Roman Arial Narrow Courier New

常用汉字字体bull 宋体mdashmdash宋体来自于北宋时雕版刻书所采用的欧体字(唐朝欧阳询体)宋体字的横顿拉捺挑钩别具特色间架平正疏密适中字体秀丽遒劲但笔画横细竖粗适合于刀刻不宜于手写现在宋体广泛用于印刷常来表现文档的正文

bull 仿宋体mdashmdash 1920年钱塘的丁辅之与丁善之等人将明代以后盛行的方廓形字体加以改造创造出长形和方形的聚珍仿宋后来演化为现在的仿宋体仿宋体比较接近于手写体为宋体和楷体的折中是采用的宋体的结构和楷体的笔法而成现常来表现打印文件以及文档的摘要和注释等

bull 黑体mdashmdash黑体是适应工艺美术的发展而出现的一种等线体是从日本引进的黑体的结构与宋体没有什么差别只是其笔画粗细一致健实粗壮主要用于文档的标题和重点及标语广告等方面

bull 楷体mdashmdash楷体源于楷书楷体的笔画圆浑笔调灵活结构端正美观但不宜于木板雕刻所以直到清末西洋的石板印刷术传入后才开始广泛用于印刷现代的楷体创造于 20世纪的二三十年代主要用于文档的正文(多用于中小学教材)也可用于工艺美术等方面

3字库bull 字库为一种文字的某一字体的所有字符的集合一般存放在一个磁盘文件中

bull 由于象形文字中单字的数量大(成千上万)而拼音文字中字母的数量小(不到一百个)所以字库的大小有很大的差别

bull 为了使文档界面丰富多彩常见的字处理软件都支持多种字体带有众多字库

4点阵字型的国家标准bull 我国已经公布了若干字体的点阵字型之国家标准

ndash GB 50071-19852001 信息技术 汉字编码字符集(基本集) 24 点阵字型

ndash GB 50072-19852001 信息技术 汉字编码字符集(辅助集) 24 点阵字型

ndash GB 5199-19862001 信息技术 汉字编码字符集(基本集) 16 点阵字型 宋体

ndash GB 6345-19862001 信息技术 汉字编码字符集(基本集) 32 点阵字型 宋体

ndash GB 12041-2001 信息技术 汉字编码字符集(基本集) 48点阵字型 宋体

ndash GB 17698-1999 信息技术 通用多八位编码字符集( I 区) 汉字 16 点阵字型

232 语音合成bull 文字的声音输出主要使用的是语音合成的技术bull 语音合成功能是ldquo文rarr语rdquo转换bull 文语转换 TTS (Text-To-Speech) 是将文本形式的信息转换成自然语音的一种技术其最终目标是使计算机输出清晰而又自然的声音

bull 英语的语音合成在上世纪 80年代就早已成熟而中文 汉语的合成现在也趋于成熟并有了广泛的应用(如汽车导航仪智能手机等)

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 40: 第一篇  媒体

第 56 区的部分二级汉字

56区 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01~16 亍 丌 兀 丐 廿 卅 丕 亘 丞 鬲 孬 噩 丨 禺 丿 匕

17~32 乇 夭 爻 卮 氐 囟 胤 馗 毓 睾 鼗 丶 亟 鼐 乜 乩

33~48 亓 芈 孛 啬 嘏 仄 厍 厝 厣 厥 厮 靥 赝 匚 叵 匦

49~64 匮 匾 赜 卦 卣 刂 刈 刎 刭 刳 刿 剀 剌 剞 剡 剜

65~80 蒯 剽 劂 劁 劐 劓 冂 罔 亻 仃 仉 仂 仨 仡 仫 仞

81~94 伛 仳 伢 佤 仵 伥 伧 伉 伫 佞 佧 攸 佚 佝

3汉字编码的辅助集bull 除了GB 2312基本集的 6 763 个简体汉字外国家标

准还给出了汉字编码字符集的多个辅助集bull 第二 四辅助集分别增加了 7 237 7 039 个简体汉字bull 第一和三 五辅助集则分别是与基本集和第二 四辅助集所对应的繁体汉字字符集的国家标准

bull 基本集加上辅助集共有 21 039 个简体汉字和 21 142个繁体汉字

bull 繁体汉字之所以多一些是因为在第一辅助集中有时几个繁体字对应一个简体字因此比基本集多出 103 个汉字

bull 基本集和辅助集的代码页之间靠其编码字节的最高位来区分

编码字符的分页标志

双字节汉字编码的页面结构第二字节 列号

行号 0 middot middot middot 32 33 34 helliphellip 125 126 127 128middot middot 160 161 162 helliphellip 254 255 0 middot middot 32

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

33 34 middot middot middot 126

1 2 middot middot middot 94

第四五辅助集 (7 039个汉字)

127

(兼容ASCII)

128 middot middot 160

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

161 162 middot middot middot 254

1 2 middot middot middot 94

第二三辅助集 (7 237个汉字)

1 2 middot middot middot 94

基本集第一辅助集 (6 763 6 866个汉字) (682个非汉字图符)

第一字节

255

4 Big5

bull 除了中国大陆使用的简体汉字外在台湾香港澳门和海外华侨社区使用的是传统的繁体汉字

bull 简体汉字使用 GB (国标)系列编码标准bull 繁体汉字一般使用的是 Big5内码(大五码)即台湾的ldquo资讯工业策进会rdquo发布的《标准交换码 (Ⅲ码 )》收录汉字 13 053 个

bull Big5内码是 1984年由台湾财团法人资讯工业策进会与宏碁 (Acer) 神通 (MiTAC) 佳佳零壹 (Zero One) 大众 (FIC) 等五大软件公司联合推出故称为大五码

BIG5 的代码空间低位字节

00 hellip 3F 40 hellip 7E 7F hellip A0 A1 hellip FE FF

高位字节

00middot

80

81middot

A0用户定义区 用户定义区

A1A2A3

非汉字图符 非汉字图符

A4middot

C6常用汉字 常用汉字

C7C8

用户定义区 用户定义区

C9middot

F9次常用汉字 次常用汉字

FAmiddot

FE用户定义区 用户定义区

FF

5少数民族文字编码bull 中国共有 56 个民族除了汉回满族一般使用汉语外其他少数民族大多有自己的民族语言

bull 我国各民族使用的 50 多种文字可以分为字母式结构文字和非字母式结构文字两大类ndash 字母式结构的有拉丁文斯拉夫文蒙古文维吾尔文哈萨克文藏文和朝鲜文等字母式

ndash 非字母式结构的有汉字象形文字图画文字和音节文字等bull 各民族文字的书写方向也有不同

ndash 壮文藏文朝鲜文彝文等的字从左到右行从上到下ndash 维吾尔文哈萨克文和柯尔克孜文等的字从右到左行从上

到下ndash 蒙古文和满文的字从上到下行从左到右ndash 汉字的书写方向有两种

bull 大陆的简体汉字的字从左到右行从上到下bull 港台与古旧书的繁体汉字的字从上到下行从右到左

国家标准bull 下面按发布时间列出若干已经公布的我国少数民族文字

编码集的国家标准(这些字符集一般分成两类对字母式结构文字采用八位编码对非字母式结构文字采用双字节编码)ndash GB 8045-87《信息处理交换用蒙古文七位和八位编码图形字

符集》收 82 个蒙古文字母和 12 个其他符号共 94 个字符ndash GB 12050-89《信息处理交换用维吾尔文编码图形字符集》收 32 个维吾尔文字母一个维吾尔文复合字符和 37 个其他符号共 70 个字符

ndash GB 12052-89《信息交换用朝鲜文编码字符集》收 5297 个朝鲜文字和 682 个其他符号(与 GB 2132同)共 5 979 个字符

ndash GB 13134-91《信息交换用彝文编码字符集》收 1165 个彝文字符和 688 个其他符号共 1853 个字符

ndash GB 16959-1997《信息技术 信息交换用藏文编码字符集 基本集》收 41 个藏文字母 36 个藏文主字 13 个元音字符12 个语音字符 10 个藏文数字 10 个半值符一个控制用连接符和 46 个其他藏文图形符号共 169 个字符

6 GB 13000bull GB 13000 是与 ISOIEC 10646 等价的国际通用编码字符集标准收汉字 2万多个但是与 GB 2312 和 GBK 不兼容

bull 1993年 5月 ISO 与 IEC 联合推出了可用于世界各种文字的通用编码字符集的国际标准的第 1部分ndash ISOIEC 10646-11993 Information technology -- Universal Multiple-Octe

t Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane (信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

ndash 该标准收字符 96万个几乎涵盖世界上的所有文字其中包含汉字 21 003 个

bull 1993年底我国推出了等同于国际标准 ISOIEC 1064611993 的强制性国家标准 ndash GB 130001-93《信息技术 通用多八位编码字符集( UCS ) 第一部分

体系结构与基本多文种平面》ndash 该标准于 1993年 12月 24日被国家技术监督局批准 1994年 8月 1日起实施

GB 13000 的主要特点

bull 世界各语言文种字符统一编码避免冲突便于国际交流

bull 编码空间宽阔连续每个图形字符的编码唯一(一字一码)不再存在兼容性问题

bull 按文种而不是按语言编码避免重复和浪费(如中日韩汉字的统一编码 CJK )

bull 与 GB 2312 和 GBK 不兼容

体系结构bull UCS 的体系结构是基于所谓ldquo多八位rdquo的而ldquo八位rdquo就是一个字节ldquo多八位rdquo就是多个字节

bull UCS采用 4 个字节来表征组面行位的四维空间bull 整个 UCS空间包含 128 个组( 0x00组 ~0x7F组)每组有 256 个平面( 0x00 平面 ~0xFF 平面)每个平面有 256 行每行又由 256 个字位构成

bull UCS共有( 128 times 256 = ) 32 768 个平面每个平面有( 256 times 256 = ) 65 536 个字位每个字位对应于一个字符的编码

bull 目前的编码只限于 00组已经定义的平面有 00组的00 平面mdashmdash称之为基本多文种平面 BMP ( Basic Multilingual Plane ) 及若干辅助平面

UCS 的全部编码空间

每个平面256times256 个

字位

00组 00 平面

00组 FF 平面

01组 00 平面

7F组 00 平面00

01组

7F组

UCS 的 00组

BMPbull BMP = Basic Multilingual Plane 基本多文种平面bull BMP 用作双八位编码字符集称之为 UCS-2 它被

分成四个区ndash A- 区(字位 0x0000~0x4DFF 有 19 903 个字位)用于

字母文字音节文字以及各种符号ndash I- 区(字位 0x4E00~0x9FFF 共 20 992 个字位)用于中日韩统一汉字( CJK )

ndash O- 区(字位 0xA000~0xDFFF 共 16 384 个字位)保留未来标准化用

ndash R- 区(字位 0xE000~0xFFFD 共 8 190 个字位)为 BMP 的限制使用区包括专用字符变形显现形式及兼容字符

BMP总貌

A-区

00~33 拼音文字(见下页)

34~3D 朝鲜文

3E~44 朝鲜文补充 -A

45~4D 朝鲜文补充 -B

I-区 4E~9F CJK统一汉字O-区 A0~DF

R-区

E0~F8 专用区

F9~FA CJK兼容汉字FB 拼音文字变形显现形式

FC~FD 阿拉伯文变形显现形式 -A

FE半形组合用标志

CJK兼容形式

小写变体

阿拉伯文变形显现形式 -B

FF 半形及全形字符 特殊字符

BMP 的0x00~0x33

行字母文字区

00 基本拉丁文 拉丁文-1补充

01 拉丁文扩充-A 拉丁文扩充-B

02 拉丁文扩充-B 国际音标扩充 进格修饰字符

03 组合用发音符 基本希腊文 希腊符号及哥普特文

04 西里尔文

05 美亚尼亚文 希伯来文(基本和扩充)

06 基本阿拉伯文 阿拉伯文扩充

07

08

09 梵文 孟加拉文

0A 锡克教文 古吉拉特文

0B 奥利雅文 泰米尔文

0C 泰卢固文 卡纳达文

0D 德拉维族文

0E 泰文 老挝文

0F

10 格鲁吉亚文

11 朝鲜文字母

12~1D

1E 拉丁文扩充增补

1F 希腊文扩充

20 广义标点 上下标 货币符号 符号组合用区分标志

21 类似字母的符号 数字形式 箭头

22 数学运算符

23 零杂技术用符号

24 控制图符 光学识别符 带括号的字母数字

25 制表符 方块元素 几何图形符

26 零杂符号

27 示意符等

28~2F

30 CJK符号和标点 平假名 片假名

31 注音 朝鲜文兼容字母 CJK零杂字符

32 带括号的CJK字母及月份

33 CJK兼容字符

留作将来标准化用

非图形字符

表示形式bull GB 13000提供了字符编码表示的两种替代使用的形式

ndash 双八位 BMP 形式( UCS-2 )mdashmdash允许使用 BMP 中的字符且每个字符用两个字节表示

ndash 肆八位正则形式( UCS-4 )mdashmdash允许使用 GB 13000 中的全部字符且每个字符用四个字节表示

bull 除了 UCS-24外还有另外两种变形的表示形式ndash UTF-8 (单字节 ~ 多字节)ndash UTF-16 (双字节和 4 字节与 UCS-2 等价)ndash 目前在工业上的实现均为 UTF-16 ( UCS-2 )和 UTF-8ndash UTF = Unicode UCS Transformation Format 统一码 UC

S转换格式bull 关于统一码我们会在下一小节详细介绍

7 GBK 与 GB 18030bull 由于 GB 13000 标准与 GB 2312 标准的字符编码不兼容作为过渡在国家信息技术标准化委员会的主持下制定了与 GB 2312兼容的《汉字内码扩展规范( GBK )》( K 为扩展的ldquo扩rdquo字的拼音首字母)并于 1995年 12月 15日由原国家技术监督局标准司联合原电子工业部科技与质量监督司作为指导性技术规范发布实施

bull 2000年 GBK又被国家标准 GB 18030-2000《信息技术 信息交换用汉字编码字符集 基本集的扩充》所代替该标准收汉字 2万 7千个

bull 与 GB 2312 一样 GB 18030 也为中国的强制性国家标准微软公司的 Windows XPVista78 中文版与苹果公司的 Mac OS X 和 iOS 谷歌公司的 Android (安卓)等操作系统已经全面支持 GBK

GB 18030 的码位范围分布

字节数 码位空间 码位数目

单字节 0x00~0x7F 128

双字节第 1字节 第 2字节

23 9400x81~0xFE

0x40~0x7E 0x80~0xFE

四字节第 1字节 第 2字节 第 3字节 第 4字节

1 587 6000x81~0xFE 0x30~0x39 0x81~0xFE 0x30~0x39

GB 18030的

总体结构图

收录字符bull 单字节部分mdashmdash收录了GBT 11383 的 0x00~0x7F 全部 128 个字符(似 ASCI

I )bull 双字节部分mdashmdash收录内容如下 (21 003 个汉字和 884 个符号共 21 887 个字符 )

ndash GB 130001-93 的全部 CJK 统一汉字字符 20 902 个( GB 2312 的编码汉字在双字节 2 区其他 CJK 统一汉字在双字节 34 区)

ndash GB 130001-93 的 CJK兼容区挑选出来的 21 个汉字ldquo郎凉秊helliphellip﨨﨩rdquo( 0xFD9C~0xFDA0 和 0xFE40~0xFE4F )

ndash GB 130001-93 中收录而 GB 2312未收录的台湾地区使用的图形字符 139 个ldquoˊˋ˙helliphelliprdquo( 0xA840~0xA895 和 0xA940~0XA988 )

ndash GB 130001-93收录的其他字符 31 ( 13)个(在双字节 5 区)ndash GB 2312-80 中的非汉字字符 682 个( 0xA1A1~0xA9EF )ndash GB 12345-90 的竖排标点符号 19 ( 29)个ldquo︵︶︹helliphellip︳︴rdquo( 0xA6D9~0xA6

F5 )ndash GB 2312-80未收录的 10 个小写罗马数字ldquoⅰⅱⅲhelliphellipⅸⅹrdquo( 0xA2A1~ 0xA2A

A )ndash GB 2312-80未收录的带音调的汉语拼音字母 5 ( 4)个ldquo ńňǹrdquo 以及 ɑ 和 ɡ ( 0

xA8BB~0xA8C0 )ndash 汉字数字零ldquo〇rdquo (0xA996) 和欧元符ldquoeurordquo (0xA2E3)ndash 表意文字描述符 13 个ldquohelliphelliprdquo( 0xA989~0xA995 )ndash 对 GB 130001-93增补的汉字和部首 构件 80 个ldquohelliphellip䶮rdquo( 0xFE50~ 0x

FEA0 )bull 四字节部分mdashmdash收录了上述双字节字符之外的包括 CJK 统一汉字扩充 A 在内

的 GB 130001-93 中的全部字符

GB 18030双字节部分的码位安排

类别 区名 码位范围 码位数 字符数 内容

符号区双字节 1区 A1A1~A9FE 846 718

GB 2312非汉字字符等

双字节 5区 A840~A9A0 192 166 台湾图符等

汉字区双字节 2区 B0A1~F7FE 6768 6763 GB 2312汉字双字节 3区 8140~A0FE 6080 6080 CJK统一汉字双字节 4区 AA40~FEA0 8160 8160 CJK统一汉字等

用户自定义区双字节用户区 1 AAA1~AFFE 564

用户自定义字符双字节用户区 2 F8A1~FEFE 658

双字节用户区 3 A140~A7A0 672

GB 18030双字节部分的编码空间结构图 尾字节

0x40larr――rarr0x7E 0x80larr――rarr0xA0 0xA1larr――――――――――――rarr0xFE

0x81 uarr darr

0xA0

0xA1 uarr darr

0xA7

0xA8 0xA9

首字节

0xAA uarr | | | | | | | | | | darr

0xFE

双字节 3区

汉字区6 080个码位

双字节用户区 3

用户自定义区672个码位

双字节 5区 图形符号区192个码位

双字节 4区

汉字区8 160个码位

双字节 1区

图形符号区564个码位

双字节 2区

汉字区6 768个码位

双字节用户区 1 用户自定义区564个码位

双字节用户区 2 用户自定义区658个码位

223 国际通用字符编码

bull Unicode (统一码)是由多语言软件制造商组成的统一码协会( httpwwwUnicodeorg)所制定一种国际字符的编码标准

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull 本节主要介绍这两种关系密切的主流国际字符编码标准的来历编码方案各自特点与相互关系

1 Unicode 统一码bull 发展历史

ndash 1987年施乐( Xerox )公司的 Joe Becker 与 Lee Collins 和苹果( Apple )公司的 Mark Davis 等人开始讨论统一编码 1987年 12月 Joe Becker造词 Unicode (统一码)含义为ldquo unique universal and uniform character encodingrdquo (单一通用统一的字符编码) 1989年 2月开始定期召开统一码会议 1989年 9月公布 Unicode草案

ndash 1991年 1月 3 日由 Xerox Apple Sun IBM Aldis Microsoft 等公司出资在美国加州成立了统一码协会( Unicode Consortium )并由协会设立非盈利性的统一码公司( Unicode Inc )后来 HP Adobe Borland Digital Lotus Novell 等公司也纷纷加入 1991年 1月成立统一码技术委员会 UTC 并制定了其规程

ndash 1991年 2月在 Ed Hart 的推动下进行了ldquo统一码对 10464 国际标准草案 1rdquo 的对话Unicode 与 ISOIEC 10646开始走向融合

ndash 1991年 8月发布 Unicode 标准 10版的第 1卷(体系结构非表意字符) 1992年6月发表 Unicode 10版的第 2卷(表意字符) 1993年 6月发布 Unicode 11版与 1993年 5月公布的 ISOIEC 10646-11993 实现了合并

ndash 1996年 7月发布 Unicode 20版ndash 1999年 9月发布 Unicode 30版ndash 2003年 4月发布 Unicode 40版(对应于 ISOIEC 106462003 ) 2004年 3月 31日发布 Unicode 401版 2005年 3月 31日发布 Unicode 410版

ndash 2006年 7月 14日发布 Unicode 50版 2008年 4月 4日发布 Unicode 51版 2009年 12月 22日发布 Unicode 52版

ndash 2010年 10月发布 Unicode 60版 2012年 1月发布 Unicode 61版(对应于 ISOIEC 106462012 ) 2012年 9月推出 Unicode 62版 2013年 9月推出 Unicode 63版

ndash 2014年 6月 16日发布 Unicode 70版 ndash 2015年 6月 17日发布 Unicode 80版

字符集bull Unicode 字符集的空间分成双字节的基本多语言平面 (Basic Multilingual Pla

ne BMP) 和 4 字节的辅助多语言平面 (Supplementary Multilingual Plane SMP) 两种

bull BMPndash Unicode 的基本平面或基本多语言平面 BMP 对应于 ISOIEC 10646-1 的第 00组的 00 平面( BMP )即 Unicode 与 ISOIEC 10646 的 BMP 中的字符编码完全一致

bull SMPndash 鉴于 Unicode 原有的 16位元空间不足以应用从 Unicode 31版本开始设立了 16 个辅助平面使 Unicode 的可使用空间由六万多字增至约一百万字

ndash 原有的 Unicode双字节空间称为基本平面或基本多语言平面 BMP 辅助多语言平面 SMP 字符要用 4 字节来储存

ndash 第一辅助平面摆放拼音文字(主要为现时已不再使用的文字)及符号范围在 U+10000 - U+1FFFD

ndash 第二辅助平面又称为表意文字补充平面 (Supplementary Ideographic Plane 简称 SIP) 现时摆放ldquo中日韩统汉字扩展 B 区rdquo共 43253 个汉字范围在 U+20000 - U+2FFFD

ndash 第三至十三辅助平面尚未使用ndash 第十四辅助平面又称为特殊用途补充平面 (Supplementary Special-purpose Pl

ane 简称 SSP) 摆放 Language tags 和 Variation Selectors 它们都是控制字符范围在 U+E0000 - U+E01FF

ndash 第十五至十六辅助平面都是私人使用区它们的范围是 U+F0000 - U+FFFFD 及 U+100000 - U+1000FD

bull Unicode 字符集的具体编码方式参加第 4小节ldquo 4 UTFrdquo

2 ISOIEC 10646

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull ISOIEC 10646 标准由 ISO 与 IEC 联合成立的 ISOIEC JTC1SC2WG2 制定ndash JTC 1 ( Joint Technical Committee 1 on Information

technology ISOIEC信息技术联合技术委员会 1 )负责信息技术方面标准的制定工作

ndash SC 2 ( SubCommittee 2 on Coded character sets 编码字符集分会 2 )下的 WG 2 ( Working Group 2 on Universal coded character set 通用编码字符集工作组 2 )负责制定国际通用字符编码标准即后来公布的 ISOIEC 10646

发展历史bull 1984年 ISO 的一些会员国发起制定新的国际字符编码标准同年 4月 ISO

与 IEC 联合成立 ISOIEC JTC1SC2WG2 1987年 3月制定出编码架构1992年 6月投票通过第二版国际标准草案

bull 1993年 5月推出 10646 标准时将内容分成两个部分标准首先发布的是其中的第 1 个部分(体系结构与基本多文种平面)的第 1版( Edition 1 ) ISOIEC 10646-11993 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane(信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

bull 2000年 3月推出 10646 标准第一个部分的第 2版( Edition 2 ) ISOIEC 10646-12000 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane

bull 2001年 10月推出 10646 标准第 2版的第二个部分(辅助平面)的第 1版( Edition 1 ) ISOIEC 10646-22001 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 2 Supplementary Planes

bull 2003年 10月推出的 10646新标准(第 1版 Edition 1 )将老标准中的两个部分标准合并成了一个单一的标准 ISOIEC 106462003 Information technology -- Universal Multiple- Octet Coded Character Set (UCS) 后来又于 2010年 2012年和 2014年分别推出了 ISOIEC 106462010 (第 2版)ISOIEC 106462012 (第 3版)和 ISOIEC 106462014 (第 4版)

UCS 通用字符集bull 通用字符集( Universal Character Set UCS )是

ISOIEC 10646 标准所定义的字符编码方式采用 4字节编码又称为 Universal Multiple-Octet Coded Character Set (通用多八位编码字符集)

bull 通用字符集是所有包括了其他字符集它保证了与其他字符集的双向兼容即如果你将任何文本字符串翻译到 UCS 格式然后再翻译回原编码你不会丢失任何信息

bull UCS 包含了已知语言的所有字符除了拉丁语希腊语斯拉夫语希伯来语阿拉伯语亚美尼亚语格鲁吉亚语还包括中文日文韩文这样的象形文字 UCS 还包括大量的图形印刷数学科学符号

名字与组合字符bull UCS 不仅给每个字符分配一个代码而且赋予了

一个正式的名字表示一个 UCS 或 Unicode值的十六进制数通常在前面加上ldquo U+rdquo 例如ldquo U+0041rdquo代表字符ldquo Ardquo

bull UCS里有些编码点分配给了组合字符组合字符机制允许在任何字符后加上重音符或其他指示标记 这在科学符号中特别有用 比如数学方程式和国际音标字母 可能会需要在一个基本字符后组合上一个或多个指示标记

实现级别bull 并不是所有的系统都需要支持像组合字符这样的的先进

机制因此 ISO 10646 指定了如下三种实现级别ndash 级别 1不支持组合字符和韩语 Hangul Jamo 字符 ( 一种特

别的 更加复杂的韩国文的编码 使用两个或三个子字符来编码一个韩文音节 )

ndash 级别 2类似于级别 1 但在某些文字中允许一列固定的组合字符 (例如 希伯来文 阿拉伯文 Devangari 孟加拉语 果鲁穆奇语 Gujarati Oriya 泰米尔语 Telugo 印 埃纳德语 Malayalam 泰国语和老挝语 ) 因为如果没有最起码的几个组合字符 UCS就不能完整地表达这些语言

ndash 级别 3支持所有的 UCS 字符如可以在任意一个字符上加上一个箭头或 和一个 tilde(颚化符号即字母上面的~ )

编码方式bull UCS 有如下两种编码方式

ndash UCS-2与 Unicode 的 2 字节编码基本一样ndash UCS-4 4 字节编码目前是在 UCS-2 前加

上 2 个全零的字节bull UCS 还有 UTF 编码方式参见下面第 4小节ldquo 4 UTFrdquo

3 Unicode 与 ISOIEC 10646bull 关系

ndash 历史上存在两个独立的尝试创立单一字符集的组织即国际标准化组织( ISO )和多语言软件制造商组成的统一码协会组织( Unicodeorg )前者开发的 ISO 10646项目后者开发的 Unicode项目因此最初制定了不同的标准

ndash 1991年前后两个项目的参与者都认识到世界不需要两个不兼容的字符集于是它们开始合并双方的工作成果并为创立一个单一编码表而协同工作

ndash 从 Unicode20开始 Unicode采用了与 ISO 10646-1相同的字库和字码 ISO 也承诺 ISO10646 将不会替超出 U+10FFFF 的 UCS-4 编码赋值以使得两者保持一致

ndash 两个项目仍都存在并独立地公布各自的标准但 Unicode协会和 ISOIEC JTC1SC2 都同意保持两者标准的码表兼容并紧密地共同调整任何未来的扩展

异同bull Unicode协会公布的 Unicode 标准包含了 ISO 10646-1 实现级别

3 的基本多文种平面在两个标准里所有的字符都在相同的位置并且有相同的名字

bull ISO 10646 标准就像 ISO 8859 标准一样只不过是一个简单的字符集表它定义了一些编码的别名指定了一些与标准有关的术语并包括了规范说明指定了怎样使用 UCS连接其他 ISO 标准的实现等

bull Unicode 标准额外定义了许多与字符有关的语义符号学并详细说明了绘制某些语言(如阿拉伯语)表达形式的算法处理双向文字(比如拉丁文和希伯来文的混合文字)的算法排序与字符串比较所需的算法等等

bull 考虑到 Unicode 标准有一个易记的名字既便宜又包括更多的辅助信息因而它使用得更广泛然而

bull 一般认为用于打印 ISO 10646-1 标准的字体在某些方面的质量要高于用于打印 Unicode 20 的专业字体设计者总是被建议说要两个标准都实现但一些提供的样例字形有显著的区别 ISO 10646-1 标准同样使用四种不同的风格变体来显示表意文字如中文日文和韩文 (CJK) 而 Unicode 20 的表里只有中文的变体

4 UTFbull Unicode 和 UCS 都是一个字符集可以看作为内码bull UTF ( UnicodeUCS Transformation Format 统一码

通用字符集转换格式)是一种编码方式它的出现是因为 Unicode 和 UCS 不适宜在某些场合直接传输和处理

bull UCS 和 Unicode 只是分配整数给字符的编码表现在存在好几种将一串字符表示为一串字节的方法(如高或低位字节在前)

bull 最显而易见的两种方法是将 UCS 和 Unicode 文本存储为 2 个 或 4 个字节序列的串这两种方法的正式名称分别为 UCS-2 和 UCS-4

bull 常用的 UTF具体编码方式有 UTF-8 UTF-16 和 UTF-32

UTF-8

bull UTF-8 是 UTF 的一种具体编码方式在 ISO 10646-1 的附录 R 和 IETF 的 RFC 2279 里定义

bull 由于要使文档中的文字与 ASCII兼容故 UTF-8 选择了使用可变长度字节来储存 Unicode 和 UCS 例如ndash ASCII 字母继续使用 1 字节储存ndash 重音文字希腊字母或西里尔字母等使用 2 字节来储存ndash 常用的汉字就要使用 3 字节ndash 辅助平面字符则使用 4 字节ndash 即 ASCII 不作变换其他字符做变长编码每个字符 1~4 字节

bull UTF-8 通常作为外码bull 在 UTF-8 文件的开首很多时都放置一个 U+FEFF 字符

(UTF-8 以 EF BB BF 代表 ) 以显示这个文字档案是以UTF-8 编码

UTF-8 的优点bull 与 CPU 字节顺序无关可以在不同平台之间交流

bull 容错能力高任何一个字节损坏后最多只会导致一个编码码位损失不会链锁错误 ( 如 GB 码错一个字节就会整行乱码 )

UTF-8 的缺点bull UTF-8 使用可变长度字节储存使计算机程序设计变得复杂 (故此在计算机程序或操作系统内部多采用 UCS-2 编码 )

bull 在旧式的中文日文及朝鲜文编码之中每字符都使用 2 字节储存而 UTF-8 须使用 3 字节 (采用 UTF-16 编码则可只使用 2字节储存 )

bull 泰语以往使用的 ISO 8859-11 每字符只使用 1 字节储存而 UTF-8 须使用 3 字节

UTF-8储存的多字节串字符bull U-00000000 - U-0000007F 0xxxxxxx bull U-00000080 - U-000007FF 110xxxxx 10xxxxxx

bull U-00000800 - U-0000FFFF 1110xxxx 10xxxxxx

10xxxxxx bull U-00010000 - U-001FFFFF 11110xxx 10xxxxx

x 10xxxxxx 10xxxxxx bull 在多字节串中第一个字节的开头ldquo 1rdquo 的数目就

是整个串中字节的数目bull 每个使用 UTF-8储存的字符除了第一个字节外其余字节的头两个位元都是以 10 开始使文字处理器能够较快地找出每个字符的开始位置

UTF-16bull UTF-16 是 UTF 的另一种具体编码方式在 ISO 1064

6-1 的附录 Q 和 IETF 的 RFC 2781 里定义bull UTF-16 是变长码( 2 或 4 字节)大致相当于 20位编码值在 0 到 0x10FFFF 之间基本上就是 Unicode 编码的实现 UTF-16 与 CPU 字序有关但因为最省空间常作为网络传输的外码 UTF-16 是 Unicode 的完美编码

bull lt0x10000 的直接用其对应的 16位整数编码位于 0x10000 ~ 0x10FFFF 之间的用 0xD800~0xDBFF 的 16位整数后跟 0xDC00~0xDFFF 的 16位整数的 4 字节编码 gt 0x10FFFF 的不能用 UTF-16 表示

bull 在 Unicode 的 BMP 中定义的字符(无论是拉丁字母汉字或其他文字或符号)一律使用 2 字节存储而在辅助平面定义的字符则以两个 2 字节的值来存储

UTF-16 的特点bull UTF-16比起 UTF-8 的好处在于大部分字符都以固定长

度的 2 字节存储但 UTF-16却无法相容于 ASCII 编码bull UTF-16 有两种编码模式即大尾序( big Endian 高位字节在前)和小尾序( little Endian 高位字节在后)储存形式(一般來說以 Macintosh 制作和存储的文字使用大尾序格式以 Microsoft 或 Linux 制作和存储的文字使用小尾序格式)

bull 为了弄区分 UTF-16 文件的大小尾序在 UTF-16 文件的开头都会放置一个 U+FEFF 字符作为字节顺序标记 (UTF-16LE 以 FF FE代表 UTF-16BE 以 FE FF代表 ) 以显示该文档是以 UTF-16 编码的

UTF-32

bull UTF-32 仅使用了 Unicode范围 (0 到 0x10FFFF) 的 32位编码相当于 UCS-4 的子集

bull 由于 Unicode 和 ISOIEC 10646 的编码和结构与前面讲过的 GB 13000 类似或等价这里就不再做详细的介绍

5支持bull 现在 UnicodeUCS 已经获得了十分广泛的支

持ndash网络与浏览器(如 HTML 4050 XML 与 IE

Safari Netscape Firefox Chrome Opera Edge 等)

ndash操作系统(如 Windows NT2000XPVista7810 Mac OS X iOS Android和 Linux )

ndash 编程语言新版本(如 CC++JavaObjective-CC Swift 等)

Unicode 代码的浏览器显示代码 字符标准名称 (英语 )

浏览器的显示

amp65 大写拉丁字母 A A

amp223 小写拉丁字母 Sharp S szlig

amp254 小写拉丁字母 Thorn thorn

amp916 大写希腊字母 Delta Δ

amp1049 大写斯拉夫字母 Short I Й

amp1511 希伯来字母 Qof ק

amp1605 阿拉伯字母 Meem م

amp3671 泰文数字 7 ๗amp4688 埃塞俄比亚音节文字 Qha ቐ

amp12354 日语平假名 A あamp12450 日语片假名 A アamp21494 简体汉字 叶 叶amp33865 繁体汉字 葉 葉amp50685 韩国音节文字 Yeob 엽

23 文字输出bull 文字输出是指将计算机内的字符编码通过计算机的输出设备(如显示器打印机喇叭)展现出所对应字符的图形或声音供人们阅读或聆听

bull 本节主要介绍文字图示输出的字形技术bull 文字声音输出属于语音合成只在本节的末尾作简单的介绍

231 字形技术bull 文字 = 图形bull 不论是象形文字中的单字还是拼音文字

中的字母都是用图形来表示的bull 在计算机里文字的表示 输出(显示和打

印)涉及ndash 字型ndash 字体ndash 字库

1字型bull 字型指构造和生成字形的方法一般可分为

ndash 点阵字 DOS 显卡 ROM 金山 科印特点似位图显示快占空间(字库大)放大后有马赛克效应

bull 显示字母 88 汉字 1616bull 打印 2424 4848 6464

ndash 矢量字单线条用于笔式绘图仪特点字库小算法简单难看

ndash 轮廓字用曲线描绘字的轮廓输出效果好所见即所得(WYSWYG) 可无级放大易实现空心 阴影 填充 变形等各种特效功能轮廓曲线一般采用样条曲线如 TrueType (Apple 1991 Mac OS Microsoft 1992 Windows 31)用的是二次 B 样条 Bezier曲线中文之星 RichWin采用的是三次 B 样条 Bezier曲线

字型种类

2字体bull 字体指字的形状风格如

ndash 汉字的

ndash 英文的

宋体楷体黑体仿宋

行楷隶书新魏幼圆

Times New Roman Arial Narrow Courier New

常用汉字字体bull 宋体mdashmdash宋体来自于北宋时雕版刻书所采用的欧体字(唐朝欧阳询体)宋体字的横顿拉捺挑钩别具特色间架平正疏密适中字体秀丽遒劲但笔画横细竖粗适合于刀刻不宜于手写现在宋体广泛用于印刷常来表现文档的正文

bull 仿宋体mdashmdash 1920年钱塘的丁辅之与丁善之等人将明代以后盛行的方廓形字体加以改造创造出长形和方形的聚珍仿宋后来演化为现在的仿宋体仿宋体比较接近于手写体为宋体和楷体的折中是采用的宋体的结构和楷体的笔法而成现常来表现打印文件以及文档的摘要和注释等

bull 黑体mdashmdash黑体是适应工艺美术的发展而出现的一种等线体是从日本引进的黑体的结构与宋体没有什么差别只是其笔画粗细一致健实粗壮主要用于文档的标题和重点及标语广告等方面

bull 楷体mdashmdash楷体源于楷书楷体的笔画圆浑笔调灵活结构端正美观但不宜于木板雕刻所以直到清末西洋的石板印刷术传入后才开始广泛用于印刷现代的楷体创造于 20世纪的二三十年代主要用于文档的正文(多用于中小学教材)也可用于工艺美术等方面

3字库bull 字库为一种文字的某一字体的所有字符的集合一般存放在一个磁盘文件中

bull 由于象形文字中单字的数量大(成千上万)而拼音文字中字母的数量小(不到一百个)所以字库的大小有很大的差别

bull 为了使文档界面丰富多彩常见的字处理软件都支持多种字体带有众多字库

4点阵字型的国家标准bull 我国已经公布了若干字体的点阵字型之国家标准

ndash GB 50071-19852001 信息技术 汉字编码字符集(基本集) 24 点阵字型

ndash GB 50072-19852001 信息技术 汉字编码字符集(辅助集) 24 点阵字型

ndash GB 5199-19862001 信息技术 汉字编码字符集(基本集) 16 点阵字型 宋体

ndash GB 6345-19862001 信息技术 汉字编码字符集(基本集) 32 点阵字型 宋体

ndash GB 12041-2001 信息技术 汉字编码字符集(基本集) 48点阵字型 宋体

ndash GB 17698-1999 信息技术 通用多八位编码字符集( I 区) 汉字 16 点阵字型

232 语音合成bull 文字的声音输出主要使用的是语音合成的技术bull 语音合成功能是ldquo文rarr语rdquo转换bull 文语转换 TTS (Text-To-Speech) 是将文本形式的信息转换成自然语音的一种技术其最终目标是使计算机输出清晰而又自然的声音

bull 英语的语音合成在上世纪 80年代就早已成熟而中文 汉语的合成现在也趋于成熟并有了广泛的应用(如汽车导航仪智能手机等)

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 41: 第一篇  媒体

3汉字编码的辅助集bull 除了GB 2312基本集的 6 763 个简体汉字外国家标

准还给出了汉字编码字符集的多个辅助集bull 第二 四辅助集分别增加了 7 237 7 039 个简体汉字bull 第一和三 五辅助集则分别是与基本集和第二 四辅助集所对应的繁体汉字字符集的国家标准

bull 基本集加上辅助集共有 21 039 个简体汉字和 21 142个繁体汉字

bull 繁体汉字之所以多一些是因为在第一辅助集中有时几个繁体字对应一个简体字因此比基本集多出 103 个汉字

bull 基本集和辅助集的代码页之间靠其编码字节的最高位来区分

编码字符的分页标志

双字节汉字编码的页面结构第二字节 列号

行号 0 middot middot middot 32 33 34 helliphellip 125 126 127 128middot middot 160 161 162 helliphellip 254 255 0 middot middot 32

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

33 34 middot middot middot 126

1 2 middot middot middot 94

第四五辅助集 (7 039个汉字)

127

(兼容ASCII)

128 middot middot 160

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

161 162 middot middot middot 254

1 2 middot middot middot 94

第二三辅助集 (7 237个汉字)

1 2 middot middot middot 94

基本集第一辅助集 (6 763 6 866个汉字) (682个非汉字图符)

第一字节

255

4 Big5

bull 除了中国大陆使用的简体汉字外在台湾香港澳门和海外华侨社区使用的是传统的繁体汉字

bull 简体汉字使用 GB (国标)系列编码标准bull 繁体汉字一般使用的是 Big5内码(大五码)即台湾的ldquo资讯工业策进会rdquo发布的《标准交换码 (Ⅲ码 )》收录汉字 13 053 个

bull Big5内码是 1984年由台湾财团法人资讯工业策进会与宏碁 (Acer) 神通 (MiTAC) 佳佳零壹 (Zero One) 大众 (FIC) 等五大软件公司联合推出故称为大五码

BIG5 的代码空间低位字节

00 hellip 3F 40 hellip 7E 7F hellip A0 A1 hellip FE FF

高位字节

00middot

80

81middot

A0用户定义区 用户定义区

A1A2A3

非汉字图符 非汉字图符

A4middot

C6常用汉字 常用汉字

C7C8

用户定义区 用户定义区

C9middot

F9次常用汉字 次常用汉字

FAmiddot

FE用户定义区 用户定义区

FF

5少数民族文字编码bull 中国共有 56 个民族除了汉回满族一般使用汉语外其他少数民族大多有自己的民族语言

bull 我国各民族使用的 50 多种文字可以分为字母式结构文字和非字母式结构文字两大类ndash 字母式结构的有拉丁文斯拉夫文蒙古文维吾尔文哈萨克文藏文和朝鲜文等字母式

ndash 非字母式结构的有汉字象形文字图画文字和音节文字等bull 各民族文字的书写方向也有不同

ndash 壮文藏文朝鲜文彝文等的字从左到右行从上到下ndash 维吾尔文哈萨克文和柯尔克孜文等的字从右到左行从上

到下ndash 蒙古文和满文的字从上到下行从左到右ndash 汉字的书写方向有两种

bull 大陆的简体汉字的字从左到右行从上到下bull 港台与古旧书的繁体汉字的字从上到下行从右到左

国家标准bull 下面按发布时间列出若干已经公布的我国少数民族文字

编码集的国家标准(这些字符集一般分成两类对字母式结构文字采用八位编码对非字母式结构文字采用双字节编码)ndash GB 8045-87《信息处理交换用蒙古文七位和八位编码图形字

符集》收 82 个蒙古文字母和 12 个其他符号共 94 个字符ndash GB 12050-89《信息处理交换用维吾尔文编码图形字符集》收 32 个维吾尔文字母一个维吾尔文复合字符和 37 个其他符号共 70 个字符

ndash GB 12052-89《信息交换用朝鲜文编码字符集》收 5297 个朝鲜文字和 682 个其他符号(与 GB 2132同)共 5 979 个字符

ndash GB 13134-91《信息交换用彝文编码字符集》收 1165 个彝文字符和 688 个其他符号共 1853 个字符

ndash GB 16959-1997《信息技术 信息交换用藏文编码字符集 基本集》收 41 个藏文字母 36 个藏文主字 13 个元音字符12 个语音字符 10 个藏文数字 10 个半值符一个控制用连接符和 46 个其他藏文图形符号共 169 个字符

6 GB 13000bull GB 13000 是与 ISOIEC 10646 等价的国际通用编码字符集标准收汉字 2万多个但是与 GB 2312 和 GBK 不兼容

bull 1993年 5月 ISO 与 IEC 联合推出了可用于世界各种文字的通用编码字符集的国际标准的第 1部分ndash ISOIEC 10646-11993 Information technology -- Universal Multiple-Octe

t Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane (信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

ndash 该标准收字符 96万个几乎涵盖世界上的所有文字其中包含汉字 21 003 个

bull 1993年底我国推出了等同于国际标准 ISOIEC 1064611993 的强制性国家标准 ndash GB 130001-93《信息技术 通用多八位编码字符集( UCS ) 第一部分

体系结构与基本多文种平面》ndash 该标准于 1993年 12月 24日被国家技术监督局批准 1994年 8月 1日起实施

GB 13000 的主要特点

bull 世界各语言文种字符统一编码避免冲突便于国际交流

bull 编码空间宽阔连续每个图形字符的编码唯一(一字一码)不再存在兼容性问题

bull 按文种而不是按语言编码避免重复和浪费(如中日韩汉字的统一编码 CJK )

bull 与 GB 2312 和 GBK 不兼容

体系结构bull UCS 的体系结构是基于所谓ldquo多八位rdquo的而ldquo八位rdquo就是一个字节ldquo多八位rdquo就是多个字节

bull UCS采用 4 个字节来表征组面行位的四维空间bull 整个 UCS空间包含 128 个组( 0x00组 ~0x7F组)每组有 256 个平面( 0x00 平面 ~0xFF 平面)每个平面有 256 行每行又由 256 个字位构成

bull UCS共有( 128 times 256 = ) 32 768 个平面每个平面有( 256 times 256 = ) 65 536 个字位每个字位对应于一个字符的编码

bull 目前的编码只限于 00组已经定义的平面有 00组的00 平面mdashmdash称之为基本多文种平面 BMP ( Basic Multilingual Plane ) 及若干辅助平面

UCS 的全部编码空间

每个平面256times256 个

字位

00组 00 平面

00组 FF 平面

01组 00 平面

7F组 00 平面00

01组

7F组

UCS 的 00组

BMPbull BMP = Basic Multilingual Plane 基本多文种平面bull BMP 用作双八位编码字符集称之为 UCS-2 它被

分成四个区ndash A- 区(字位 0x0000~0x4DFF 有 19 903 个字位)用于

字母文字音节文字以及各种符号ndash I- 区(字位 0x4E00~0x9FFF 共 20 992 个字位)用于中日韩统一汉字( CJK )

ndash O- 区(字位 0xA000~0xDFFF 共 16 384 个字位)保留未来标准化用

ndash R- 区(字位 0xE000~0xFFFD 共 8 190 个字位)为 BMP 的限制使用区包括专用字符变形显现形式及兼容字符

BMP总貌

A-区

00~33 拼音文字(见下页)

34~3D 朝鲜文

3E~44 朝鲜文补充 -A

45~4D 朝鲜文补充 -B

I-区 4E~9F CJK统一汉字O-区 A0~DF

R-区

E0~F8 专用区

F9~FA CJK兼容汉字FB 拼音文字变形显现形式

FC~FD 阿拉伯文变形显现形式 -A

FE半形组合用标志

CJK兼容形式

小写变体

阿拉伯文变形显现形式 -B

FF 半形及全形字符 特殊字符

BMP 的0x00~0x33

行字母文字区

00 基本拉丁文 拉丁文-1补充

01 拉丁文扩充-A 拉丁文扩充-B

02 拉丁文扩充-B 国际音标扩充 进格修饰字符

03 组合用发音符 基本希腊文 希腊符号及哥普特文

04 西里尔文

05 美亚尼亚文 希伯来文(基本和扩充)

06 基本阿拉伯文 阿拉伯文扩充

07

08

09 梵文 孟加拉文

0A 锡克教文 古吉拉特文

0B 奥利雅文 泰米尔文

0C 泰卢固文 卡纳达文

0D 德拉维族文

0E 泰文 老挝文

0F

10 格鲁吉亚文

11 朝鲜文字母

12~1D

1E 拉丁文扩充增补

1F 希腊文扩充

20 广义标点 上下标 货币符号 符号组合用区分标志

21 类似字母的符号 数字形式 箭头

22 数学运算符

23 零杂技术用符号

24 控制图符 光学识别符 带括号的字母数字

25 制表符 方块元素 几何图形符

26 零杂符号

27 示意符等

28~2F

30 CJK符号和标点 平假名 片假名

31 注音 朝鲜文兼容字母 CJK零杂字符

32 带括号的CJK字母及月份

33 CJK兼容字符

留作将来标准化用

非图形字符

表示形式bull GB 13000提供了字符编码表示的两种替代使用的形式

ndash 双八位 BMP 形式( UCS-2 )mdashmdash允许使用 BMP 中的字符且每个字符用两个字节表示

ndash 肆八位正则形式( UCS-4 )mdashmdash允许使用 GB 13000 中的全部字符且每个字符用四个字节表示

bull 除了 UCS-24外还有另外两种变形的表示形式ndash UTF-8 (单字节 ~ 多字节)ndash UTF-16 (双字节和 4 字节与 UCS-2 等价)ndash 目前在工业上的实现均为 UTF-16 ( UCS-2 )和 UTF-8ndash UTF = Unicode UCS Transformation Format 统一码 UC

S转换格式bull 关于统一码我们会在下一小节详细介绍

7 GBK 与 GB 18030bull 由于 GB 13000 标准与 GB 2312 标准的字符编码不兼容作为过渡在国家信息技术标准化委员会的主持下制定了与 GB 2312兼容的《汉字内码扩展规范( GBK )》( K 为扩展的ldquo扩rdquo字的拼音首字母)并于 1995年 12月 15日由原国家技术监督局标准司联合原电子工业部科技与质量监督司作为指导性技术规范发布实施

bull 2000年 GBK又被国家标准 GB 18030-2000《信息技术 信息交换用汉字编码字符集 基本集的扩充》所代替该标准收汉字 2万 7千个

bull 与 GB 2312 一样 GB 18030 也为中国的强制性国家标准微软公司的 Windows XPVista78 中文版与苹果公司的 Mac OS X 和 iOS 谷歌公司的 Android (安卓)等操作系统已经全面支持 GBK

GB 18030 的码位范围分布

字节数 码位空间 码位数目

单字节 0x00~0x7F 128

双字节第 1字节 第 2字节

23 9400x81~0xFE

0x40~0x7E 0x80~0xFE

四字节第 1字节 第 2字节 第 3字节 第 4字节

1 587 6000x81~0xFE 0x30~0x39 0x81~0xFE 0x30~0x39

GB 18030的

总体结构图

收录字符bull 单字节部分mdashmdash收录了GBT 11383 的 0x00~0x7F 全部 128 个字符(似 ASCI

I )bull 双字节部分mdashmdash收录内容如下 (21 003 个汉字和 884 个符号共 21 887 个字符 )

ndash GB 130001-93 的全部 CJK 统一汉字字符 20 902 个( GB 2312 的编码汉字在双字节 2 区其他 CJK 统一汉字在双字节 34 区)

ndash GB 130001-93 的 CJK兼容区挑选出来的 21 个汉字ldquo郎凉秊helliphellip﨨﨩rdquo( 0xFD9C~0xFDA0 和 0xFE40~0xFE4F )

ndash GB 130001-93 中收录而 GB 2312未收录的台湾地区使用的图形字符 139 个ldquoˊˋ˙helliphelliprdquo( 0xA840~0xA895 和 0xA940~0XA988 )

ndash GB 130001-93收录的其他字符 31 ( 13)个(在双字节 5 区)ndash GB 2312-80 中的非汉字字符 682 个( 0xA1A1~0xA9EF )ndash GB 12345-90 的竖排标点符号 19 ( 29)个ldquo︵︶︹helliphellip︳︴rdquo( 0xA6D9~0xA6

F5 )ndash GB 2312-80未收录的 10 个小写罗马数字ldquoⅰⅱⅲhelliphellipⅸⅹrdquo( 0xA2A1~ 0xA2A

A )ndash GB 2312-80未收录的带音调的汉语拼音字母 5 ( 4)个ldquo ńňǹrdquo 以及 ɑ 和 ɡ ( 0

xA8BB~0xA8C0 )ndash 汉字数字零ldquo〇rdquo (0xA996) 和欧元符ldquoeurordquo (0xA2E3)ndash 表意文字描述符 13 个ldquohelliphelliprdquo( 0xA989~0xA995 )ndash 对 GB 130001-93增补的汉字和部首 构件 80 个ldquohelliphellip䶮rdquo( 0xFE50~ 0x

FEA0 )bull 四字节部分mdashmdash收录了上述双字节字符之外的包括 CJK 统一汉字扩充 A 在内

的 GB 130001-93 中的全部字符

GB 18030双字节部分的码位安排

类别 区名 码位范围 码位数 字符数 内容

符号区双字节 1区 A1A1~A9FE 846 718

GB 2312非汉字字符等

双字节 5区 A840~A9A0 192 166 台湾图符等

汉字区双字节 2区 B0A1~F7FE 6768 6763 GB 2312汉字双字节 3区 8140~A0FE 6080 6080 CJK统一汉字双字节 4区 AA40~FEA0 8160 8160 CJK统一汉字等

用户自定义区双字节用户区 1 AAA1~AFFE 564

用户自定义字符双字节用户区 2 F8A1~FEFE 658

双字节用户区 3 A140~A7A0 672

GB 18030双字节部分的编码空间结构图 尾字节

0x40larr――rarr0x7E 0x80larr――rarr0xA0 0xA1larr――――――――――――rarr0xFE

0x81 uarr darr

0xA0

0xA1 uarr darr

0xA7

0xA8 0xA9

首字节

0xAA uarr | | | | | | | | | | darr

0xFE

双字节 3区

汉字区6 080个码位

双字节用户区 3

用户自定义区672个码位

双字节 5区 图形符号区192个码位

双字节 4区

汉字区8 160个码位

双字节 1区

图形符号区564个码位

双字节 2区

汉字区6 768个码位

双字节用户区 1 用户自定义区564个码位

双字节用户区 2 用户自定义区658个码位

223 国际通用字符编码

bull Unicode (统一码)是由多语言软件制造商组成的统一码协会( httpwwwUnicodeorg)所制定一种国际字符的编码标准

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull 本节主要介绍这两种关系密切的主流国际字符编码标准的来历编码方案各自特点与相互关系

1 Unicode 统一码bull 发展历史

ndash 1987年施乐( Xerox )公司的 Joe Becker 与 Lee Collins 和苹果( Apple )公司的 Mark Davis 等人开始讨论统一编码 1987年 12月 Joe Becker造词 Unicode (统一码)含义为ldquo unique universal and uniform character encodingrdquo (单一通用统一的字符编码) 1989年 2月开始定期召开统一码会议 1989年 9月公布 Unicode草案

ndash 1991年 1月 3 日由 Xerox Apple Sun IBM Aldis Microsoft 等公司出资在美国加州成立了统一码协会( Unicode Consortium )并由协会设立非盈利性的统一码公司( Unicode Inc )后来 HP Adobe Borland Digital Lotus Novell 等公司也纷纷加入 1991年 1月成立统一码技术委员会 UTC 并制定了其规程

ndash 1991年 2月在 Ed Hart 的推动下进行了ldquo统一码对 10464 国际标准草案 1rdquo 的对话Unicode 与 ISOIEC 10646开始走向融合

ndash 1991年 8月发布 Unicode 标准 10版的第 1卷(体系结构非表意字符) 1992年6月发表 Unicode 10版的第 2卷(表意字符) 1993年 6月发布 Unicode 11版与 1993年 5月公布的 ISOIEC 10646-11993 实现了合并

ndash 1996年 7月发布 Unicode 20版ndash 1999年 9月发布 Unicode 30版ndash 2003年 4月发布 Unicode 40版(对应于 ISOIEC 106462003 ) 2004年 3月 31日发布 Unicode 401版 2005年 3月 31日发布 Unicode 410版

ndash 2006年 7月 14日发布 Unicode 50版 2008年 4月 4日发布 Unicode 51版 2009年 12月 22日发布 Unicode 52版

ndash 2010年 10月发布 Unicode 60版 2012年 1月发布 Unicode 61版(对应于 ISOIEC 106462012 ) 2012年 9月推出 Unicode 62版 2013年 9月推出 Unicode 63版

ndash 2014年 6月 16日发布 Unicode 70版 ndash 2015年 6月 17日发布 Unicode 80版

字符集bull Unicode 字符集的空间分成双字节的基本多语言平面 (Basic Multilingual Pla

ne BMP) 和 4 字节的辅助多语言平面 (Supplementary Multilingual Plane SMP) 两种

bull BMPndash Unicode 的基本平面或基本多语言平面 BMP 对应于 ISOIEC 10646-1 的第 00组的 00 平面( BMP )即 Unicode 与 ISOIEC 10646 的 BMP 中的字符编码完全一致

bull SMPndash 鉴于 Unicode 原有的 16位元空间不足以应用从 Unicode 31版本开始设立了 16 个辅助平面使 Unicode 的可使用空间由六万多字增至约一百万字

ndash 原有的 Unicode双字节空间称为基本平面或基本多语言平面 BMP 辅助多语言平面 SMP 字符要用 4 字节来储存

ndash 第一辅助平面摆放拼音文字(主要为现时已不再使用的文字)及符号范围在 U+10000 - U+1FFFD

ndash 第二辅助平面又称为表意文字补充平面 (Supplementary Ideographic Plane 简称 SIP) 现时摆放ldquo中日韩统汉字扩展 B 区rdquo共 43253 个汉字范围在 U+20000 - U+2FFFD

ndash 第三至十三辅助平面尚未使用ndash 第十四辅助平面又称为特殊用途补充平面 (Supplementary Special-purpose Pl

ane 简称 SSP) 摆放 Language tags 和 Variation Selectors 它们都是控制字符范围在 U+E0000 - U+E01FF

ndash 第十五至十六辅助平面都是私人使用区它们的范围是 U+F0000 - U+FFFFD 及 U+100000 - U+1000FD

bull Unicode 字符集的具体编码方式参加第 4小节ldquo 4 UTFrdquo

2 ISOIEC 10646

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull ISOIEC 10646 标准由 ISO 与 IEC 联合成立的 ISOIEC JTC1SC2WG2 制定ndash JTC 1 ( Joint Technical Committee 1 on Information

technology ISOIEC信息技术联合技术委员会 1 )负责信息技术方面标准的制定工作

ndash SC 2 ( SubCommittee 2 on Coded character sets 编码字符集分会 2 )下的 WG 2 ( Working Group 2 on Universal coded character set 通用编码字符集工作组 2 )负责制定国际通用字符编码标准即后来公布的 ISOIEC 10646

发展历史bull 1984年 ISO 的一些会员国发起制定新的国际字符编码标准同年 4月 ISO

与 IEC 联合成立 ISOIEC JTC1SC2WG2 1987年 3月制定出编码架构1992年 6月投票通过第二版国际标准草案

bull 1993年 5月推出 10646 标准时将内容分成两个部分标准首先发布的是其中的第 1 个部分(体系结构与基本多文种平面)的第 1版( Edition 1 ) ISOIEC 10646-11993 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane(信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

bull 2000年 3月推出 10646 标准第一个部分的第 2版( Edition 2 ) ISOIEC 10646-12000 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane

bull 2001年 10月推出 10646 标准第 2版的第二个部分(辅助平面)的第 1版( Edition 1 ) ISOIEC 10646-22001 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 2 Supplementary Planes

bull 2003年 10月推出的 10646新标准(第 1版 Edition 1 )将老标准中的两个部分标准合并成了一个单一的标准 ISOIEC 106462003 Information technology -- Universal Multiple- Octet Coded Character Set (UCS) 后来又于 2010年 2012年和 2014年分别推出了 ISOIEC 106462010 (第 2版)ISOIEC 106462012 (第 3版)和 ISOIEC 106462014 (第 4版)

UCS 通用字符集bull 通用字符集( Universal Character Set UCS )是

ISOIEC 10646 标准所定义的字符编码方式采用 4字节编码又称为 Universal Multiple-Octet Coded Character Set (通用多八位编码字符集)

bull 通用字符集是所有包括了其他字符集它保证了与其他字符集的双向兼容即如果你将任何文本字符串翻译到 UCS 格式然后再翻译回原编码你不会丢失任何信息

bull UCS 包含了已知语言的所有字符除了拉丁语希腊语斯拉夫语希伯来语阿拉伯语亚美尼亚语格鲁吉亚语还包括中文日文韩文这样的象形文字 UCS 还包括大量的图形印刷数学科学符号

名字与组合字符bull UCS 不仅给每个字符分配一个代码而且赋予了

一个正式的名字表示一个 UCS 或 Unicode值的十六进制数通常在前面加上ldquo U+rdquo 例如ldquo U+0041rdquo代表字符ldquo Ardquo

bull UCS里有些编码点分配给了组合字符组合字符机制允许在任何字符后加上重音符或其他指示标记 这在科学符号中特别有用 比如数学方程式和国际音标字母 可能会需要在一个基本字符后组合上一个或多个指示标记

实现级别bull 并不是所有的系统都需要支持像组合字符这样的的先进

机制因此 ISO 10646 指定了如下三种实现级别ndash 级别 1不支持组合字符和韩语 Hangul Jamo 字符 ( 一种特

别的 更加复杂的韩国文的编码 使用两个或三个子字符来编码一个韩文音节 )

ndash 级别 2类似于级别 1 但在某些文字中允许一列固定的组合字符 (例如 希伯来文 阿拉伯文 Devangari 孟加拉语 果鲁穆奇语 Gujarati Oriya 泰米尔语 Telugo 印 埃纳德语 Malayalam 泰国语和老挝语 ) 因为如果没有最起码的几个组合字符 UCS就不能完整地表达这些语言

ndash 级别 3支持所有的 UCS 字符如可以在任意一个字符上加上一个箭头或 和一个 tilde(颚化符号即字母上面的~ )

编码方式bull UCS 有如下两种编码方式

ndash UCS-2与 Unicode 的 2 字节编码基本一样ndash UCS-4 4 字节编码目前是在 UCS-2 前加

上 2 个全零的字节bull UCS 还有 UTF 编码方式参见下面第 4小节ldquo 4 UTFrdquo

3 Unicode 与 ISOIEC 10646bull 关系

ndash 历史上存在两个独立的尝试创立单一字符集的组织即国际标准化组织( ISO )和多语言软件制造商组成的统一码协会组织( Unicodeorg )前者开发的 ISO 10646项目后者开发的 Unicode项目因此最初制定了不同的标准

ndash 1991年前后两个项目的参与者都认识到世界不需要两个不兼容的字符集于是它们开始合并双方的工作成果并为创立一个单一编码表而协同工作

ndash 从 Unicode20开始 Unicode采用了与 ISO 10646-1相同的字库和字码 ISO 也承诺 ISO10646 将不会替超出 U+10FFFF 的 UCS-4 编码赋值以使得两者保持一致

ndash 两个项目仍都存在并独立地公布各自的标准但 Unicode协会和 ISOIEC JTC1SC2 都同意保持两者标准的码表兼容并紧密地共同调整任何未来的扩展

异同bull Unicode协会公布的 Unicode 标准包含了 ISO 10646-1 实现级别

3 的基本多文种平面在两个标准里所有的字符都在相同的位置并且有相同的名字

bull ISO 10646 标准就像 ISO 8859 标准一样只不过是一个简单的字符集表它定义了一些编码的别名指定了一些与标准有关的术语并包括了规范说明指定了怎样使用 UCS连接其他 ISO 标准的实现等

bull Unicode 标准额外定义了许多与字符有关的语义符号学并详细说明了绘制某些语言(如阿拉伯语)表达形式的算法处理双向文字(比如拉丁文和希伯来文的混合文字)的算法排序与字符串比较所需的算法等等

bull 考虑到 Unicode 标准有一个易记的名字既便宜又包括更多的辅助信息因而它使用得更广泛然而

bull 一般认为用于打印 ISO 10646-1 标准的字体在某些方面的质量要高于用于打印 Unicode 20 的专业字体设计者总是被建议说要两个标准都实现但一些提供的样例字形有显著的区别 ISO 10646-1 标准同样使用四种不同的风格变体来显示表意文字如中文日文和韩文 (CJK) 而 Unicode 20 的表里只有中文的变体

4 UTFbull Unicode 和 UCS 都是一个字符集可以看作为内码bull UTF ( UnicodeUCS Transformation Format 统一码

通用字符集转换格式)是一种编码方式它的出现是因为 Unicode 和 UCS 不适宜在某些场合直接传输和处理

bull UCS 和 Unicode 只是分配整数给字符的编码表现在存在好几种将一串字符表示为一串字节的方法(如高或低位字节在前)

bull 最显而易见的两种方法是将 UCS 和 Unicode 文本存储为 2 个 或 4 个字节序列的串这两种方法的正式名称分别为 UCS-2 和 UCS-4

bull 常用的 UTF具体编码方式有 UTF-8 UTF-16 和 UTF-32

UTF-8

bull UTF-8 是 UTF 的一种具体编码方式在 ISO 10646-1 的附录 R 和 IETF 的 RFC 2279 里定义

bull 由于要使文档中的文字与 ASCII兼容故 UTF-8 选择了使用可变长度字节来储存 Unicode 和 UCS 例如ndash ASCII 字母继续使用 1 字节储存ndash 重音文字希腊字母或西里尔字母等使用 2 字节来储存ndash 常用的汉字就要使用 3 字节ndash 辅助平面字符则使用 4 字节ndash 即 ASCII 不作变换其他字符做变长编码每个字符 1~4 字节

bull UTF-8 通常作为外码bull 在 UTF-8 文件的开首很多时都放置一个 U+FEFF 字符

(UTF-8 以 EF BB BF 代表 ) 以显示这个文字档案是以UTF-8 编码

UTF-8 的优点bull 与 CPU 字节顺序无关可以在不同平台之间交流

bull 容错能力高任何一个字节损坏后最多只会导致一个编码码位损失不会链锁错误 ( 如 GB 码错一个字节就会整行乱码 )

UTF-8 的缺点bull UTF-8 使用可变长度字节储存使计算机程序设计变得复杂 (故此在计算机程序或操作系统内部多采用 UCS-2 编码 )

bull 在旧式的中文日文及朝鲜文编码之中每字符都使用 2 字节储存而 UTF-8 须使用 3 字节 (采用 UTF-16 编码则可只使用 2字节储存 )

bull 泰语以往使用的 ISO 8859-11 每字符只使用 1 字节储存而 UTF-8 须使用 3 字节

UTF-8储存的多字节串字符bull U-00000000 - U-0000007F 0xxxxxxx bull U-00000080 - U-000007FF 110xxxxx 10xxxxxx

bull U-00000800 - U-0000FFFF 1110xxxx 10xxxxxx

10xxxxxx bull U-00010000 - U-001FFFFF 11110xxx 10xxxxx

x 10xxxxxx 10xxxxxx bull 在多字节串中第一个字节的开头ldquo 1rdquo 的数目就

是整个串中字节的数目bull 每个使用 UTF-8储存的字符除了第一个字节外其余字节的头两个位元都是以 10 开始使文字处理器能够较快地找出每个字符的开始位置

UTF-16bull UTF-16 是 UTF 的另一种具体编码方式在 ISO 1064

6-1 的附录 Q 和 IETF 的 RFC 2781 里定义bull UTF-16 是变长码( 2 或 4 字节)大致相当于 20位编码值在 0 到 0x10FFFF 之间基本上就是 Unicode 编码的实现 UTF-16 与 CPU 字序有关但因为最省空间常作为网络传输的外码 UTF-16 是 Unicode 的完美编码

bull lt0x10000 的直接用其对应的 16位整数编码位于 0x10000 ~ 0x10FFFF 之间的用 0xD800~0xDBFF 的 16位整数后跟 0xDC00~0xDFFF 的 16位整数的 4 字节编码 gt 0x10FFFF 的不能用 UTF-16 表示

bull 在 Unicode 的 BMP 中定义的字符(无论是拉丁字母汉字或其他文字或符号)一律使用 2 字节存储而在辅助平面定义的字符则以两个 2 字节的值来存储

UTF-16 的特点bull UTF-16比起 UTF-8 的好处在于大部分字符都以固定长

度的 2 字节存储但 UTF-16却无法相容于 ASCII 编码bull UTF-16 有两种编码模式即大尾序( big Endian 高位字节在前)和小尾序( little Endian 高位字节在后)储存形式(一般來說以 Macintosh 制作和存储的文字使用大尾序格式以 Microsoft 或 Linux 制作和存储的文字使用小尾序格式)

bull 为了弄区分 UTF-16 文件的大小尾序在 UTF-16 文件的开头都会放置一个 U+FEFF 字符作为字节顺序标记 (UTF-16LE 以 FF FE代表 UTF-16BE 以 FE FF代表 ) 以显示该文档是以 UTF-16 编码的

UTF-32

bull UTF-32 仅使用了 Unicode范围 (0 到 0x10FFFF) 的 32位编码相当于 UCS-4 的子集

bull 由于 Unicode 和 ISOIEC 10646 的编码和结构与前面讲过的 GB 13000 类似或等价这里就不再做详细的介绍

5支持bull 现在 UnicodeUCS 已经获得了十分广泛的支

持ndash网络与浏览器(如 HTML 4050 XML 与 IE

Safari Netscape Firefox Chrome Opera Edge 等)

ndash操作系统(如 Windows NT2000XPVista7810 Mac OS X iOS Android和 Linux )

ndash 编程语言新版本(如 CC++JavaObjective-CC Swift 等)

Unicode 代码的浏览器显示代码 字符标准名称 (英语 )

浏览器的显示

amp65 大写拉丁字母 A A

amp223 小写拉丁字母 Sharp S szlig

amp254 小写拉丁字母 Thorn thorn

amp916 大写希腊字母 Delta Δ

amp1049 大写斯拉夫字母 Short I Й

amp1511 希伯来字母 Qof ק

amp1605 阿拉伯字母 Meem م

amp3671 泰文数字 7 ๗amp4688 埃塞俄比亚音节文字 Qha ቐ

amp12354 日语平假名 A あamp12450 日语片假名 A アamp21494 简体汉字 叶 叶amp33865 繁体汉字 葉 葉amp50685 韩国音节文字 Yeob 엽

23 文字输出bull 文字输出是指将计算机内的字符编码通过计算机的输出设备(如显示器打印机喇叭)展现出所对应字符的图形或声音供人们阅读或聆听

bull 本节主要介绍文字图示输出的字形技术bull 文字声音输出属于语音合成只在本节的末尾作简单的介绍

231 字形技术bull 文字 = 图形bull 不论是象形文字中的单字还是拼音文字

中的字母都是用图形来表示的bull 在计算机里文字的表示 输出(显示和打

印)涉及ndash 字型ndash 字体ndash 字库

1字型bull 字型指构造和生成字形的方法一般可分为

ndash 点阵字 DOS 显卡 ROM 金山 科印特点似位图显示快占空间(字库大)放大后有马赛克效应

bull 显示字母 88 汉字 1616bull 打印 2424 4848 6464

ndash 矢量字单线条用于笔式绘图仪特点字库小算法简单难看

ndash 轮廓字用曲线描绘字的轮廓输出效果好所见即所得(WYSWYG) 可无级放大易实现空心 阴影 填充 变形等各种特效功能轮廓曲线一般采用样条曲线如 TrueType (Apple 1991 Mac OS Microsoft 1992 Windows 31)用的是二次 B 样条 Bezier曲线中文之星 RichWin采用的是三次 B 样条 Bezier曲线

字型种类

2字体bull 字体指字的形状风格如

ndash 汉字的

ndash 英文的

宋体楷体黑体仿宋

行楷隶书新魏幼圆

Times New Roman Arial Narrow Courier New

常用汉字字体bull 宋体mdashmdash宋体来自于北宋时雕版刻书所采用的欧体字(唐朝欧阳询体)宋体字的横顿拉捺挑钩别具特色间架平正疏密适中字体秀丽遒劲但笔画横细竖粗适合于刀刻不宜于手写现在宋体广泛用于印刷常来表现文档的正文

bull 仿宋体mdashmdash 1920年钱塘的丁辅之与丁善之等人将明代以后盛行的方廓形字体加以改造创造出长形和方形的聚珍仿宋后来演化为现在的仿宋体仿宋体比较接近于手写体为宋体和楷体的折中是采用的宋体的结构和楷体的笔法而成现常来表现打印文件以及文档的摘要和注释等

bull 黑体mdashmdash黑体是适应工艺美术的发展而出现的一种等线体是从日本引进的黑体的结构与宋体没有什么差别只是其笔画粗细一致健实粗壮主要用于文档的标题和重点及标语广告等方面

bull 楷体mdashmdash楷体源于楷书楷体的笔画圆浑笔调灵活结构端正美观但不宜于木板雕刻所以直到清末西洋的石板印刷术传入后才开始广泛用于印刷现代的楷体创造于 20世纪的二三十年代主要用于文档的正文(多用于中小学教材)也可用于工艺美术等方面

3字库bull 字库为一种文字的某一字体的所有字符的集合一般存放在一个磁盘文件中

bull 由于象形文字中单字的数量大(成千上万)而拼音文字中字母的数量小(不到一百个)所以字库的大小有很大的差别

bull 为了使文档界面丰富多彩常见的字处理软件都支持多种字体带有众多字库

4点阵字型的国家标准bull 我国已经公布了若干字体的点阵字型之国家标准

ndash GB 50071-19852001 信息技术 汉字编码字符集(基本集) 24 点阵字型

ndash GB 50072-19852001 信息技术 汉字编码字符集(辅助集) 24 点阵字型

ndash GB 5199-19862001 信息技术 汉字编码字符集(基本集) 16 点阵字型 宋体

ndash GB 6345-19862001 信息技术 汉字编码字符集(基本集) 32 点阵字型 宋体

ndash GB 12041-2001 信息技术 汉字编码字符集(基本集) 48点阵字型 宋体

ndash GB 17698-1999 信息技术 通用多八位编码字符集( I 区) 汉字 16 点阵字型

232 语音合成bull 文字的声音输出主要使用的是语音合成的技术bull 语音合成功能是ldquo文rarr语rdquo转换bull 文语转换 TTS (Text-To-Speech) 是将文本形式的信息转换成自然语音的一种技术其最终目标是使计算机输出清晰而又自然的声音

bull 英语的语音合成在上世纪 80年代就早已成熟而中文 汉语的合成现在也趋于成熟并有了广泛的应用(如汽车导航仪智能手机等)

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 42: 第一篇  媒体

编码字符的分页标志

双字节汉字编码的页面结构第二字节 列号

行号 0 middot middot middot 32 33 34 helliphellip 125 126 127 128middot middot 160 161 162 helliphellip 254 255 0 middot middot 32

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

33 34 middot middot middot 126

1 2 middot middot middot 94

第四五辅助集 (7 039个汉字)

127

(兼容ASCII)

128 middot middot 160

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

161 162 middot middot middot 254

1 2 middot middot middot 94

第二三辅助集 (7 237个汉字)

1 2 middot middot middot 94

基本集第一辅助集 (6 763 6 866个汉字) (682个非汉字图符)

第一字节

255

4 Big5

bull 除了中国大陆使用的简体汉字外在台湾香港澳门和海外华侨社区使用的是传统的繁体汉字

bull 简体汉字使用 GB (国标)系列编码标准bull 繁体汉字一般使用的是 Big5内码(大五码)即台湾的ldquo资讯工业策进会rdquo发布的《标准交换码 (Ⅲ码 )》收录汉字 13 053 个

bull Big5内码是 1984年由台湾财团法人资讯工业策进会与宏碁 (Acer) 神通 (MiTAC) 佳佳零壹 (Zero One) 大众 (FIC) 等五大软件公司联合推出故称为大五码

BIG5 的代码空间低位字节

00 hellip 3F 40 hellip 7E 7F hellip A0 A1 hellip FE FF

高位字节

00middot

80

81middot

A0用户定义区 用户定义区

A1A2A3

非汉字图符 非汉字图符

A4middot

C6常用汉字 常用汉字

C7C8

用户定义区 用户定义区

C9middot

F9次常用汉字 次常用汉字

FAmiddot

FE用户定义区 用户定义区

FF

5少数民族文字编码bull 中国共有 56 个民族除了汉回满族一般使用汉语外其他少数民族大多有自己的民族语言

bull 我国各民族使用的 50 多种文字可以分为字母式结构文字和非字母式结构文字两大类ndash 字母式结构的有拉丁文斯拉夫文蒙古文维吾尔文哈萨克文藏文和朝鲜文等字母式

ndash 非字母式结构的有汉字象形文字图画文字和音节文字等bull 各民族文字的书写方向也有不同

ndash 壮文藏文朝鲜文彝文等的字从左到右行从上到下ndash 维吾尔文哈萨克文和柯尔克孜文等的字从右到左行从上

到下ndash 蒙古文和满文的字从上到下行从左到右ndash 汉字的书写方向有两种

bull 大陆的简体汉字的字从左到右行从上到下bull 港台与古旧书的繁体汉字的字从上到下行从右到左

国家标准bull 下面按发布时间列出若干已经公布的我国少数民族文字

编码集的国家标准(这些字符集一般分成两类对字母式结构文字采用八位编码对非字母式结构文字采用双字节编码)ndash GB 8045-87《信息处理交换用蒙古文七位和八位编码图形字

符集》收 82 个蒙古文字母和 12 个其他符号共 94 个字符ndash GB 12050-89《信息处理交换用维吾尔文编码图形字符集》收 32 个维吾尔文字母一个维吾尔文复合字符和 37 个其他符号共 70 个字符

ndash GB 12052-89《信息交换用朝鲜文编码字符集》收 5297 个朝鲜文字和 682 个其他符号(与 GB 2132同)共 5 979 个字符

ndash GB 13134-91《信息交换用彝文编码字符集》收 1165 个彝文字符和 688 个其他符号共 1853 个字符

ndash GB 16959-1997《信息技术 信息交换用藏文编码字符集 基本集》收 41 个藏文字母 36 个藏文主字 13 个元音字符12 个语音字符 10 个藏文数字 10 个半值符一个控制用连接符和 46 个其他藏文图形符号共 169 个字符

6 GB 13000bull GB 13000 是与 ISOIEC 10646 等价的国际通用编码字符集标准收汉字 2万多个但是与 GB 2312 和 GBK 不兼容

bull 1993年 5月 ISO 与 IEC 联合推出了可用于世界各种文字的通用编码字符集的国际标准的第 1部分ndash ISOIEC 10646-11993 Information technology -- Universal Multiple-Octe

t Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane (信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

ndash 该标准收字符 96万个几乎涵盖世界上的所有文字其中包含汉字 21 003 个

bull 1993年底我国推出了等同于国际标准 ISOIEC 1064611993 的强制性国家标准 ndash GB 130001-93《信息技术 通用多八位编码字符集( UCS ) 第一部分

体系结构与基本多文种平面》ndash 该标准于 1993年 12月 24日被国家技术监督局批准 1994年 8月 1日起实施

GB 13000 的主要特点

bull 世界各语言文种字符统一编码避免冲突便于国际交流

bull 编码空间宽阔连续每个图形字符的编码唯一(一字一码)不再存在兼容性问题

bull 按文种而不是按语言编码避免重复和浪费(如中日韩汉字的统一编码 CJK )

bull 与 GB 2312 和 GBK 不兼容

体系结构bull UCS 的体系结构是基于所谓ldquo多八位rdquo的而ldquo八位rdquo就是一个字节ldquo多八位rdquo就是多个字节

bull UCS采用 4 个字节来表征组面行位的四维空间bull 整个 UCS空间包含 128 个组( 0x00组 ~0x7F组)每组有 256 个平面( 0x00 平面 ~0xFF 平面)每个平面有 256 行每行又由 256 个字位构成

bull UCS共有( 128 times 256 = ) 32 768 个平面每个平面有( 256 times 256 = ) 65 536 个字位每个字位对应于一个字符的编码

bull 目前的编码只限于 00组已经定义的平面有 00组的00 平面mdashmdash称之为基本多文种平面 BMP ( Basic Multilingual Plane ) 及若干辅助平面

UCS 的全部编码空间

每个平面256times256 个

字位

00组 00 平面

00组 FF 平面

01组 00 平面

7F组 00 平面00

01组

7F组

UCS 的 00组

BMPbull BMP = Basic Multilingual Plane 基本多文种平面bull BMP 用作双八位编码字符集称之为 UCS-2 它被

分成四个区ndash A- 区(字位 0x0000~0x4DFF 有 19 903 个字位)用于

字母文字音节文字以及各种符号ndash I- 区(字位 0x4E00~0x9FFF 共 20 992 个字位)用于中日韩统一汉字( CJK )

ndash O- 区(字位 0xA000~0xDFFF 共 16 384 个字位)保留未来标准化用

ndash R- 区(字位 0xE000~0xFFFD 共 8 190 个字位)为 BMP 的限制使用区包括专用字符变形显现形式及兼容字符

BMP总貌

A-区

00~33 拼音文字(见下页)

34~3D 朝鲜文

3E~44 朝鲜文补充 -A

45~4D 朝鲜文补充 -B

I-区 4E~9F CJK统一汉字O-区 A0~DF

R-区

E0~F8 专用区

F9~FA CJK兼容汉字FB 拼音文字变形显现形式

FC~FD 阿拉伯文变形显现形式 -A

FE半形组合用标志

CJK兼容形式

小写变体

阿拉伯文变形显现形式 -B

FF 半形及全形字符 特殊字符

BMP 的0x00~0x33

行字母文字区

00 基本拉丁文 拉丁文-1补充

01 拉丁文扩充-A 拉丁文扩充-B

02 拉丁文扩充-B 国际音标扩充 进格修饰字符

03 组合用发音符 基本希腊文 希腊符号及哥普特文

04 西里尔文

05 美亚尼亚文 希伯来文(基本和扩充)

06 基本阿拉伯文 阿拉伯文扩充

07

08

09 梵文 孟加拉文

0A 锡克教文 古吉拉特文

0B 奥利雅文 泰米尔文

0C 泰卢固文 卡纳达文

0D 德拉维族文

0E 泰文 老挝文

0F

10 格鲁吉亚文

11 朝鲜文字母

12~1D

1E 拉丁文扩充增补

1F 希腊文扩充

20 广义标点 上下标 货币符号 符号组合用区分标志

21 类似字母的符号 数字形式 箭头

22 数学运算符

23 零杂技术用符号

24 控制图符 光学识别符 带括号的字母数字

25 制表符 方块元素 几何图形符

26 零杂符号

27 示意符等

28~2F

30 CJK符号和标点 平假名 片假名

31 注音 朝鲜文兼容字母 CJK零杂字符

32 带括号的CJK字母及月份

33 CJK兼容字符

留作将来标准化用

非图形字符

表示形式bull GB 13000提供了字符编码表示的两种替代使用的形式

ndash 双八位 BMP 形式( UCS-2 )mdashmdash允许使用 BMP 中的字符且每个字符用两个字节表示

ndash 肆八位正则形式( UCS-4 )mdashmdash允许使用 GB 13000 中的全部字符且每个字符用四个字节表示

bull 除了 UCS-24外还有另外两种变形的表示形式ndash UTF-8 (单字节 ~ 多字节)ndash UTF-16 (双字节和 4 字节与 UCS-2 等价)ndash 目前在工业上的实现均为 UTF-16 ( UCS-2 )和 UTF-8ndash UTF = Unicode UCS Transformation Format 统一码 UC

S转换格式bull 关于统一码我们会在下一小节详细介绍

7 GBK 与 GB 18030bull 由于 GB 13000 标准与 GB 2312 标准的字符编码不兼容作为过渡在国家信息技术标准化委员会的主持下制定了与 GB 2312兼容的《汉字内码扩展规范( GBK )》( K 为扩展的ldquo扩rdquo字的拼音首字母)并于 1995年 12月 15日由原国家技术监督局标准司联合原电子工业部科技与质量监督司作为指导性技术规范发布实施

bull 2000年 GBK又被国家标准 GB 18030-2000《信息技术 信息交换用汉字编码字符集 基本集的扩充》所代替该标准收汉字 2万 7千个

bull 与 GB 2312 一样 GB 18030 也为中国的强制性国家标准微软公司的 Windows XPVista78 中文版与苹果公司的 Mac OS X 和 iOS 谷歌公司的 Android (安卓)等操作系统已经全面支持 GBK

GB 18030 的码位范围分布

字节数 码位空间 码位数目

单字节 0x00~0x7F 128

双字节第 1字节 第 2字节

23 9400x81~0xFE

0x40~0x7E 0x80~0xFE

四字节第 1字节 第 2字节 第 3字节 第 4字节

1 587 6000x81~0xFE 0x30~0x39 0x81~0xFE 0x30~0x39

GB 18030的

总体结构图

收录字符bull 单字节部分mdashmdash收录了GBT 11383 的 0x00~0x7F 全部 128 个字符(似 ASCI

I )bull 双字节部分mdashmdash收录内容如下 (21 003 个汉字和 884 个符号共 21 887 个字符 )

ndash GB 130001-93 的全部 CJK 统一汉字字符 20 902 个( GB 2312 的编码汉字在双字节 2 区其他 CJK 统一汉字在双字节 34 区)

ndash GB 130001-93 的 CJK兼容区挑选出来的 21 个汉字ldquo郎凉秊helliphellip﨨﨩rdquo( 0xFD9C~0xFDA0 和 0xFE40~0xFE4F )

ndash GB 130001-93 中收录而 GB 2312未收录的台湾地区使用的图形字符 139 个ldquoˊˋ˙helliphelliprdquo( 0xA840~0xA895 和 0xA940~0XA988 )

ndash GB 130001-93收录的其他字符 31 ( 13)个(在双字节 5 区)ndash GB 2312-80 中的非汉字字符 682 个( 0xA1A1~0xA9EF )ndash GB 12345-90 的竖排标点符号 19 ( 29)个ldquo︵︶︹helliphellip︳︴rdquo( 0xA6D9~0xA6

F5 )ndash GB 2312-80未收录的 10 个小写罗马数字ldquoⅰⅱⅲhelliphellipⅸⅹrdquo( 0xA2A1~ 0xA2A

A )ndash GB 2312-80未收录的带音调的汉语拼音字母 5 ( 4)个ldquo ńňǹrdquo 以及 ɑ 和 ɡ ( 0

xA8BB~0xA8C0 )ndash 汉字数字零ldquo〇rdquo (0xA996) 和欧元符ldquoeurordquo (0xA2E3)ndash 表意文字描述符 13 个ldquohelliphelliprdquo( 0xA989~0xA995 )ndash 对 GB 130001-93增补的汉字和部首 构件 80 个ldquohelliphellip䶮rdquo( 0xFE50~ 0x

FEA0 )bull 四字节部分mdashmdash收录了上述双字节字符之外的包括 CJK 统一汉字扩充 A 在内

的 GB 130001-93 中的全部字符

GB 18030双字节部分的码位安排

类别 区名 码位范围 码位数 字符数 内容

符号区双字节 1区 A1A1~A9FE 846 718

GB 2312非汉字字符等

双字节 5区 A840~A9A0 192 166 台湾图符等

汉字区双字节 2区 B0A1~F7FE 6768 6763 GB 2312汉字双字节 3区 8140~A0FE 6080 6080 CJK统一汉字双字节 4区 AA40~FEA0 8160 8160 CJK统一汉字等

用户自定义区双字节用户区 1 AAA1~AFFE 564

用户自定义字符双字节用户区 2 F8A1~FEFE 658

双字节用户区 3 A140~A7A0 672

GB 18030双字节部分的编码空间结构图 尾字节

0x40larr――rarr0x7E 0x80larr――rarr0xA0 0xA1larr――――――――――――rarr0xFE

0x81 uarr darr

0xA0

0xA1 uarr darr

0xA7

0xA8 0xA9

首字节

0xAA uarr | | | | | | | | | | darr

0xFE

双字节 3区

汉字区6 080个码位

双字节用户区 3

用户自定义区672个码位

双字节 5区 图形符号区192个码位

双字节 4区

汉字区8 160个码位

双字节 1区

图形符号区564个码位

双字节 2区

汉字区6 768个码位

双字节用户区 1 用户自定义区564个码位

双字节用户区 2 用户自定义区658个码位

223 国际通用字符编码

bull Unicode (统一码)是由多语言软件制造商组成的统一码协会( httpwwwUnicodeorg)所制定一种国际字符的编码标准

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull 本节主要介绍这两种关系密切的主流国际字符编码标准的来历编码方案各自特点与相互关系

1 Unicode 统一码bull 发展历史

ndash 1987年施乐( Xerox )公司的 Joe Becker 与 Lee Collins 和苹果( Apple )公司的 Mark Davis 等人开始讨论统一编码 1987年 12月 Joe Becker造词 Unicode (统一码)含义为ldquo unique universal and uniform character encodingrdquo (单一通用统一的字符编码) 1989年 2月开始定期召开统一码会议 1989年 9月公布 Unicode草案

ndash 1991年 1月 3 日由 Xerox Apple Sun IBM Aldis Microsoft 等公司出资在美国加州成立了统一码协会( Unicode Consortium )并由协会设立非盈利性的统一码公司( Unicode Inc )后来 HP Adobe Borland Digital Lotus Novell 等公司也纷纷加入 1991年 1月成立统一码技术委员会 UTC 并制定了其规程

ndash 1991年 2月在 Ed Hart 的推动下进行了ldquo统一码对 10464 国际标准草案 1rdquo 的对话Unicode 与 ISOIEC 10646开始走向融合

ndash 1991年 8月发布 Unicode 标准 10版的第 1卷(体系结构非表意字符) 1992年6月发表 Unicode 10版的第 2卷(表意字符) 1993年 6月发布 Unicode 11版与 1993年 5月公布的 ISOIEC 10646-11993 实现了合并

ndash 1996年 7月发布 Unicode 20版ndash 1999年 9月发布 Unicode 30版ndash 2003年 4月发布 Unicode 40版(对应于 ISOIEC 106462003 ) 2004年 3月 31日发布 Unicode 401版 2005年 3月 31日发布 Unicode 410版

ndash 2006年 7月 14日发布 Unicode 50版 2008年 4月 4日发布 Unicode 51版 2009年 12月 22日发布 Unicode 52版

ndash 2010年 10月发布 Unicode 60版 2012年 1月发布 Unicode 61版(对应于 ISOIEC 106462012 ) 2012年 9月推出 Unicode 62版 2013年 9月推出 Unicode 63版

ndash 2014年 6月 16日发布 Unicode 70版 ndash 2015年 6月 17日发布 Unicode 80版

字符集bull Unicode 字符集的空间分成双字节的基本多语言平面 (Basic Multilingual Pla

ne BMP) 和 4 字节的辅助多语言平面 (Supplementary Multilingual Plane SMP) 两种

bull BMPndash Unicode 的基本平面或基本多语言平面 BMP 对应于 ISOIEC 10646-1 的第 00组的 00 平面( BMP )即 Unicode 与 ISOIEC 10646 的 BMP 中的字符编码完全一致

bull SMPndash 鉴于 Unicode 原有的 16位元空间不足以应用从 Unicode 31版本开始设立了 16 个辅助平面使 Unicode 的可使用空间由六万多字增至约一百万字

ndash 原有的 Unicode双字节空间称为基本平面或基本多语言平面 BMP 辅助多语言平面 SMP 字符要用 4 字节来储存

ndash 第一辅助平面摆放拼音文字(主要为现时已不再使用的文字)及符号范围在 U+10000 - U+1FFFD

ndash 第二辅助平面又称为表意文字补充平面 (Supplementary Ideographic Plane 简称 SIP) 现时摆放ldquo中日韩统汉字扩展 B 区rdquo共 43253 个汉字范围在 U+20000 - U+2FFFD

ndash 第三至十三辅助平面尚未使用ndash 第十四辅助平面又称为特殊用途补充平面 (Supplementary Special-purpose Pl

ane 简称 SSP) 摆放 Language tags 和 Variation Selectors 它们都是控制字符范围在 U+E0000 - U+E01FF

ndash 第十五至十六辅助平面都是私人使用区它们的范围是 U+F0000 - U+FFFFD 及 U+100000 - U+1000FD

bull Unicode 字符集的具体编码方式参加第 4小节ldquo 4 UTFrdquo

2 ISOIEC 10646

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull ISOIEC 10646 标准由 ISO 与 IEC 联合成立的 ISOIEC JTC1SC2WG2 制定ndash JTC 1 ( Joint Technical Committee 1 on Information

technology ISOIEC信息技术联合技术委员会 1 )负责信息技术方面标准的制定工作

ndash SC 2 ( SubCommittee 2 on Coded character sets 编码字符集分会 2 )下的 WG 2 ( Working Group 2 on Universal coded character set 通用编码字符集工作组 2 )负责制定国际通用字符编码标准即后来公布的 ISOIEC 10646

发展历史bull 1984年 ISO 的一些会员国发起制定新的国际字符编码标准同年 4月 ISO

与 IEC 联合成立 ISOIEC JTC1SC2WG2 1987年 3月制定出编码架构1992年 6月投票通过第二版国际标准草案

bull 1993年 5月推出 10646 标准时将内容分成两个部分标准首先发布的是其中的第 1 个部分(体系结构与基本多文种平面)的第 1版( Edition 1 ) ISOIEC 10646-11993 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane(信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

bull 2000年 3月推出 10646 标准第一个部分的第 2版( Edition 2 ) ISOIEC 10646-12000 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane

bull 2001年 10月推出 10646 标准第 2版的第二个部分(辅助平面)的第 1版( Edition 1 ) ISOIEC 10646-22001 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 2 Supplementary Planes

bull 2003年 10月推出的 10646新标准(第 1版 Edition 1 )将老标准中的两个部分标准合并成了一个单一的标准 ISOIEC 106462003 Information technology -- Universal Multiple- Octet Coded Character Set (UCS) 后来又于 2010年 2012年和 2014年分别推出了 ISOIEC 106462010 (第 2版)ISOIEC 106462012 (第 3版)和 ISOIEC 106462014 (第 4版)

UCS 通用字符集bull 通用字符集( Universal Character Set UCS )是

ISOIEC 10646 标准所定义的字符编码方式采用 4字节编码又称为 Universal Multiple-Octet Coded Character Set (通用多八位编码字符集)

bull 通用字符集是所有包括了其他字符集它保证了与其他字符集的双向兼容即如果你将任何文本字符串翻译到 UCS 格式然后再翻译回原编码你不会丢失任何信息

bull UCS 包含了已知语言的所有字符除了拉丁语希腊语斯拉夫语希伯来语阿拉伯语亚美尼亚语格鲁吉亚语还包括中文日文韩文这样的象形文字 UCS 还包括大量的图形印刷数学科学符号

名字与组合字符bull UCS 不仅给每个字符分配一个代码而且赋予了

一个正式的名字表示一个 UCS 或 Unicode值的十六进制数通常在前面加上ldquo U+rdquo 例如ldquo U+0041rdquo代表字符ldquo Ardquo

bull UCS里有些编码点分配给了组合字符组合字符机制允许在任何字符后加上重音符或其他指示标记 这在科学符号中特别有用 比如数学方程式和国际音标字母 可能会需要在一个基本字符后组合上一个或多个指示标记

实现级别bull 并不是所有的系统都需要支持像组合字符这样的的先进

机制因此 ISO 10646 指定了如下三种实现级别ndash 级别 1不支持组合字符和韩语 Hangul Jamo 字符 ( 一种特

别的 更加复杂的韩国文的编码 使用两个或三个子字符来编码一个韩文音节 )

ndash 级别 2类似于级别 1 但在某些文字中允许一列固定的组合字符 (例如 希伯来文 阿拉伯文 Devangari 孟加拉语 果鲁穆奇语 Gujarati Oriya 泰米尔语 Telugo 印 埃纳德语 Malayalam 泰国语和老挝语 ) 因为如果没有最起码的几个组合字符 UCS就不能完整地表达这些语言

ndash 级别 3支持所有的 UCS 字符如可以在任意一个字符上加上一个箭头或 和一个 tilde(颚化符号即字母上面的~ )

编码方式bull UCS 有如下两种编码方式

ndash UCS-2与 Unicode 的 2 字节编码基本一样ndash UCS-4 4 字节编码目前是在 UCS-2 前加

上 2 个全零的字节bull UCS 还有 UTF 编码方式参见下面第 4小节ldquo 4 UTFrdquo

3 Unicode 与 ISOIEC 10646bull 关系

ndash 历史上存在两个独立的尝试创立单一字符集的组织即国际标准化组织( ISO )和多语言软件制造商组成的统一码协会组织( Unicodeorg )前者开发的 ISO 10646项目后者开发的 Unicode项目因此最初制定了不同的标准

ndash 1991年前后两个项目的参与者都认识到世界不需要两个不兼容的字符集于是它们开始合并双方的工作成果并为创立一个单一编码表而协同工作

ndash 从 Unicode20开始 Unicode采用了与 ISO 10646-1相同的字库和字码 ISO 也承诺 ISO10646 将不会替超出 U+10FFFF 的 UCS-4 编码赋值以使得两者保持一致

ndash 两个项目仍都存在并独立地公布各自的标准但 Unicode协会和 ISOIEC JTC1SC2 都同意保持两者标准的码表兼容并紧密地共同调整任何未来的扩展

异同bull Unicode协会公布的 Unicode 标准包含了 ISO 10646-1 实现级别

3 的基本多文种平面在两个标准里所有的字符都在相同的位置并且有相同的名字

bull ISO 10646 标准就像 ISO 8859 标准一样只不过是一个简单的字符集表它定义了一些编码的别名指定了一些与标准有关的术语并包括了规范说明指定了怎样使用 UCS连接其他 ISO 标准的实现等

bull Unicode 标准额外定义了许多与字符有关的语义符号学并详细说明了绘制某些语言(如阿拉伯语)表达形式的算法处理双向文字(比如拉丁文和希伯来文的混合文字)的算法排序与字符串比较所需的算法等等

bull 考虑到 Unicode 标准有一个易记的名字既便宜又包括更多的辅助信息因而它使用得更广泛然而

bull 一般认为用于打印 ISO 10646-1 标准的字体在某些方面的质量要高于用于打印 Unicode 20 的专业字体设计者总是被建议说要两个标准都实现但一些提供的样例字形有显著的区别 ISO 10646-1 标准同样使用四种不同的风格变体来显示表意文字如中文日文和韩文 (CJK) 而 Unicode 20 的表里只有中文的变体

4 UTFbull Unicode 和 UCS 都是一个字符集可以看作为内码bull UTF ( UnicodeUCS Transformation Format 统一码

通用字符集转换格式)是一种编码方式它的出现是因为 Unicode 和 UCS 不适宜在某些场合直接传输和处理

bull UCS 和 Unicode 只是分配整数给字符的编码表现在存在好几种将一串字符表示为一串字节的方法(如高或低位字节在前)

bull 最显而易见的两种方法是将 UCS 和 Unicode 文本存储为 2 个 或 4 个字节序列的串这两种方法的正式名称分别为 UCS-2 和 UCS-4

bull 常用的 UTF具体编码方式有 UTF-8 UTF-16 和 UTF-32

UTF-8

bull UTF-8 是 UTF 的一种具体编码方式在 ISO 10646-1 的附录 R 和 IETF 的 RFC 2279 里定义

bull 由于要使文档中的文字与 ASCII兼容故 UTF-8 选择了使用可变长度字节来储存 Unicode 和 UCS 例如ndash ASCII 字母继续使用 1 字节储存ndash 重音文字希腊字母或西里尔字母等使用 2 字节来储存ndash 常用的汉字就要使用 3 字节ndash 辅助平面字符则使用 4 字节ndash 即 ASCII 不作变换其他字符做变长编码每个字符 1~4 字节

bull UTF-8 通常作为外码bull 在 UTF-8 文件的开首很多时都放置一个 U+FEFF 字符

(UTF-8 以 EF BB BF 代表 ) 以显示这个文字档案是以UTF-8 编码

UTF-8 的优点bull 与 CPU 字节顺序无关可以在不同平台之间交流

bull 容错能力高任何一个字节损坏后最多只会导致一个编码码位损失不会链锁错误 ( 如 GB 码错一个字节就会整行乱码 )

UTF-8 的缺点bull UTF-8 使用可变长度字节储存使计算机程序设计变得复杂 (故此在计算机程序或操作系统内部多采用 UCS-2 编码 )

bull 在旧式的中文日文及朝鲜文编码之中每字符都使用 2 字节储存而 UTF-8 须使用 3 字节 (采用 UTF-16 编码则可只使用 2字节储存 )

bull 泰语以往使用的 ISO 8859-11 每字符只使用 1 字节储存而 UTF-8 须使用 3 字节

UTF-8储存的多字节串字符bull U-00000000 - U-0000007F 0xxxxxxx bull U-00000080 - U-000007FF 110xxxxx 10xxxxxx

bull U-00000800 - U-0000FFFF 1110xxxx 10xxxxxx

10xxxxxx bull U-00010000 - U-001FFFFF 11110xxx 10xxxxx

x 10xxxxxx 10xxxxxx bull 在多字节串中第一个字节的开头ldquo 1rdquo 的数目就

是整个串中字节的数目bull 每个使用 UTF-8储存的字符除了第一个字节外其余字节的头两个位元都是以 10 开始使文字处理器能够较快地找出每个字符的开始位置

UTF-16bull UTF-16 是 UTF 的另一种具体编码方式在 ISO 1064

6-1 的附录 Q 和 IETF 的 RFC 2781 里定义bull UTF-16 是变长码( 2 或 4 字节)大致相当于 20位编码值在 0 到 0x10FFFF 之间基本上就是 Unicode 编码的实现 UTF-16 与 CPU 字序有关但因为最省空间常作为网络传输的外码 UTF-16 是 Unicode 的完美编码

bull lt0x10000 的直接用其对应的 16位整数编码位于 0x10000 ~ 0x10FFFF 之间的用 0xD800~0xDBFF 的 16位整数后跟 0xDC00~0xDFFF 的 16位整数的 4 字节编码 gt 0x10FFFF 的不能用 UTF-16 表示

bull 在 Unicode 的 BMP 中定义的字符(无论是拉丁字母汉字或其他文字或符号)一律使用 2 字节存储而在辅助平面定义的字符则以两个 2 字节的值来存储

UTF-16 的特点bull UTF-16比起 UTF-8 的好处在于大部分字符都以固定长

度的 2 字节存储但 UTF-16却无法相容于 ASCII 编码bull UTF-16 有两种编码模式即大尾序( big Endian 高位字节在前)和小尾序( little Endian 高位字节在后)储存形式(一般來說以 Macintosh 制作和存储的文字使用大尾序格式以 Microsoft 或 Linux 制作和存储的文字使用小尾序格式)

bull 为了弄区分 UTF-16 文件的大小尾序在 UTF-16 文件的开头都会放置一个 U+FEFF 字符作为字节顺序标记 (UTF-16LE 以 FF FE代表 UTF-16BE 以 FE FF代表 ) 以显示该文档是以 UTF-16 编码的

UTF-32

bull UTF-32 仅使用了 Unicode范围 (0 到 0x10FFFF) 的 32位编码相当于 UCS-4 的子集

bull 由于 Unicode 和 ISOIEC 10646 的编码和结构与前面讲过的 GB 13000 类似或等价这里就不再做详细的介绍

5支持bull 现在 UnicodeUCS 已经获得了十分广泛的支

持ndash网络与浏览器(如 HTML 4050 XML 与 IE

Safari Netscape Firefox Chrome Opera Edge 等)

ndash操作系统(如 Windows NT2000XPVista7810 Mac OS X iOS Android和 Linux )

ndash 编程语言新版本(如 CC++JavaObjective-CC Swift 等)

Unicode 代码的浏览器显示代码 字符标准名称 (英语 )

浏览器的显示

amp65 大写拉丁字母 A A

amp223 小写拉丁字母 Sharp S szlig

amp254 小写拉丁字母 Thorn thorn

amp916 大写希腊字母 Delta Δ

amp1049 大写斯拉夫字母 Short I Й

amp1511 希伯来字母 Qof ק

amp1605 阿拉伯字母 Meem م

amp3671 泰文数字 7 ๗amp4688 埃塞俄比亚音节文字 Qha ቐ

amp12354 日语平假名 A あamp12450 日语片假名 A アamp21494 简体汉字 叶 叶amp33865 繁体汉字 葉 葉amp50685 韩国音节文字 Yeob 엽

23 文字输出bull 文字输出是指将计算机内的字符编码通过计算机的输出设备(如显示器打印机喇叭)展现出所对应字符的图形或声音供人们阅读或聆听

bull 本节主要介绍文字图示输出的字形技术bull 文字声音输出属于语音合成只在本节的末尾作简单的介绍

231 字形技术bull 文字 = 图形bull 不论是象形文字中的单字还是拼音文字

中的字母都是用图形来表示的bull 在计算机里文字的表示 输出(显示和打

印)涉及ndash 字型ndash 字体ndash 字库

1字型bull 字型指构造和生成字形的方法一般可分为

ndash 点阵字 DOS 显卡 ROM 金山 科印特点似位图显示快占空间(字库大)放大后有马赛克效应

bull 显示字母 88 汉字 1616bull 打印 2424 4848 6464

ndash 矢量字单线条用于笔式绘图仪特点字库小算法简单难看

ndash 轮廓字用曲线描绘字的轮廓输出效果好所见即所得(WYSWYG) 可无级放大易实现空心 阴影 填充 变形等各种特效功能轮廓曲线一般采用样条曲线如 TrueType (Apple 1991 Mac OS Microsoft 1992 Windows 31)用的是二次 B 样条 Bezier曲线中文之星 RichWin采用的是三次 B 样条 Bezier曲线

字型种类

2字体bull 字体指字的形状风格如

ndash 汉字的

ndash 英文的

宋体楷体黑体仿宋

行楷隶书新魏幼圆

Times New Roman Arial Narrow Courier New

常用汉字字体bull 宋体mdashmdash宋体来自于北宋时雕版刻书所采用的欧体字(唐朝欧阳询体)宋体字的横顿拉捺挑钩别具特色间架平正疏密适中字体秀丽遒劲但笔画横细竖粗适合于刀刻不宜于手写现在宋体广泛用于印刷常来表现文档的正文

bull 仿宋体mdashmdash 1920年钱塘的丁辅之与丁善之等人将明代以后盛行的方廓形字体加以改造创造出长形和方形的聚珍仿宋后来演化为现在的仿宋体仿宋体比较接近于手写体为宋体和楷体的折中是采用的宋体的结构和楷体的笔法而成现常来表现打印文件以及文档的摘要和注释等

bull 黑体mdashmdash黑体是适应工艺美术的发展而出现的一种等线体是从日本引进的黑体的结构与宋体没有什么差别只是其笔画粗细一致健实粗壮主要用于文档的标题和重点及标语广告等方面

bull 楷体mdashmdash楷体源于楷书楷体的笔画圆浑笔调灵活结构端正美观但不宜于木板雕刻所以直到清末西洋的石板印刷术传入后才开始广泛用于印刷现代的楷体创造于 20世纪的二三十年代主要用于文档的正文(多用于中小学教材)也可用于工艺美术等方面

3字库bull 字库为一种文字的某一字体的所有字符的集合一般存放在一个磁盘文件中

bull 由于象形文字中单字的数量大(成千上万)而拼音文字中字母的数量小(不到一百个)所以字库的大小有很大的差别

bull 为了使文档界面丰富多彩常见的字处理软件都支持多种字体带有众多字库

4点阵字型的国家标准bull 我国已经公布了若干字体的点阵字型之国家标准

ndash GB 50071-19852001 信息技术 汉字编码字符集(基本集) 24 点阵字型

ndash GB 50072-19852001 信息技术 汉字编码字符集(辅助集) 24 点阵字型

ndash GB 5199-19862001 信息技术 汉字编码字符集(基本集) 16 点阵字型 宋体

ndash GB 6345-19862001 信息技术 汉字编码字符集(基本集) 32 点阵字型 宋体

ndash GB 12041-2001 信息技术 汉字编码字符集(基本集) 48点阵字型 宋体

ndash GB 17698-1999 信息技术 通用多八位编码字符集( I 区) 汉字 16 点阵字型

232 语音合成bull 文字的声音输出主要使用的是语音合成的技术bull 语音合成功能是ldquo文rarr语rdquo转换bull 文语转换 TTS (Text-To-Speech) 是将文本形式的信息转换成自然语音的一种技术其最终目标是使计算机输出清晰而又自然的声音

bull 英语的语音合成在上世纪 80年代就早已成熟而中文 汉语的合成现在也趋于成熟并有了广泛的应用(如汽车导航仪智能手机等)

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 43: 第一篇  媒体

双字节汉字编码的页面结构第二字节 列号

行号 0 middot middot middot 32 33 34 helliphellip 125 126 127 128middot middot 160 161 162 helliphellip 254 255 0 middot middot 32

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

33 34 middot middot middot 126

1 2 middot middot middot 94

第四五辅助集 (7 039个汉字)

127

(兼容ASCII)

128 middot middot 160

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

区 号

rarrdarr位号

1 2 3 helliphellip 93 94

161 162 middot middot middot 254

1 2 middot middot middot 94

第二三辅助集 (7 237个汉字)

1 2 middot middot middot 94

基本集第一辅助集 (6 763 6 866个汉字) (682个非汉字图符)

第一字节

255

4 Big5

bull 除了中国大陆使用的简体汉字外在台湾香港澳门和海外华侨社区使用的是传统的繁体汉字

bull 简体汉字使用 GB (国标)系列编码标准bull 繁体汉字一般使用的是 Big5内码(大五码)即台湾的ldquo资讯工业策进会rdquo发布的《标准交换码 (Ⅲ码 )》收录汉字 13 053 个

bull Big5内码是 1984年由台湾财团法人资讯工业策进会与宏碁 (Acer) 神通 (MiTAC) 佳佳零壹 (Zero One) 大众 (FIC) 等五大软件公司联合推出故称为大五码

BIG5 的代码空间低位字节

00 hellip 3F 40 hellip 7E 7F hellip A0 A1 hellip FE FF

高位字节

00middot

80

81middot

A0用户定义区 用户定义区

A1A2A3

非汉字图符 非汉字图符

A4middot

C6常用汉字 常用汉字

C7C8

用户定义区 用户定义区

C9middot

F9次常用汉字 次常用汉字

FAmiddot

FE用户定义区 用户定义区

FF

5少数民族文字编码bull 中国共有 56 个民族除了汉回满族一般使用汉语外其他少数民族大多有自己的民族语言

bull 我国各民族使用的 50 多种文字可以分为字母式结构文字和非字母式结构文字两大类ndash 字母式结构的有拉丁文斯拉夫文蒙古文维吾尔文哈萨克文藏文和朝鲜文等字母式

ndash 非字母式结构的有汉字象形文字图画文字和音节文字等bull 各民族文字的书写方向也有不同

ndash 壮文藏文朝鲜文彝文等的字从左到右行从上到下ndash 维吾尔文哈萨克文和柯尔克孜文等的字从右到左行从上

到下ndash 蒙古文和满文的字从上到下行从左到右ndash 汉字的书写方向有两种

bull 大陆的简体汉字的字从左到右行从上到下bull 港台与古旧书的繁体汉字的字从上到下行从右到左

国家标准bull 下面按发布时间列出若干已经公布的我国少数民族文字

编码集的国家标准(这些字符集一般分成两类对字母式结构文字采用八位编码对非字母式结构文字采用双字节编码)ndash GB 8045-87《信息处理交换用蒙古文七位和八位编码图形字

符集》收 82 个蒙古文字母和 12 个其他符号共 94 个字符ndash GB 12050-89《信息处理交换用维吾尔文编码图形字符集》收 32 个维吾尔文字母一个维吾尔文复合字符和 37 个其他符号共 70 个字符

ndash GB 12052-89《信息交换用朝鲜文编码字符集》收 5297 个朝鲜文字和 682 个其他符号(与 GB 2132同)共 5 979 个字符

ndash GB 13134-91《信息交换用彝文编码字符集》收 1165 个彝文字符和 688 个其他符号共 1853 个字符

ndash GB 16959-1997《信息技术 信息交换用藏文编码字符集 基本集》收 41 个藏文字母 36 个藏文主字 13 个元音字符12 个语音字符 10 个藏文数字 10 个半值符一个控制用连接符和 46 个其他藏文图形符号共 169 个字符

6 GB 13000bull GB 13000 是与 ISOIEC 10646 等价的国际通用编码字符集标准收汉字 2万多个但是与 GB 2312 和 GBK 不兼容

bull 1993年 5月 ISO 与 IEC 联合推出了可用于世界各种文字的通用编码字符集的国际标准的第 1部分ndash ISOIEC 10646-11993 Information technology -- Universal Multiple-Octe

t Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane (信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

ndash 该标准收字符 96万个几乎涵盖世界上的所有文字其中包含汉字 21 003 个

bull 1993年底我国推出了等同于国际标准 ISOIEC 1064611993 的强制性国家标准 ndash GB 130001-93《信息技术 通用多八位编码字符集( UCS ) 第一部分

体系结构与基本多文种平面》ndash 该标准于 1993年 12月 24日被国家技术监督局批准 1994年 8月 1日起实施

GB 13000 的主要特点

bull 世界各语言文种字符统一编码避免冲突便于国际交流

bull 编码空间宽阔连续每个图形字符的编码唯一(一字一码)不再存在兼容性问题

bull 按文种而不是按语言编码避免重复和浪费(如中日韩汉字的统一编码 CJK )

bull 与 GB 2312 和 GBK 不兼容

体系结构bull UCS 的体系结构是基于所谓ldquo多八位rdquo的而ldquo八位rdquo就是一个字节ldquo多八位rdquo就是多个字节

bull UCS采用 4 个字节来表征组面行位的四维空间bull 整个 UCS空间包含 128 个组( 0x00组 ~0x7F组)每组有 256 个平面( 0x00 平面 ~0xFF 平面)每个平面有 256 行每行又由 256 个字位构成

bull UCS共有( 128 times 256 = ) 32 768 个平面每个平面有( 256 times 256 = ) 65 536 个字位每个字位对应于一个字符的编码

bull 目前的编码只限于 00组已经定义的平面有 00组的00 平面mdashmdash称之为基本多文种平面 BMP ( Basic Multilingual Plane ) 及若干辅助平面

UCS 的全部编码空间

每个平面256times256 个

字位

00组 00 平面

00组 FF 平面

01组 00 平面

7F组 00 平面00

01组

7F组

UCS 的 00组

BMPbull BMP = Basic Multilingual Plane 基本多文种平面bull BMP 用作双八位编码字符集称之为 UCS-2 它被

分成四个区ndash A- 区(字位 0x0000~0x4DFF 有 19 903 个字位)用于

字母文字音节文字以及各种符号ndash I- 区(字位 0x4E00~0x9FFF 共 20 992 个字位)用于中日韩统一汉字( CJK )

ndash O- 区(字位 0xA000~0xDFFF 共 16 384 个字位)保留未来标准化用

ndash R- 区(字位 0xE000~0xFFFD 共 8 190 个字位)为 BMP 的限制使用区包括专用字符变形显现形式及兼容字符

BMP总貌

A-区

00~33 拼音文字(见下页)

34~3D 朝鲜文

3E~44 朝鲜文补充 -A

45~4D 朝鲜文补充 -B

I-区 4E~9F CJK统一汉字O-区 A0~DF

R-区

E0~F8 专用区

F9~FA CJK兼容汉字FB 拼音文字变形显现形式

FC~FD 阿拉伯文变形显现形式 -A

FE半形组合用标志

CJK兼容形式

小写变体

阿拉伯文变形显现形式 -B

FF 半形及全形字符 特殊字符

BMP 的0x00~0x33

行字母文字区

00 基本拉丁文 拉丁文-1补充

01 拉丁文扩充-A 拉丁文扩充-B

02 拉丁文扩充-B 国际音标扩充 进格修饰字符

03 组合用发音符 基本希腊文 希腊符号及哥普特文

04 西里尔文

05 美亚尼亚文 希伯来文(基本和扩充)

06 基本阿拉伯文 阿拉伯文扩充

07

08

09 梵文 孟加拉文

0A 锡克教文 古吉拉特文

0B 奥利雅文 泰米尔文

0C 泰卢固文 卡纳达文

0D 德拉维族文

0E 泰文 老挝文

0F

10 格鲁吉亚文

11 朝鲜文字母

12~1D

1E 拉丁文扩充增补

1F 希腊文扩充

20 广义标点 上下标 货币符号 符号组合用区分标志

21 类似字母的符号 数字形式 箭头

22 数学运算符

23 零杂技术用符号

24 控制图符 光学识别符 带括号的字母数字

25 制表符 方块元素 几何图形符

26 零杂符号

27 示意符等

28~2F

30 CJK符号和标点 平假名 片假名

31 注音 朝鲜文兼容字母 CJK零杂字符

32 带括号的CJK字母及月份

33 CJK兼容字符

留作将来标准化用

非图形字符

表示形式bull GB 13000提供了字符编码表示的两种替代使用的形式

ndash 双八位 BMP 形式( UCS-2 )mdashmdash允许使用 BMP 中的字符且每个字符用两个字节表示

ndash 肆八位正则形式( UCS-4 )mdashmdash允许使用 GB 13000 中的全部字符且每个字符用四个字节表示

bull 除了 UCS-24外还有另外两种变形的表示形式ndash UTF-8 (单字节 ~ 多字节)ndash UTF-16 (双字节和 4 字节与 UCS-2 等价)ndash 目前在工业上的实现均为 UTF-16 ( UCS-2 )和 UTF-8ndash UTF = Unicode UCS Transformation Format 统一码 UC

S转换格式bull 关于统一码我们会在下一小节详细介绍

7 GBK 与 GB 18030bull 由于 GB 13000 标准与 GB 2312 标准的字符编码不兼容作为过渡在国家信息技术标准化委员会的主持下制定了与 GB 2312兼容的《汉字内码扩展规范( GBK )》( K 为扩展的ldquo扩rdquo字的拼音首字母)并于 1995年 12月 15日由原国家技术监督局标准司联合原电子工业部科技与质量监督司作为指导性技术规范发布实施

bull 2000年 GBK又被国家标准 GB 18030-2000《信息技术 信息交换用汉字编码字符集 基本集的扩充》所代替该标准收汉字 2万 7千个

bull 与 GB 2312 一样 GB 18030 也为中国的强制性国家标准微软公司的 Windows XPVista78 中文版与苹果公司的 Mac OS X 和 iOS 谷歌公司的 Android (安卓)等操作系统已经全面支持 GBK

GB 18030 的码位范围分布

字节数 码位空间 码位数目

单字节 0x00~0x7F 128

双字节第 1字节 第 2字节

23 9400x81~0xFE

0x40~0x7E 0x80~0xFE

四字节第 1字节 第 2字节 第 3字节 第 4字节

1 587 6000x81~0xFE 0x30~0x39 0x81~0xFE 0x30~0x39

GB 18030的

总体结构图

收录字符bull 单字节部分mdashmdash收录了GBT 11383 的 0x00~0x7F 全部 128 个字符(似 ASCI

I )bull 双字节部分mdashmdash收录内容如下 (21 003 个汉字和 884 个符号共 21 887 个字符 )

ndash GB 130001-93 的全部 CJK 统一汉字字符 20 902 个( GB 2312 的编码汉字在双字节 2 区其他 CJK 统一汉字在双字节 34 区)

ndash GB 130001-93 的 CJK兼容区挑选出来的 21 个汉字ldquo郎凉秊helliphellip﨨﨩rdquo( 0xFD9C~0xFDA0 和 0xFE40~0xFE4F )

ndash GB 130001-93 中收录而 GB 2312未收录的台湾地区使用的图形字符 139 个ldquoˊˋ˙helliphelliprdquo( 0xA840~0xA895 和 0xA940~0XA988 )

ndash GB 130001-93收录的其他字符 31 ( 13)个(在双字节 5 区)ndash GB 2312-80 中的非汉字字符 682 个( 0xA1A1~0xA9EF )ndash GB 12345-90 的竖排标点符号 19 ( 29)个ldquo︵︶︹helliphellip︳︴rdquo( 0xA6D9~0xA6

F5 )ndash GB 2312-80未收录的 10 个小写罗马数字ldquoⅰⅱⅲhelliphellipⅸⅹrdquo( 0xA2A1~ 0xA2A

A )ndash GB 2312-80未收录的带音调的汉语拼音字母 5 ( 4)个ldquo ńňǹrdquo 以及 ɑ 和 ɡ ( 0

xA8BB~0xA8C0 )ndash 汉字数字零ldquo〇rdquo (0xA996) 和欧元符ldquoeurordquo (0xA2E3)ndash 表意文字描述符 13 个ldquohelliphelliprdquo( 0xA989~0xA995 )ndash 对 GB 130001-93增补的汉字和部首 构件 80 个ldquohelliphellip䶮rdquo( 0xFE50~ 0x

FEA0 )bull 四字节部分mdashmdash收录了上述双字节字符之外的包括 CJK 统一汉字扩充 A 在内

的 GB 130001-93 中的全部字符

GB 18030双字节部分的码位安排

类别 区名 码位范围 码位数 字符数 内容

符号区双字节 1区 A1A1~A9FE 846 718

GB 2312非汉字字符等

双字节 5区 A840~A9A0 192 166 台湾图符等

汉字区双字节 2区 B0A1~F7FE 6768 6763 GB 2312汉字双字节 3区 8140~A0FE 6080 6080 CJK统一汉字双字节 4区 AA40~FEA0 8160 8160 CJK统一汉字等

用户自定义区双字节用户区 1 AAA1~AFFE 564

用户自定义字符双字节用户区 2 F8A1~FEFE 658

双字节用户区 3 A140~A7A0 672

GB 18030双字节部分的编码空间结构图 尾字节

0x40larr――rarr0x7E 0x80larr――rarr0xA0 0xA1larr――――――――――――rarr0xFE

0x81 uarr darr

0xA0

0xA1 uarr darr

0xA7

0xA8 0xA9

首字节

0xAA uarr | | | | | | | | | | darr

0xFE

双字节 3区

汉字区6 080个码位

双字节用户区 3

用户自定义区672个码位

双字节 5区 图形符号区192个码位

双字节 4区

汉字区8 160个码位

双字节 1区

图形符号区564个码位

双字节 2区

汉字区6 768个码位

双字节用户区 1 用户自定义区564个码位

双字节用户区 2 用户自定义区658个码位

223 国际通用字符编码

bull Unicode (统一码)是由多语言软件制造商组成的统一码协会( httpwwwUnicodeorg)所制定一种国际字符的编码标准

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull 本节主要介绍这两种关系密切的主流国际字符编码标准的来历编码方案各自特点与相互关系

1 Unicode 统一码bull 发展历史

ndash 1987年施乐( Xerox )公司的 Joe Becker 与 Lee Collins 和苹果( Apple )公司的 Mark Davis 等人开始讨论统一编码 1987年 12月 Joe Becker造词 Unicode (统一码)含义为ldquo unique universal and uniform character encodingrdquo (单一通用统一的字符编码) 1989年 2月开始定期召开统一码会议 1989年 9月公布 Unicode草案

ndash 1991年 1月 3 日由 Xerox Apple Sun IBM Aldis Microsoft 等公司出资在美国加州成立了统一码协会( Unicode Consortium )并由协会设立非盈利性的统一码公司( Unicode Inc )后来 HP Adobe Borland Digital Lotus Novell 等公司也纷纷加入 1991年 1月成立统一码技术委员会 UTC 并制定了其规程

ndash 1991年 2月在 Ed Hart 的推动下进行了ldquo统一码对 10464 国际标准草案 1rdquo 的对话Unicode 与 ISOIEC 10646开始走向融合

ndash 1991年 8月发布 Unicode 标准 10版的第 1卷(体系结构非表意字符) 1992年6月发表 Unicode 10版的第 2卷(表意字符) 1993年 6月发布 Unicode 11版与 1993年 5月公布的 ISOIEC 10646-11993 实现了合并

ndash 1996年 7月发布 Unicode 20版ndash 1999年 9月发布 Unicode 30版ndash 2003年 4月发布 Unicode 40版(对应于 ISOIEC 106462003 ) 2004年 3月 31日发布 Unicode 401版 2005年 3月 31日发布 Unicode 410版

ndash 2006年 7月 14日发布 Unicode 50版 2008年 4月 4日发布 Unicode 51版 2009年 12月 22日发布 Unicode 52版

ndash 2010年 10月发布 Unicode 60版 2012年 1月发布 Unicode 61版(对应于 ISOIEC 106462012 ) 2012年 9月推出 Unicode 62版 2013年 9月推出 Unicode 63版

ndash 2014年 6月 16日发布 Unicode 70版 ndash 2015年 6月 17日发布 Unicode 80版

字符集bull Unicode 字符集的空间分成双字节的基本多语言平面 (Basic Multilingual Pla

ne BMP) 和 4 字节的辅助多语言平面 (Supplementary Multilingual Plane SMP) 两种

bull BMPndash Unicode 的基本平面或基本多语言平面 BMP 对应于 ISOIEC 10646-1 的第 00组的 00 平面( BMP )即 Unicode 与 ISOIEC 10646 的 BMP 中的字符编码完全一致

bull SMPndash 鉴于 Unicode 原有的 16位元空间不足以应用从 Unicode 31版本开始设立了 16 个辅助平面使 Unicode 的可使用空间由六万多字增至约一百万字

ndash 原有的 Unicode双字节空间称为基本平面或基本多语言平面 BMP 辅助多语言平面 SMP 字符要用 4 字节来储存

ndash 第一辅助平面摆放拼音文字(主要为现时已不再使用的文字)及符号范围在 U+10000 - U+1FFFD

ndash 第二辅助平面又称为表意文字补充平面 (Supplementary Ideographic Plane 简称 SIP) 现时摆放ldquo中日韩统汉字扩展 B 区rdquo共 43253 个汉字范围在 U+20000 - U+2FFFD

ndash 第三至十三辅助平面尚未使用ndash 第十四辅助平面又称为特殊用途补充平面 (Supplementary Special-purpose Pl

ane 简称 SSP) 摆放 Language tags 和 Variation Selectors 它们都是控制字符范围在 U+E0000 - U+E01FF

ndash 第十五至十六辅助平面都是私人使用区它们的范围是 U+F0000 - U+FFFFD 及 U+100000 - U+1000FD

bull Unicode 字符集的具体编码方式参加第 4小节ldquo 4 UTFrdquo

2 ISOIEC 10646

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull ISOIEC 10646 标准由 ISO 与 IEC 联合成立的 ISOIEC JTC1SC2WG2 制定ndash JTC 1 ( Joint Technical Committee 1 on Information

technology ISOIEC信息技术联合技术委员会 1 )负责信息技术方面标准的制定工作

ndash SC 2 ( SubCommittee 2 on Coded character sets 编码字符集分会 2 )下的 WG 2 ( Working Group 2 on Universal coded character set 通用编码字符集工作组 2 )负责制定国际通用字符编码标准即后来公布的 ISOIEC 10646

发展历史bull 1984年 ISO 的一些会员国发起制定新的国际字符编码标准同年 4月 ISO

与 IEC 联合成立 ISOIEC JTC1SC2WG2 1987年 3月制定出编码架构1992年 6月投票通过第二版国际标准草案

bull 1993年 5月推出 10646 标准时将内容分成两个部分标准首先发布的是其中的第 1 个部分(体系结构与基本多文种平面)的第 1版( Edition 1 ) ISOIEC 10646-11993 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane(信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

bull 2000年 3月推出 10646 标准第一个部分的第 2版( Edition 2 ) ISOIEC 10646-12000 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane

bull 2001年 10月推出 10646 标准第 2版的第二个部分(辅助平面)的第 1版( Edition 1 ) ISOIEC 10646-22001 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 2 Supplementary Planes

bull 2003年 10月推出的 10646新标准(第 1版 Edition 1 )将老标准中的两个部分标准合并成了一个单一的标准 ISOIEC 106462003 Information technology -- Universal Multiple- Octet Coded Character Set (UCS) 后来又于 2010年 2012年和 2014年分别推出了 ISOIEC 106462010 (第 2版)ISOIEC 106462012 (第 3版)和 ISOIEC 106462014 (第 4版)

UCS 通用字符集bull 通用字符集( Universal Character Set UCS )是

ISOIEC 10646 标准所定义的字符编码方式采用 4字节编码又称为 Universal Multiple-Octet Coded Character Set (通用多八位编码字符集)

bull 通用字符集是所有包括了其他字符集它保证了与其他字符集的双向兼容即如果你将任何文本字符串翻译到 UCS 格式然后再翻译回原编码你不会丢失任何信息

bull UCS 包含了已知语言的所有字符除了拉丁语希腊语斯拉夫语希伯来语阿拉伯语亚美尼亚语格鲁吉亚语还包括中文日文韩文这样的象形文字 UCS 还包括大量的图形印刷数学科学符号

名字与组合字符bull UCS 不仅给每个字符分配一个代码而且赋予了

一个正式的名字表示一个 UCS 或 Unicode值的十六进制数通常在前面加上ldquo U+rdquo 例如ldquo U+0041rdquo代表字符ldquo Ardquo

bull UCS里有些编码点分配给了组合字符组合字符机制允许在任何字符后加上重音符或其他指示标记 这在科学符号中特别有用 比如数学方程式和国际音标字母 可能会需要在一个基本字符后组合上一个或多个指示标记

实现级别bull 并不是所有的系统都需要支持像组合字符这样的的先进

机制因此 ISO 10646 指定了如下三种实现级别ndash 级别 1不支持组合字符和韩语 Hangul Jamo 字符 ( 一种特

别的 更加复杂的韩国文的编码 使用两个或三个子字符来编码一个韩文音节 )

ndash 级别 2类似于级别 1 但在某些文字中允许一列固定的组合字符 (例如 希伯来文 阿拉伯文 Devangari 孟加拉语 果鲁穆奇语 Gujarati Oriya 泰米尔语 Telugo 印 埃纳德语 Malayalam 泰国语和老挝语 ) 因为如果没有最起码的几个组合字符 UCS就不能完整地表达这些语言

ndash 级别 3支持所有的 UCS 字符如可以在任意一个字符上加上一个箭头或 和一个 tilde(颚化符号即字母上面的~ )

编码方式bull UCS 有如下两种编码方式

ndash UCS-2与 Unicode 的 2 字节编码基本一样ndash UCS-4 4 字节编码目前是在 UCS-2 前加

上 2 个全零的字节bull UCS 还有 UTF 编码方式参见下面第 4小节ldquo 4 UTFrdquo

3 Unicode 与 ISOIEC 10646bull 关系

ndash 历史上存在两个独立的尝试创立单一字符集的组织即国际标准化组织( ISO )和多语言软件制造商组成的统一码协会组织( Unicodeorg )前者开发的 ISO 10646项目后者开发的 Unicode项目因此最初制定了不同的标准

ndash 1991年前后两个项目的参与者都认识到世界不需要两个不兼容的字符集于是它们开始合并双方的工作成果并为创立一个单一编码表而协同工作

ndash 从 Unicode20开始 Unicode采用了与 ISO 10646-1相同的字库和字码 ISO 也承诺 ISO10646 将不会替超出 U+10FFFF 的 UCS-4 编码赋值以使得两者保持一致

ndash 两个项目仍都存在并独立地公布各自的标准但 Unicode协会和 ISOIEC JTC1SC2 都同意保持两者标准的码表兼容并紧密地共同调整任何未来的扩展

异同bull Unicode协会公布的 Unicode 标准包含了 ISO 10646-1 实现级别

3 的基本多文种平面在两个标准里所有的字符都在相同的位置并且有相同的名字

bull ISO 10646 标准就像 ISO 8859 标准一样只不过是一个简单的字符集表它定义了一些编码的别名指定了一些与标准有关的术语并包括了规范说明指定了怎样使用 UCS连接其他 ISO 标准的实现等

bull Unicode 标准额外定义了许多与字符有关的语义符号学并详细说明了绘制某些语言(如阿拉伯语)表达形式的算法处理双向文字(比如拉丁文和希伯来文的混合文字)的算法排序与字符串比较所需的算法等等

bull 考虑到 Unicode 标准有一个易记的名字既便宜又包括更多的辅助信息因而它使用得更广泛然而

bull 一般认为用于打印 ISO 10646-1 标准的字体在某些方面的质量要高于用于打印 Unicode 20 的专业字体设计者总是被建议说要两个标准都实现但一些提供的样例字形有显著的区别 ISO 10646-1 标准同样使用四种不同的风格变体来显示表意文字如中文日文和韩文 (CJK) 而 Unicode 20 的表里只有中文的变体

4 UTFbull Unicode 和 UCS 都是一个字符集可以看作为内码bull UTF ( UnicodeUCS Transformation Format 统一码

通用字符集转换格式)是一种编码方式它的出现是因为 Unicode 和 UCS 不适宜在某些场合直接传输和处理

bull UCS 和 Unicode 只是分配整数给字符的编码表现在存在好几种将一串字符表示为一串字节的方法(如高或低位字节在前)

bull 最显而易见的两种方法是将 UCS 和 Unicode 文本存储为 2 个 或 4 个字节序列的串这两种方法的正式名称分别为 UCS-2 和 UCS-4

bull 常用的 UTF具体编码方式有 UTF-8 UTF-16 和 UTF-32

UTF-8

bull UTF-8 是 UTF 的一种具体编码方式在 ISO 10646-1 的附录 R 和 IETF 的 RFC 2279 里定义

bull 由于要使文档中的文字与 ASCII兼容故 UTF-8 选择了使用可变长度字节来储存 Unicode 和 UCS 例如ndash ASCII 字母继续使用 1 字节储存ndash 重音文字希腊字母或西里尔字母等使用 2 字节来储存ndash 常用的汉字就要使用 3 字节ndash 辅助平面字符则使用 4 字节ndash 即 ASCII 不作变换其他字符做变长编码每个字符 1~4 字节

bull UTF-8 通常作为外码bull 在 UTF-8 文件的开首很多时都放置一个 U+FEFF 字符

(UTF-8 以 EF BB BF 代表 ) 以显示这个文字档案是以UTF-8 编码

UTF-8 的优点bull 与 CPU 字节顺序无关可以在不同平台之间交流

bull 容错能力高任何一个字节损坏后最多只会导致一个编码码位损失不会链锁错误 ( 如 GB 码错一个字节就会整行乱码 )

UTF-8 的缺点bull UTF-8 使用可变长度字节储存使计算机程序设计变得复杂 (故此在计算机程序或操作系统内部多采用 UCS-2 编码 )

bull 在旧式的中文日文及朝鲜文编码之中每字符都使用 2 字节储存而 UTF-8 须使用 3 字节 (采用 UTF-16 编码则可只使用 2字节储存 )

bull 泰语以往使用的 ISO 8859-11 每字符只使用 1 字节储存而 UTF-8 须使用 3 字节

UTF-8储存的多字节串字符bull U-00000000 - U-0000007F 0xxxxxxx bull U-00000080 - U-000007FF 110xxxxx 10xxxxxx

bull U-00000800 - U-0000FFFF 1110xxxx 10xxxxxx

10xxxxxx bull U-00010000 - U-001FFFFF 11110xxx 10xxxxx

x 10xxxxxx 10xxxxxx bull 在多字节串中第一个字节的开头ldquo 1rdquo 的数目就

是整个串中字节的数目bull 每个使用 UTF-8储存的字符除了第一个字节外其余字节的头两个位元都是以 10 开始使文字处理器能够较快地找出每个字符的开始位置

UTF-16bull UTF-16 是 UTF 的另一种具体编码方式在 ISO 1064

6-1 的附录 Q 和 IETF 的 RFC 2781 里定义bull UTF-16 是变长码( 2 或 4 字节)大致相当于 20位编码值在 0 到 0x10FFFF 之间基本上就是 Unicode 编码的实现 UTF-16 与 CPU 字序有关但因为最省空间常作为网络传输的外码 UTF-16 是 Unicode 的完美编码

bull lt0x10000 的直接用其对应的 16位整数编码位于 0x10000 ~ 0x10FFFF 之间的用 0xD800~0xDBFF 的 16位整数后跟 0xDC00~0xDFFF 的 16位整数的 4 字节编码 gt 0x10FFFF 的不能用 UTF-16 表示

bull 在 Unicode 的 BMP 中定义的字符(无论是拉丁字母汉字或其他文字或符号)一律使用 2 字节存储而在辅助平面定义的字符则以两个 2 字节的值来存储

UTF-16 的特点bull UTF-16比起 UTF-8 的好处在于大部分字符都以固定长

度的 2 字节存储但 UTF-16却无法相容于 ASCII 编码bull UTF-16 有两种编码模式即大尾序( big Endian 高位字节在前)和小尾序( little Endian 高位字节在后)储存形式(一般來說以 Macintosh 制作和存储的文字使用大尾序格式以 Microsoft 或 Linux 制作和存储的文字使用小尾序格式)

bull 为了弄区分 UTF-16 文件的大小尾序在 UTF-16 文件的开头都会放置一个 U+FEFF 字符作为字节顺序标记 (UTF-16LE 以 FF FE代表 UTF-16BE 以 FE FF代表 ) 以显示该文档是以 UTF-16 编码的

UTF-32

bull UTF-32 仅使用了 Unicode范围 (0 到 0x10FFFF) 的 32位编码相当于 UCS-4 的子集

bull 由于 Unicode 和 ISOIEC 10646 的编码和结构与前面讲过的 GB 13000 类似或等价这里就不再做详细的介绍

5支持bull 现在 UnicodeUCS 已经获得了十分广泛的支

持ndash网络与浏览器(如 HTML 4050 XML 与 IE

Safari Netscape Firefox Chrome Opera Edge 等)

ndash操作系统(如 Windows NT2000XPVista7810 Mac OS X iOS Android和 Linux )

ndash 编程语言新版本(如 CC++JavaObjective-CC Swift 等)

Unicode 代码的浏览器显示代码 字符标准名称 (英语 )

浏览器的显示

amp65 大写拉丁字母 A A

amp223 小写拉丁字母 Sharp S szlig

amp254 小写拉丁字母 Thorn thorn

amp916 大写希腊字母 Delta Δ

amp1049 大写斯拉夫字母 Short I Й

amp1511 希伯来字母 Qof ק

amp1605 阿拉伯字母 Meem م

amp3671 泰文数字 7 ๗amp4688 埃塞俄比亚音节文字 Qha ቐ

amp12354 日语平假名 A あamp12450 日语片假名 A アamp21494 简体汉字 叶 叶amp33865 繁体汉字 葉 葉amp50685 韩国音节文字 Yeob 엽

23 文字输出bull 文字输出是指将计算机内的字符编码通过计算机的输出设备(如显示器打印机喇叭)展现出所对应字符的图形或声音供人们阅读或聆听

bull 本节主要介绍文字图示输出的字形技术bull 文字声音输出属于语音合成只在本节的末尾作简单的介绍

231 字形技术bull 文字 = 图形bull 不论是象形文字中的单字还是拼音文字

中的字母都是用图形来表示的bull 在计算机里文字的表示 输出(显示和打

印)涉及ndash 字型ndash 字体ndash 字库

1字型bull 字型指构造和生成字形的方法一般可分为

ndash 点阵字 DOS 显卡 ROM 金山 科印特点似位图显示快占空间(字库大)放大后有马赛克效应

bull 显示字母 88 汉字 1616bull 打印 2424 4848 6464

ndash 矢量字单线条用于笔式绘图仪特点字库小算法简单难看

ndash 轮廓字用曲线描绘字的轮廓输出效果好所见即所得(WYSWYG) 可无级放大易实现空心 阴影 填充 变形等各种特效功能轮廓曲线一般采用样条曲线如 TrueType (Apple 1991 Mac OS Microsoft 1992 Windows 31)用的是二次 B 样条 Bezier曲线中文之星 RichWin采用的是三次 B 样条 Bezier曲线

字型种类

2字体bull 字体指字的形状风格如

ndash 汉字的

ndash 英文的

宋体楷体黑体仿宋

行楷隶书新魏幼圆

Times New Roman Arial Narrow Courier New

常用汉字字体bull 宋体mdashmdash宋体来自于北宋时雕版刻书所采用的欧体字(唐朝欧阳询体)宋体字的横顿拉捺挑钩别具特色间架平正疏密适中字体秀丽遒劲但笔画横细竖粗适合于刀刻不宜于手写现在宋体广泛用于印刷常来表现文档的正文

bull 仿宋体mdashmdash 1920年钱塘的丁辅之与丁善之等人将明代以后盛行的方廓形字体加以改造创造出长形和方形的聚珍仿宋后来演化为现在的仿宋体仿宋体比较接近于手写体为宋体和楷体的折中是采用的宋体的结构和楷体的笔法而成现常来表现打印文件以及文档的摘要和注释等

bull 黑体mdashmdash黑体是适应工艺美术的发展而出现的一种等线体是从日本引进的黑体的结构与宋体没有什么差别只是其笔画粗细一致健实粗壮主要用于文档的标题和重点及标语广告等方面

bull 楷体mdashmdash楷体源于楷书楷体的笔画圆浑笔调灵活结构端正美观但不宜于木板雕刻所以直到清末西洋的石板印刷术传入后才开始广泛用于印刷现代的楷体创造于 20世纪的二三十年代主要用于文档的正文(多用于中小学教材)也可用于工艺美术等方面

3字库bull 字库为一种文字的某一字体的所有字符的集合一般存放在一个磁盘文件中

bull 由于象形文字中单字的数量大(成千上万)而拼音文字中字母的数量小(不到一百个)所以字库的大小有很大的差别

bull 为了使文档界面丰富多彩常见的字处理软件都支持多种字体带有众多字库

4点阵字型的国家标准bull 我国已经公布了若干字体的点阵字型之国家标准

ndash GB 50071-19852001 信息技术 汉字编码字符集(基本集) 24 点阵字型

ndash GB 50072-19852001 信息技术 汉字编码字符集(辅助集) 24 点阵字型

ndash GB 5199-19862001 信息技术 汉字编码字符集(基本集) 16 点阵字型 宋体

ndash GB 6345-19862001 信息技术 汉字编码字符集(基本集) 32 点阵字型 宋体

ndash GB 12041-2001 信息技术 汉字编码字符集(基本集) 48点阵字型 宋体

ndash GB 17698-1999 信息技术 通用多八位编码字符集( I 区) 汉字 16 点阵字型

232 语音合成bull 文字的声音输出主要使用的是语音合成的技术bull 语音合成功能是ldquo文rarr语rdquo转换bull 文语转换 TTS (Text-To-Speech) 是将文本形式的信息转换成自然语音的一种技术其最终目标是使计算机输出清晰而又自然的声音

bull 英语的语音合成在上世纪 80年代就早已成熟而中文 汉语的合成现在也趋于成熟并有了广泛的应用(如汽车导航仪智能手机等)

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 44: 第一篇  媒体

4 Big5

bull 除了中国大陆使用的简体汉字外在台湾香港澳门和海外华侨社区使用的是传统的繁体汉字

bull 简体汉字使用 GB (国标)系列编码标准bull 繁体汉字一般使用的是 Big5内码(大五码)即台湾的ldquo资讯工业策进会rdquo发布的《标准交换码 (Ⅲ码 )》收录汉字 13 053 个

bull Big5内码是 1984年由台湾财团法人资讯工业策进会与宏碁 (Acer) 神通 (MiTAC) 佳佳零壹 (Zero One) 大众 (FIC) 等五大软件公司联合推出故称为大五码

BIG5 的代码空间低位字节

00 hellip 3F 40 hellip 7E 7F hellip A0 A1 hellip FE FF

高位字节

00middot

80

81middot

A0用户定义区 用户定义区

A1A2A3

非汉字图符 非汉字图符

A4middot

C6常用汉字 常用汉字

C7C8

用户定义区 用户定义区

C9middot

F9次常用汉字 次常用汉字

FAmiddot

FE用户定义区 用户定义区

FF

5少数民族文字编码bull 中国共有 56 个民族除了汉回满族一般使用汉语外其他少数民族大多有自己的民族语言

bull 我国各民族使用的 50 多种文字可以分为字母式结构文字和非字母式结构文字两大类ndash 字母式结构的有拉丁文斯拉夫文蒙古文维吾尔文哈萨克文藏文和朝鲜文等字母式

ndash 非字母式结构的有汉字象形文字图画文字和音节文字等bull 各民族文字的书写方向也有不同

ndash 壮文藏文朝鲜文彝文等的字从左到右行从上到下ndash 维吾尔文哈萨克文和柯尔克孜文等的字从右到左行从上

到下ndash 蒙古文和满文的字从上到下行从左到右ndash 汉字的书写方向有两种

bull 大陆的简体汉字的字从左到右行从上到下bull 港台与古旧书的繁体汉字的字从上到下行从右到左

国家标准bull 下面按发布时间列出若干已经公布的我国少数民族文字

编码集的国家标准(这些字符集一般分成两类对字母式结构文字采用八位编码对非字母式结构文字采用双字节编码)ndash GB 8045-87《信息处理交换用蒙古文七位和八位编码图形字

符集》收 82 个蒙古文字母和 12 个其他符号共 94 个字符ndash GB 12050-89《信息处理交换用维吾尔文编码图形字符集》收 32 个维吾尔文字母一个维吾尔文复合字符和 37 个其他符号共 70 个字符

ndash GB 12052-89《信息交换用朝鲜文编码字符集》收 5297 个朝鲜文字和 682 个其他符号(与 GB 2132同)共 5 979 个字符

ndash GB 13134-91《信息交换用彝文编码字符集》收 1165 个彝文字符和 688 个其他符号共 1853 个字符

ndash GB 16959-1997《信息技术 信息交换用藏文编码字符集 基本集》收 41 个藏文字母 36 个藏文主字 13 个元音字符12 个语音字符 10 个藏文数字 10 个半值符一个控制用连接符和 46 个其他藏文图形符号共 169 个字符

6 GB 13000bull GB 13000 是与 ISOIEC 10646 等价的国际通用编码字符集标准收汉字 2万多个但是与 GB 2312 和 GBK 不兼容

bull 1993年 5月 ISO 与 IEC 联合推出了可用于世界各种文字的通用编码字符集的国际标准的第 1部分ndash ISOIEC 10646-11993 Information technology -- Universal Multiple-Octe

t Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane (信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

ndash 该标准收字符 96万个几乎涵盖世界上的所有文字其中包含汉字 21 003 个

bull 1993年底我国推出了等同于国际标准 ISOIEC 1064611993 的强制性国家标准 ndash GB 130001-93《信息技术 通用多八位编码字符集( UCS ) 第一部分

体系结构与基本多文种平面》ndash 该标准于 1993年 12月 24日被国家技术监督局批准 1994年 8月 1日起实施

GB 13000 的主要特点

bull 世界各语言文种字符统一编码避免冲突便于国际交流

bull 编码空间宽阔连续每个图形字符的编码唯一(一字一码)不再存在兼容性问题

bull 按文种而不是按语言编码避免重复和浪费(如中日韩汉字的统一编码 CJK )

bull 与 GB 2312 和 GBK 不兼容

体系结构bull UCS 的体系结构是基于所谓ldquo多八位rdquo的而ldquo八位rdquo就是一个字节ldquo多八位rdquo就是多个字节

bull UCS采用 4 个字节来表征组面行位的四维空间bull 整个 UCS空间包含 128 个组( 0x00组 ~0x7F组)每组有 256 个平面( 0x00 平面 ~0xFF 平面)每个平面有 256 行每行又由 256 个字位构成

bull UCS共有( 128 times 256 = ) 32 768 个平面每个平面有( 256 times 256 = ) 65 536 个字位每个字位对应于一个字符的编码

bull 目前的编码只限于 00组已经定义的平面有 00组的00 平面mdashmdash称之为基本多文种平面 BMP ( Basic Multilingual Plane ) 及若干辅助平面

UCS 的全部编码空间

每个平面256times256 个

字位

00组 00 平面

00组 FF 平面

01组 00 平面

7F组 00 平面00

01组

7F组

UCS 的 00组

BMPbull BMP = Basic Multilingual Plane 基本多文种平面bull BMP 用作双八位编码字符集称之为 UCS-2 它被

分成四个区ndash A- 区(字位 0x0000~0x4DFF 有 19 903 个字位)用于

字母文字音节文字以及各种符号ndash I- 区(字位 0x4E00~0x9FFF 共 20 992 个字位)用于中日韩统一汉字( CJK )

ndash O- 区(字位 0xA000~0xDFFF 共 16 384 个字位)保留未来标准化用

ndash R- 区(字位 0xE000~0xFFFD 共 8 190 个字位)为 BMP 的限制使用区包括专用字符变形显现形式及兼容字符

BMP总貌

A-区

00~33 拼音文字(见下页)

34~3D 朝鲜文

3E~44 朝鲜文补充 -A

45~4D 朝鲜文补充 -B

I-区 4E~9F CJK统一汉字O-区 A0~DF

R-区

E0~F8 专用区

F9~FA CJK兼容汉字FB 拼音文字变形显现形式

FC~FD 阿拉伯文变形显现形式 -A

FE半形组合用标志

CJK兼容形式

小写变体

阿拉伯文变形显现形式 -B

FF 半形及全形字符 特殊字符

BMP 的0x00~0x33

行字母文字区

00 基本拉丁文 拉丁文-1补充

01 拉丁文扩充-A 拉丁文扩充-B

02 拉丁文扩充-B 国际音标扩充 进格修饰字符

03 组合用发音符 基本希腊文 希腊符号及哥普特文

04 西里尔文

05 美亚尼亚文 希伯来文(基本和扩充)

06 基本阿拉伯文 阿拉伯文扩充

07

08

09 梵文 孟加拉文

0A 锡克教文 古吉拉特文

0B 奥利雅文 泰米尔文

0C 泰卢固文 卡纳达文

0D 德拉维族文

0E 泰文 老挝文

0F

10 格鲁吉亚文

11 朝鲜文字母

12~1D

1E 拉丁文扩充增补

1F 希腊文扩充

20 广义标点 上下标 货币符号 符号组合用区分标志

21 类似字母的符号 数字形式 箭头

22 数学运算符

23 零杂技术用符号

24 控制图符 光学识别符 带括号的字母数字

25 制表符 方块元素 几何图形符

26 零杂符号

27 示意符等

28~2F

30 CJK符号和标点 平假名 片假名

31 注音 朝鲜文兼容字母 CJK零杂字符

32 带括号的CJK字母及月份

33 CJK兼容字符

留作将来标准化用

非图形字符

表示形式bull GB 13000提供了字符编码表示的两种替代使用的形式

ndash 双八位 BMP 形式( UCS-2 )mdashmdash允许使用 BMP 中的字符且每个字符用两个字节表示

ndash 肆八位正则形式( UCS-4 )mdashmdash允许使用 GB 13000 中的全部字符且每个字符用四个字节表示

bull 除了 UCS-24外还有另外两种变形的表示形式ndash UTF-8 (单字节 ~ 多字节)ndash UTF-16 (双字节和 4 字节与 UCS-2 等价)ndash 目前在工业上的实现均为 UTF-16 ( UCS-2 )和 UTF-8ndash UTF = Unicode UCS Transformation Format 统一码 UC

S转换格式bull 关于统一码我们会在下一小节详细介绍

7 GBK 与 GB 18030bull 由于 GB 13000 标准与 GB 2312 标准的字符编码不兼容作为过渡在国家信息技术标准化委员会的主持下制定了与 GB 2312兼容的《汉字内码扩展规范( GBK )》( K 为扩展的ldquo扩rdquo字的拼音首字母)并于 1995年 12月 15日由原国家技术监督局标准司联合原电子工业部科技与质量监督司作为指导性技术规范发布实施

bull 2000年 GBK又被国家标准 GB 18030-2000《信息技术 信息交换用汉字编码字符集 基本集的扩充》所代替该标准收汉字 2万 7千个

bull 与 GB 2312 一样 GB 18030 也为中国的强制性国家标准微软公司的 Windows XPVista78 中文版与苹果公司的 Mac OS X 和 iOS 谷歌公司的 Android (安卓)等操作系统已经全面支持 GBK

GB 18030 的码位范围分布

字节数 码位空间 码位数目

单字节 0x00~0x7F 128

双字节第 1字节 第 2字节

23 9400x81~0xFE

0x40~0x7E 0x80~0xFE

四字节第 1字节 第 2字节 第 3字节 第 4字节

1 587 6000x81~0xFE 0x30~0x39 0x81~0xFE 0x30~0x39

GB 18030的

总体结构图

收录字符bull 单字节部分mdashmdash收录了GBT 11383 的 0x00~0x7F 全部 128 个字符(似 ASCI

I )bull 双字节部分mdashmdash收录内容如下 (21 003 个汉字和 884 个符号共 21 887 个字符 )

ndash GB 130001-93 的全部 CJK 统一汉字字符 20 902 个( GB 2312 的编码汉字在双字节 2 区其他 CJK 统一汉字在双字节 34 区)

ndash GB 130001-93 的 CJK兼容区挑选出来的 21 个汉字ldquo郎凉秊helliphellip﨨﨩rdquo( 0xFD9C~0xFDA0 和 0xFE40~0xFE4F )

ndash GB 130001-93 中收录而 GB 2312未收录的台湾地区使用的图形字符 139 个ldquoˊˋ˙helliphelliprdquo( 0xA840~0xA895 和 0xA940~0XA988 )

ndash GB 130001-93收录的其他字符 31 ( 13)个(在双字节 5 区)ndash GB 2312-80 中的非汉字字符 682 个( 0xA1A1~0xA9EF )ndash GB 12345-90 的竖排标点符号 19 ( 29)个ldquo︵︶︹helliphellip︳︴rdquo( 0xA6D9~0xA6

F5 )ndash GB 2312-80未收录的 10 个小写罗马数字ldquoⅰⅱⅲhelliphellipⅸⅹrdquo( 0xA2A1~ 0xA2A

A )ndash GB 2312-80未收录的带音调的汉语拼音字母 5 ( 4)个ldquo ńňǹrdquo 以及 ɑ 和 ɡ ( 0

xA8BB~0xA8C0 )ndash 汉字数字零ldquo〇rdquo (0xA996) 和欧元符ldquoeurordquo (0xA2E3)ndash 表意文字描述符 13 个ldquohelliphelliprdquo( 0xA989~0xA995 )ndash 对 GB 130001-93增补的汉字和部首 构件 80 个ldquohelliphellip䶮rdquo( 0xFE50~ 0x

FEA0 )bull 四字节部分mdashmdash收录了上述双字节字符之外的包括 CJK 统一汉字扩充 A 在内

的 GB 130001-93 中的全部字符

GB 18030双字节部分的码位安排

类别 区名 码位范围 码位数 字符数 内容

符号区双字节 1区 A1A1~A9FE 846 718

GB 2312非汉字字符等

双字节 5区 A840~A9A0 192 166 台湾图符等

汉字区双字节 2区 B0A1~F7FE 6768 6763 GB 2312汉字双字节 3区 8140~A0FE 6080 6080 CJK统一汉字双字节 4区 AA40~FEA0 8160 8160 CJK统一汉字等

用户自定义区双字节用户区 1 AAA1~AFFE 564

用户自定义字符双字节用户区 2 F8A1~FEFE 658

双字节用户区 3 A140~A7A0 672

GB 18030双字节部分的编码空间结构图 尾字节

0x40larr――rarr0x7E 0x80larr――rarr0xA0 0xA1larr――――――――――――rarr0xFE

0x81 uarr darr

0xA0

0xA1 uarr darr

0xA7

0xA8 0xA9

首字节

0xAA uarr | | | | | | | | | | darr

0xFE

双字节 3区

汉字区6 080个码位

双字节用户区 3

用户自定义区672个码位

双字节 5区 图形符号区192个码位

双字节 4区

汉字区8 160个码位

双字节 1区

图形符号区564个码位

双字节 2区

汉字区6 768个码位

双字节用户区 1 用户自定义区564个码位

双字节用户区 2 用户自定义区658个码位

223 国际通用字符编码

bull Unicode (统一码)是由多语言软件制造商组成的统一码协会( httpwwwUnicodeorg)所制定一种国际字符的编码标准

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull 本节主要介绍这两种关系密切的主流国际字符编码标准的来历编码方案各自特点与相互关系

1 Unicode 统一码bull 发展历史

ndash 1987年施乐( Xerox )公司的 Joe Becker 与 Lee Collins 和苹果( Apple )公司的 Mark Davis 等人开始讨论统一编码 1987年 12月 Joe Becker造词 Unicode (统一码)含义为ldquo unique universal and uniform character encodingrdquo (单一通用统一的字符编码) 1989年 2月开始定期召开统一码会议 1989年 9月公布 Unicode草案

ndash 1991年 1月 3 日由 Xerox Apple Sun IBM Aldis Microsoft 等公司出资在美国加州成立了统一码协会( Unicode Consortium )并由协会设立非盈利性的统一码公司( Unicode Inc )后来 HP Adobe Borland Digital Lotus Novell 等公司也纷纷加入 1991年 1月成立统一码技术委员会 UTC 并制定了其规程

ndash 1991年 2月在 Ed Hart 的推动下进行了ldquo统一码对 10464 国际标准草案 1rdquo 的对话Unicode 与 ISOIEC 10646开始走向融合

ndash 1991年 8月发布 Unicode 标准 10版的第 1卷(体系结构非表意字符) 1992年6月发表 Unicode 10版的第 2卷(表意字符) 1993年 6月发布 Unicode 11版与 1993年 5月公布的 ISOIEC 10646-11993 实现了合并

ndash 1996年 7月发布 Unicode 20版ndash 1999年 9月发布 Unicode 30版ndash 2003年 4月发布 Unicode 40版(对应于 ISOIEC 106462003 ) 2004年 3月 31日发布 Unicode 401版 2005年 3月 31日发布 Unicode 410版

ndash 2006年 7月 14日发布 Unicode 50版 2008年 4月 4日发布 Unicode 51版 2009年 12月 22日发布 Unicode 52版

ndash 2010年 10月发布 Unicode 60版 2012年 1月发布 Unicode 61版(对应于 ISOIEC 106462012 ) 2012年 9月推出 Unicode 62版 2013年 9月推出 Unicode 63版

ndash 2014年 6月 16日发布 Unicode 70版 ndash 2015年 6月 17日发布 Unicode 80版

字符集bull Unicode 字符集的空间分成双字节的基本多语言平面 (Basic Multilingual Pla

ne BMP) 和 4 字节的辅助多语言平面 (Supplementary Multilingual Plane SMP) 两种

bull BMPndash Unicode 的基本平面或基本多语言平面 BMP 对应于 ISOIEC 10646-1 的第 00组的 00 平面( BMP )即 Unicode 与 ISOIEC 10646 的 BMP 中的字符编码完全一致

bull SMPndash 鉴于 Unicode 原有的 16位元空间不足以应用从 Unicode 31版本开始设立了 16 个辅助平面使 Unicode 的可使用空间由六万多字增至约一百万字

ndash 原有的 Unicode双字节空间称为基本平面或基本多语言平面 BMP 辅助多语言平面 SMP 字符要用 4 字节来储存

ndash 第一辅助平面摆放拼音文字(主要为现时已不再使用的文字)及符号范围在 U+10000 - U+1FFFD

ndash 第二辅助平面又称为表意文字补充平面 (Supplementary Ideographic Plane 简称 SIP) 现时摆放ldquo中日韩统汉字扩展 B 区rdquo共 43253 个汉字范围在 U+20000 - U+2FFFD

ndash 第三至十三辅助平面尚未使用ndash 第十四辅助平面又称为特殊用途补充平面 (Supplementary Special-purpose Pl

ane 简称 SSP) 摆放 Language tags 和 Variation Selectors 它们都是控制字符范围在 U+E0000 - U+E01FF

ndash 第十五至十六辅助平面都是私人使用区它们的范围是 U+F0000 - U+FFFFD 及 U+100000 - U+1000FD

bull Unicode 字符集的具体编码方式参加第 4小节ldquo 4 UTFrdquo

2 ISOIEC 10646

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull ISOIEC 10646 标准由 ISO 与 IEC 联合成立的 ISOIEC JTC1SC2WG2 制定ndash JTC 1 ( Joint Technical Committee 1 on Information

technology ISOIEC信息技术联合技术委员会 1 )负责信息技术方面标准的制定工作

ndash SC 2 ( SubCommittee 2 on Coded character sets 编码字符集分会 2 )下的 WG 2 ( Working Group 2 on Universal coded character set 通用编码字符集工作组 2 )负责制定国际通用字符编码标准即后来公布的 ISOIEC 10646

发展历史bull 1984年 ISO 的一些会员国发起制定新的国际字符编码标准同年 4月 ISO

与 IEC 联合成立 ISOIEC JTC1SC2WG2 1987年 3月制定出编码架构1992年 6月投票通过第二版国际标准草案

bull 1993年 5月推出 10646 标准时将内容分成两个部分标准首先发布的是其中的第 1 个部分(体系结构与基本多文种平面)的第 1版( Edition 1 ) ISOIEC 10646-11993 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane(信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

bull 2000年 3月推出 10646 标准第一个部分的第 2版( Edition 2 ) ISOIEC 10646-12000 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane

bull 2001年 10月推出 10646 标准第 2版的第二个部分(辅助平面)的第 1版( Edition 1 ) ISOIEC 10646-22001 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 2 Supplementary Planes

bull 2003年 10月推出的 10646新标准(第 1版 Edition 1 )将老标准中的两个部分标准合并成了一个单一的标准 ISOIEC 106462003 Information technology -- Universal Multiple- Octet Coded Character Set (UCS) 后来又于 2010年 2012年和 2014年分别推出了 ISOIEC 106462010 (第 2版)ISOIEC 106462012 (第 3版)和 ISOIEC 106462014 (第 4版)

UCS 通用字符集bull 通用字符集( Universal Character Set UCS )是

ISOIEC 10646 标准所定义的字符编码方式采用 4字节编码又称为 Universal Multiple-Octet Coded Character Set (通用多八位编码字符集)

bull 通用字符集是所有包括了其他字符集它保证了与其他字符集的双向兼容即如果你将任何文本字符串翻译到 UCS 格式然后再翻译回原编码你不会丢失任何信息

bull UCS 包含了已知语言的所有字符除了拉丁语希腊语斯拉夫语希伯来语阿拉伯语亚美尼亚语格鲁吉亚语还包括中文日文韩文这样的象形文字 UCS 还包括大量的图形印刷数学科学符号

名字与组合字符bull UCS 不仅给每个字符分配一个代码而且赋予了

一个正式的名字表示一个 UCS 或 Unicode值的十六进制数通常在前面加上ldquo U+rdquo 例如ldquo U+0041rdquo代表字符ldquo Ardquo

bull UCS里有些编码点分配给了组合字符组合字符机制允许在任何字符后加上重音符或其他指示标记 这在科学符号中特别有用 比如数学方程式和国际音标字母 可能会需要在一个基本字符后组合上一个或多个指示标记

实现级别bull 并不是所有的系统都需要支持像组合字符这样的的先进

机制因此 ISO 10646 指定了如下三种实现级别ndash 级别 1不支持组合字符和韩语 Hangul Jamo 字符 ( 一种特

别的 更加复杂的韩国文的编码 使用两个或三个子字符来编码一个韩文音节 )

ndash 级别 2类似于级别 1 但在某些文字中允许一列固定的组合字符 (例如 希伯来文 阿拉伯文 Devangari 孟加拉语 果鲁穆奇语 Gujarati Oriya 泰米尔语 Telugo 印 埃纳德语 Malayalam 泰国语和老挝语 ) 因为如果没有最起码的几个组合字符 UCS就不能完整地表达这些语言

ndash 级别 3支持所有的 UCS 字符如可以在任意一个字符上加上一个箭头或 和一个 tilde(颚化符号即字母上面的~ )

编码方式bull UCS 有如下两种编码方式

ndash UCS-2与 Unicode 的 2 字节编码基本一样ndash UCS-4 4 字节编码目前是在 UCS-2 前加

上 2 个全零的字节bull UCS 还有 UTF 编码方式参见下面第 4小节ldquo 4 UTFrdquo

3 Unicode 与 ISOIEC 10646bull 关系

ndash 历史上存在两个独立的尝试创立单一字符集的组织即国际标准化组织( ISO )和多语言软件制造商组成的统一码协会组织( Unicodeorg )前者开发的 ISO 10646项目后者开发的 Unicode项目因此最初制定了不同的标准

ndash 1991年前后两个项目的参与者都认识到世界不需要两个不兼容的字符集于是它们开始合并双方的工作成果并为创立一个单一编码表而协同工作

ndash 从 Unicode20开始 Unicode采用了与 ISO 10646-1相同的字库和字码 ISO 也承诺 ISO10646 将不会替超出 U+10FFFF 的 UCS-4 编码赋值以使得两者保持一致

ndash 两个项目仍都存在并独立地公布各自的标准但 Unicode协会和 ISOIEC JTC1SC2 都同意保持两者标准的码表兼容并紧密地共同调整任何未来的扩展

异同bull Unicode协会公布的 Unicode 标准包含了 ISO 10646-1 实现级别

3 的基本多文种平面在两个标准里所有的字符都在相同的位置并且有相同的名字

bull ISO 10646 标准就像 ISO 8859 标准一样只不过是一个简单的字符集表它定义了一些编码的别名指定了一些与标准有关的术语并包括了规范说明指定了怎样使用 UCS连接其他 ISO 标准的实现等

bull Unicode 标准额外定义了许多与字符有关的语义符号学并详细说明了绘制某些语言(如阿拉伯语)表达形式的算法处理双向文字(比如拉丁文和希伯来文的混合文字)的算法排序与字符串比较所需的算法等等

bull 考虑到 Unicode 标准有一个易记的名字既便宜又包括更多的辅助信息因而它使用得更广泛然而

bull 一般认为用于打印 ISO 10646-1 标准的字体在某些方面的质量要高于用于打印 Unicode 20 的专业字体设计者总是被建议说要两个标准都实现但一些提供的样例字形有显著的区别 ISO 10646-1 标准同样使用四种不同的风格变体来显示表意文字如中文日文和韩文 (CJK) 而 Unicode 20 的表里只有中文的变体

4 UTFbull Unicode 和 UCS 都是一个字符集可以看作为内码bull UTF ( UnicodeUCS Transformation Format 统一码

通用字符集转换格式)是一种编码方式它的出现是因为 Unicode 和 UCS 不适宜在某些场合直接传输和处理

bull UCS 和 Unicode 只是分配整数给字符的编码表现在存在好几种将一串字符表示为一串字节的方法(如高或低位字节在前)

bull 最显而易见的两种方法是将 UCS 和 Unicode 文本存储为 2 个 或 4 个字节序列的串这两种方法的正式名称分别为 UCS-2 和 UCS-4

bull 常用的 UTF具体编码方式有 UTF-8 UTF-16 和 UTF-32

UTF-8

bull UTF-8 是 UTF 的一种具体编码方式在 ISO 10646-1 的附录 R 和 IETF 的 RFC 2279 里定义

bull 由于要使文档中的文字与 ASCII兼容故 UTF-8 选择了使用可变长度字节来储存 Unicode 和 UCS 例如ndash ASCII 字母继续使用 1 字节储存ndash 重音文字希腊字母或西里尔字母等使用 2 字节来储存ndash 常用的汉字就要使用 3 字节ndash 辅助平面字符则使用 4 字节ndash 即 ASCII 不作变换其他字符做变长编码每个字符 1~4 字节

bull UTF-8 通常作为外码bull 在 UTF-8 文件的开首很多时都放置一个 U+FEFF 字符

(UTF-8 以 EF BB BF 代表 ) 以显示这个文字档案是以UTF-8 编码

UTF-8 的优点bull 与 CPU 字节顺序无关可以在不同平台之间交流

bull 容错能力高任何一个字节损坏后最多只会导致一个编码码位损失不会链锁错误 ( 如 GB 码错一个字节就会整行乱码 )

UTF-8 的缺点bull UTF-8 使用可变长度字节储存使计算机程序设计变得复杂 (故此在计算机程序或操作系统内部多采用 UCS-2 编码 )

bull 在旧式的中文日文及朝鲜文编码之中每字符都使用 2 字节储存而 UTF-8 须使用 3 字节 (采用 UTF-16 编码则可只使用 2字节储存 )

bull 泰语以往使用的 ISO 8859-11 每字符只使用 1 字节储存而 UTF-8 须使用 3 字节

UTF-8储存的多字节串字符bull U-00000000 - U-0000007F 0xxxxxxx bull U-00000080 - U-000007FF 110xxxxx 10xxxxxx

bull U-00000800 - U-0000FFFF 1110xxxx 10xxxxxx

10xxxxxx bull U-00010000 - U-001FFFFF 11110xxx 10xxxxx

x 10xxxxxx 10xxxxxx bull 在多字节串中第一个字节的开头ldquo 1rdquo 的数目就

是整个串中字节的数目bull 每个使用 UTF-8储存的字符除了第一个字节外其余字节的头两个位元都是以 10 开始使文字处理器能够较快地找出每个字符的开始位置

UTF-16bull UTF-16 是 UTF 的另一种具体编码方式在 ISO 1064

6-1 的附录 Q 和 IETF 的 RFC 2781 里定义bull UTF-16 是变长码( 2 或 4 字节)大致相当于 20位编码值在 0 到 0x10FFFF 之间基本上就是 Unicode 编码的实现 UTF-16 与 CPU 字序有关但因为最省空间常作为网络传输的外码 UTF-16 是 Unicode 的完美编码

bull lt0x10000 的直接用其对应的 16位整数编码位于 0x10000 ~ 0x10FFFF 之间的用 0xD800~0xDBFF 的 16位整数后跟 0xDC00~0xDFFF 的 16位整数的 4 字节编码 gt 0x10FFFF 的不能用 UTF-16 表示

bull 在 Unicode 的 BMP 中定义的字符(无论是拉丁字母汉字或其他文字或符号)一律使用 2 字节存储而在辅助平面定义的字符则以两个 2 字节的值来存储

UTF-16 的特点bull UTF-16比起 UTF-8 的好处在于大部分字符都以固定长

度的 2 字节存储但 UTF-16却无法相容于 ASCII 编码bull UTF-16 有两种编码模式即大尾序( big Endian 高位字节在前)和小尾序( little Endian 高位字节在后)储存形式(一般來說以 Macintosh 制作和存储的文字使用大尾序格式以 Microsoft 或 Linux 制作和存储的文字使用小尾序格式)

bull 为了弄区分 UTF-16 文件的大小尾序在 UTF-16 文件的开头都会放置一个 U+FEFF 字符作为字节顺序标记 (UTF-16LE 以 FF FE代表 UTF-16BE 以 FE FF代表 ) 以显示该文档是以 UTF-16 编码的

UTF-32

bull UTF-32 仅使用了 Unicode范围 (0 到 0x10FFFF) 的 32位编码相当于 UCS-4 的子集

bull 由于 Unicode 和 ISOIEC 10646 的编码和结构与前面讲过的 GB 13000 类似或等价这里就不再做详细的介绍

5支持bull 现在 UnicodeUCS 已经获得了十分广泛的支

持ndash网络与浏览器(如 HTML 4050 XML 与 IE

Safari Netscape Firefox Chrome Opera Edge 等)

ndash操作系统(如 Windows NT2000XPVista7810 Mac OS X iOS Android和 Linux )

ndash 编程语言新版本(如 CC++JavaObjective-CC Swift 等)

Unicode 代码的浏览器显示代码 字符标准名称 (英语 )

浏览器的显示

amp65 大写拉丁字母 A A

amp223 小写拉丁字母 Sharp S szlig

amp254 小写拉丁字母 Thorn thorn

amp916 大写希腊字母 Delta Δ

amp1049 大写斯拉夫字母 Short I Й

amp1511 希伯来字母 Qof ק

amp1605 阿拉伯字母 Meem م

amp3671 泰文数字 7 ๗amp4688 埃塞俄比亚音节文字 Qha ቐ

amp12354 日语平假名 A あamp12450 日语片假名 A アamp21494 简体汉字 叶 叶amp33865 繁体汉字 葉 葉amp50685 韩国音节文字 Yeob 엽

23 文字输出bull 文字输出是指将计算机内的字符编码通过计算机的输出设备(如显示器打印机喇叭)展现出所对应字符的图形或声音供人们阅读或聆听

bull 本节主要介绍文字图示输出的字形技术bull 文字声音输出属于语音合成只在本节的末尾作简单的介绍

231 字形技术bull 文字 = 图形bull 不论是象形文字中的单字还是拼音文字

中的字母都是用图形来表示的bull 在计算机里文字的表示 输出(显示和打

印)涉及ndash 字型ndash 字体ndash 字库

1字型bull 字型指构造和生成字形的方法一般可分为

ndash 点阵字 DOS 显卡 ROM 金山 科印特点似位图显示快占空间(字库大)放大后有马赛克效应

bull 显示字母 88 汉字 1616bull 打印 2424 4848 6464

ndash 矢量字单线条用于笔式绘图仪特点字库小算法简单难看

ndash 轮廓字用曲线描绘字的轮廓输出效果好所见即所得(WYSWYG) 可无级放大易实现空心 阴影 填充 变形等各种特效功能轮廓曲线一般采用样条曲线如 TrueType (Apple 1991 Mac OS Microsoft 1992 Windows 31)用的是二次 B 样条 Bezier曲线中文之星 RichWin采用的是三次 B 样条 Bezier曲线

字型种类

2字体bull 字体指字的形状风格如

ndash 汉字的

ndash 英文的

宋体楷体黑体仿宋

行楷隶书新魏幼圆

Times New Roman Arial Narrow Courier New

常用汉字字体bull 宋体mdashmdash宋体来自于北宋时雕版刻书所采用的欧体字(唐朝欧阳询体)宋体字的横顿拉捺挑钩别具特色间架平正疏密适中字体秀丽遒劲但笔画横细竖粗适合于刀刻不宜于手写现在宋体广泛用于印刷常来表现文档的正文

bull 仿宋体mdashmdash 1920年钱塘的丁辅之与丁善之等人将明代以后盛行的方廓形字体加以改造创造出长形和方形的聚珍仿宋后来演化为现在的仿宋体仿宋体比较接近于手写体为宋体和楷体的折中是采用的宋体的结构和楷体的笔法而成现常来表现打印文件以及文档的摘要和注释等

bull 黑体mdashmdash黑体是适应工艺美术的发展而出现的一种等线体是从日本引进的黑体的结构与宋体没有什么差别只是其笔画粗细一致健实粗壮主要用于文档的标题和重点及标语广告等方面

bull 楷体mdashmdash楷体源于楷书楷体的笔画圆浑笔调灵活结构端正美观但不宜于木板雕刻所以直到清末西洋的石板印刷术传入后才开始广泛用于印刷现代的楷体创造于 20世纪的二三十年代主要用于文档的正文(多用于中小学教材)也可用于工艺美术等方面

3字库bull 字库为一种文字的某一字体的所有字符的集合一般存放在一个磁盘文件中

bull 由于象形文字中单字的数量大(成千上万)而拼音文字中字母的数量小(不到一百个)所以字库的大小有很大的差别

bull 为了使文档界面丰富多彩常见的字处理软件都支持多种字体带有众多字库

4点阵字型的国家标准bull 我国已经公布了若干字体的点阵字型之国家标准

ndash GB 50071-19852001 信息技术 汉字编码字符集(基本集) 24 点阵字型

ndash GB 50072-19852001 信息技术 汉字编码字符集(辅助集) 24 点阵字型

ndash GB 5199-19862001 信息技术 汉字编码字符集(基本集) 16 点阵字型 宋体

ndash GB 6345-19862001 信息技术 汉字编码字符集(基本集) 32 点阵字型 宋体

ndash GB 12041-2001 信息技术 汉字编码字符集(基本集) 48点阵字型 宋体

ndash GB 17698-1999 信息技术 通用多八位编码字符集( I 区) 汉字 16 点阵字型

232 语音合成bull 文字的声音输出主要使用的是语音合成的技术bull 语音合成功能是ldquo文rarr语rdquo转换bull 文语转换 TTS (Text-To-Speech) 是将文本形式的信息转换成自然语音的一种技术其最终目标是使计算机输出清晰而又自然的声音

bull 英语的语音合成在上世纪 80年代就早已成熟而中文 汉语的合成现在也趋于成熟并有了广泛的应用(如汽车导航仪智能手机等)

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 45: 第一篇  媒体

BIG5 的代码空间低位字节

00 hellip 3F 40 hellip 7E 7F hellip A0 A1 hellip FE FF

高位字节

00middot

80

81middot

A0用户定义区 用户定义区

A1A2A3

非汉字图符 非汉字图符

A4middot

C6常用汉字 常用汉字

C7C8

用户定义区 用户定义区

C9middot

F9次常用汉字 次常用汉字

FAmiddot

FE用户定义区 用户定义区

FF

5少数民族文字编码bull 中国共有 56 个民族除了汉回满族一般使用汉语外其他少数民族大多有自己的民族语言

bull 我国各民族使用的 50 多种文字可以分为字母式结构文字和非字母式结构文字两大类ndash 字母式结构的有拉丁文斯拉夫文蒙古文维吾尔文哈萨克文藏文和朝鲜文等字母式

ndash 非字母式结构的有汉字象形文字图画文字和音节文字等bull 各民族文字的书写方向也有不同

ndash 壮文藏文朝鲜文彝文等的字从左到右行从上到下ndash 维吾尔文哈萨克文和柯尔克孜文等的字从右到左行从上

到下ndash 蒙古文和满文的字从上到下行从左到右ndash 汉字的书写方向有两种

bull 大陆的简体汉字的字从左到右行从上到下bull 港台与古旧书的繁体汉字的字从上到下行从右到左

国家标准bull 下面按发布时间列出若干已经公布的我国少数民族文字

编码集的国家标准(这些字符集一般分成两类对字母式结构文字采用八位编码对非字母式结构文字采用双字节编码)ndash GB 8045-87《信息处理交换用蒙古文七位和八位编码图形字

符集》收 82 个蒙古文字母和 12 个其他符号共 94 个字符ndash GB 12050-89《信息处理交换用维吾尔文编码图形字符集》收 32 个维吾尔文字母一个维吾尔文复合字符和 37 个其他符号共 70 个字符

ndash GB 12052-89《信息交换用朝鲜文编码字符集》收 5297 个朝鲜文字和 682 个其他符号(与 GB 2132同)共 5 979 个字符

ndash GB 13134-91《信息交换用彝文编码字符集》收 1165 个彝文字符和 688 个其他符号共 1853 个字符

ndash GB 16959-1997《信息技术 信息交换用藏文编码字符集 基本集》收 41 个藏文字母 36 个藏文主字 13 个元音字符12 个语音字符 10 个藏文数字 10 个半值符一个控制用连接符和 46 个其他藏文图形符号共 169 个字符

6 GB 13000bull GB 13000 是与 ISOIEC 10646 等价的国际通用编码字符集标准收汉字 2万多个但是与 GB 2312 和 GBK 不兼容

bull 1993年 5月 ISO 与 IEC 联合推出了可用于世界各种文字的通用编码字符集的国际标准的第 1部分ndash ISOIEC 10646-11993 Information technology -- Universal Multiple-Octe

t Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane (信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

ndash 该标准收字符 96万个几乎涵盖世界上的所有文字其中包含汉字 21 003 个

bull 1993年底我国推出了等同于国际标准 ISOIEC 1064611993 的强制性国家标准 ndash GB 130001-93《信息技术 通用多八位编码字符集( UCS ) 第一部分

体系结构与基本多文种平面》ndash 该标准于 1993年 12月 24日被国家技术监督局批准 1994年 8月 1日起实施

GB 13000 的主要特点

bull 世界各语言文种字符统一编码避免冲突便于国际交流

bull 编码空间宽阔连续每个图形字符的编码唯一(一字一码)不再存在兼容性问题

bull 按文种而不是按语言编码避免重复和浪费(如中日韩汉字的统一编码 CJK )

bull 与 GB 2312 和 GBK 不兼容

体系结构bull UCS 的体系结构是基于所谓ldquo多八位rdquo的而ldquo八位rdquo就是一个字节ldquo多八位rdquo就是多个字节

bull UCS采用 4 个字节来表征组面行位的四维空间bull 整个 UCS空间包含 128 个组( 0x00组 ~0x7F组)每组有 256 个平面( 0x00 平面 ~0xFF 平面)每个平面有 256 行每行又由 256 个字位构成

bull UCS共有( 128 times 256 = ) 32 768 个平面每个平面有( 256 times 256 = ) 65 536 个字位每个字位对应于一个字符的编码

bull 目前的编码只限于 00组已经定义的平面有 00组的00 平面mdashmdash称之为基本多文种平面 BMP ( Basic Multilingual Plane ) 及若干辅助平面

UCS 的全部编码空间

每个平面256times256 个

字位

00组 00 平面

00组 FF 平面

01组 00 平面

7F组 00 平面00

01组

7F组

UCS 的 00组

BMPbull BMP = Basic Multilingual Plane 基本多文种平面bull BMP 用作双八位编码字符集称之为 UCS-2 它被

分成四个区ndash A- 区(字位 0x0000~0x4DFF 有 19 903 个字位)用于

字母文字音节文字以及各种符号ndash I- 区(字位 0x4E00~0x9FFF 共 20 992 个字位)用于中日韩统一汉字( CJK )

ndash O- 区(字位 0xA000~0xDFFF 共 16 384 个字位)保留未来标准化用

ndash R- 区(字位 0xE000~0xFFFD 共 8 190 个字位)为 BMP 的限制使用区包括专用字符变形显现形式及兼容字符

BMP总貌

A-区

00~33 拼音文字(见下页)

34~3D 朝鲜文

3E~44 朝鲜文补充 -A

45~4D 朝鲜文补充 -B

I-区 4E~9F CJK统一汉字O-区 A0~DF

R-区

E0~F8 专用区

F9~FA CJK兼容汉字FB 拼音文字变形显现形式

FC~FD 阿拉伯文变形显现形式 -A

FE半形组合用标志

CJK兼容形式

小写变体

阿拉伯文变形显现形式 -B

FF 半形及全形字符 特殊字符

BMP 的0x00~0x33

行字母文字区

00 基本拉丁文 拉丁文-1补充

01 拉丁文扩充-A 拉丁文扩充-B

02 拉丁文扩充-B 国际音标扩充 进格修饰字符

03 组合用发音符 基本希腊文 希腊符号及哥普特文

04 西里尔文

05 美亚尼亚文 希伯来文(基本和扩充)

06 基本阿拉伯文 阿拉伯文扩充

07

08

09 梵文 孟加拉文

0A 锡克教文 古吉拉特文

0B 奥利雅文 泰米尔文

0C 泰卢固文 卡纳达文

0D 德拉维族文

0E 泰文 老挝文

0F

10 格鲁吉亚文

11 朝鲜文字母

12~1D

1E 拉丁文扩充增补

1F 希腊文扩充

20 广义标点 上下标 货币符号 符号组合用区分标志

21 类似字母的符号 数字形式 箭头

22 数学运算符

23 零杂技术用符号

24 控制图符 光学识别符 带括号的字母数字

25 制表符 方块元素 几何图形符

26 零杂符号

27 示意符等

28~2F

30 CJK符号和标点 平假名 片假名

31 注音 朝鲜文兼容字母 CJK零杂字符

32 带括号的CJK字母及月份

33 CJK兼容字符

留作将来标准化用

非图形字符

表示形式bull GB 13000提供了字符编码表示的两种替代使用的形式

ndash 双八位 BMP 形式( UCS-2 )mdashmdash允许使用 BMP 中的字符且每个字符用两个字节表示

ndash 肆八位正则形式( UCS-4 )mdashmdash允许使用 GB 13000 中的全部字符且每个字符用四个字节表示

bull 除了 UCS-24外还有另外两种变形的表示形式ndash UTF-8 (单字节 ~ 多字节)ndash UTF-16 (双字节和 4 字节与 UCS-2 等价)ndash 目前在工业上的实现均为 UTF-16 ( UCS-2 )和 UTF-8ndash UTF = Unicode UCS Transformation Format 统一码 UC

S转换格式bull 关于统一码我们会在下一小节详细介绍

7 GBK 与 GB 18030bull 由于 GB 13000 标准与 GB 2312 标准的字符编码不兼容作为过渡在国家信息技术标准化委员会的主持下制定了与 GB 2312兼容的《汉字内码扩展规范( GBK )》( K 为扩展的ldquo扩rdquo字的拼音首字母)并于 1995年 12月 15日由原国家技术监督局标准司联合原电子工业部科技与质量监督司作为指导性技术规范发布实施

bull 2000年 GBK又被国家标准 GB 18030-2000《信息技术 信息交换用汉字编码字符集 基本集的扩充》所代替该标准收汉字 2万 7千个

bull 与 GB 2312 一样 GB 18030 也为中国的强制性国家标准微软公司的 Windows XPVista78 中文版与苹果公司的 Mac OS X 和 iOS 谷歌公司的 Android (安卓)等操作系统已经全面支持 GBK

GB 18030 的码位范围分布

字节数 码位空间 码位数目

单字节 0x00~0x7F 128

双字节第 1字节 第 2字节

23 9400x81~0xFE

0x40~0x7E 0x80~0xFE

四字节第 1字节 第 2字节 第 3字节 第 4字节

1 587 6000x81~0xFE 0x30~0x39 0x81~0xFE 0x30~0x39

GB 18030的

总体结构图

收录字符bull 单字节部分mdashmdash收录了GBT 11383 的 0x00~0x7F 全部 128 个字符(似 ASCI

I )bull 双字节部分mdashmdash收录内容如下 (21 003 个汉字和 884 个符号共 21 887 个字符 )

ndash GB 130001-93 的全部 CJK 统一汉字字符 20 902 个( GB 2312 的编码汉字在双字节 2 区其他 CJK 统一汉字在双字节 34 区)

ndash GB 130001-93 的 CJK兼容区挑选出来的 21 个汉字ldquo郎凉秊helliphellip﨨﨩rdquo( 0xFD9C~0xFDA0 和 0xFE40~0xFE4F )

ndash GB 130001-93 中收录而 GB 2312未收录的台湾地区使用的图形字符 139 个ldquoˊˋ˙helliphelliprdquo( 0xA840~0xA895 和 0xA940~0XA988 )

ndash GB 130001-93收录的其他字符 31 ( 13)个(在双字节 5 区)ndash GB 2312-80 中的非汉字字符 682 个( 0xA1A1~0xA9EF )ndash GB 12345-90 的竖排标点符号 19 ( 29)个ldquo︵︶︹helliphellip︳︴rdquo( 0xA6D9~0xA6

F5 )ndash GB 2312-80未收录的 10 个小写罗马数字ldquoⅰⅱⅲhelliphellipⅸⅹrdquo( 0xA2A1~ 0xA2A

A )ndash GB 2312-80未收录的带音调的汉语拼音字母 5 ( 4)个ldquo ńňǹrdquo 以及 ɑ 和 ɡ ( 0

xA8BB~0xA8C0 )ndash 汉字数字零ldquo〇rdquo (0xA996) 和欧元符ldquoeurordquo (0xA2E3)ndash 表意文字描述符 13 个ldquohelliphelliprdquo( 0xA989~0xA995 )ndash 对 GB 130001-93增补的汉字和部首 构件 80 个ldquohelliphellip䶮rdquo( 0xFE50~ 0x

FEA0 )bull 四字节部分mdashmdash收录了上述双字节字符之外的包括 CJK 统一汉字扩充 A 在内

的 GB 130001-93 中的全部字符

GB 18030双字节部分的码位安排

类别 区名 码位范围 码位数 字符数 内容

符号区双字节 1区 A1A1~A9FE 846 718

GB 2312非汉字字符等

双字节 5区 A840~A9A0 192 166 台湾图符等

汉字区双字节 2区 B0A1~F7FE 6768 6763 GB 2312汉字双字节 3区 8140~A0FE 6080 6080 CJK统一汉字双字节 4区 AA40~FEA0 8160 8160 CJK统一汉字等

用户自定义区双字节用户区 1 AAA1~AFFE 564

用户自定义字符双字节用户区 2 F8A1~FEFE 658

双字节用户区 3 A140~A7A0 672

GB 18030双字节部分的编码空间结构图 尾字节

0x40larr――rarr0x7E 0x80larr――rarr0xA0 0xA1larr――――――――――――rarr0xFE

0x81 uarr darr

0xA0

0xA1 uarr darr

0xA7

0xA8 0xA9

首字节

0xAA uarr | | | | | | | | | | darr

0xFE

双字节 3区

汉字区6 080个码位

双字节用户区 3

用户自定义区672个码位

双字节 5区 图形符号区192个码位

双字节 4区

汉字区8 160个码位

双字节 1区

图形符号区564个码位

双字节 2区

汉字区6 768个码位

双字节用户区 1 用户自定义区564个码位

双字节用户区 2 用户自定义区658个码位

223 国际通用字符编码

bull Unicode (统一码)是由多语言软件制造商组成的统一码协会( httpwwwUnicodeorg)所制定一种国际字符的编码标准

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull 本节主要介绍这两种关系密切的主流国际字符编码标准的来历编码方案各自特点与相互关系

1 Unicode 统一码bull 发展历史

ndash 1987年施乐( Xerox )公司的 Joe Becker 与 Lee Collins 和苹果( Apple )公司的 Mark Davis 等人开始讨论统一编码 1987年 12月 Joe Becker造词 Unicode (统一码)含义为ldquo unique universal and uniform character encodingrdquo (单一通用统一的字符编码) 1989年 2月开始定期召开统一码会议 1989年 9月公布 Unicode草案

ndash 1991年 1月 3 日由 Xerox Apple Sun IBM Aldis Microsoft 等公司出资在美国加州成立了统一码协会( Unicode Consortium )并由协会设立非盈利性的统一码公司( Unicode Inc )后来 HP Adobe Borland Digital Lotus Novell 等公司也纷纷加入 1991年 1月成立统一码技术委员会 UTC 并制定了其规程

ndash 1991年 2月在 Ed Hart 的推动下进行了ldquo统一码对 10464 国际标准草案 1rdquo 的对话Unicode 与 ISOIEC 10646开始走向融合

ndash 1991年 8月发布 Unicode 标准 10版的第 1卷(体系结构非表意字符) 1992年6月发表 Unicode 10版的第 2卷(表意字符) 1993年 6月发布 Unicode 11版与 1993年 5月公布的 ISOIEC 10646-11993 实现了合并

ndash 1996年 7月发布 Unicode 20版ndash 1999年 9月发布 Unicode 30版ndash 2003年 4月发布 Unicode 40版(对应于 ISOIEC 106462003 ) 2004年 3月 31日发布 Unicode 401版 2005年 3月 31日发布 Unicode 410版

ndash 2006年 7月 14日发布 Unicode 50版 2008年 4月 4日发布 Unicode 51版 2009年 12月 22日发布 Unicode 52版

ndash 2010年 10月发布 Unicode 60版 2012年 1月发布 Unicode 61版(对应于 ISOIEC 106462012 ) 2012年 9月推出 Unicode 62版 2013年 9月推出 Unicode 63版

ndash 2014年 6月 16日发布 Unicode 70版 ndash 2015年 6月 17日发布 Unicode 80版

字符集bull Unicode 字符集的空间分成双字节的基本多语言平面 (Basic Multilingual Pla

ne BMP) 和 4 字节的辅助多语言平面 (Supplementary Multilingual Plane SMP) 两种

bull BMPndash Unicode 的基本平面或基本多语言平面 BMP 对应于 ISOIEC 10646-1 的第 00组的 00 平面( BMP )即 Unicode 与 ISOIEC 10646 的 BMP 中的字符编码完全一致

bull SMPndash 鉴于 Unicode 原有的 16位元空间不足以应用从 Unicode 31版本开始设立了 16 个辅助平面使 Unicode 的可使用空间由六万多字增至约一百万字

ndash 原有的 Unicode双字节空间称为基本平面或基本多语言平面 BMP 辅助多语言平面 SMP 字符要用 4 字节来储存

ndash 第一辅助平面摆放拼音文字(主要为现时已不再使用的文字)及符号范围在 U+10000 - U+1FFFD

ndash 第二辅助平面又称为表意文字补充平面 (Supplementary Ideographic Plane 简称 SIP) 现时摆放ldquo中日韩统汉字扩展 B 区rdquo共 43253 个汉字范围在 U+20000 - U+2FFFD

ndash 第三至十三辅助平面尚未使用ndash 第十四辅助平面又称为特殊用途补充平面 (Supplementary Special-purpose Pl

ane 简称 SSP) 摆放 Language tags 和 Variation Selectors 它们都是控制字符范围在 U+E0000 - U+E01FF

ndash 第十五至十六辅助平面都是私人使用区它们的范围是 U+F0000 - U+FFFFD 及 U+100000 - U+1000FD

bull Unicode 字符集的具体编码方式参加第 4小节ldquo 4 UTFrdquo

2 ISOIEC 10646

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull ISOIEC 10646 标准由 ISO 与 IEC 联合成立的 ISOIEC JTC1SC2WG2 制定ndash JTC 1 ( Joint Technical Committee 1 on Information

technology ISOIEC信息技术联合技术委员会 1 )负责信息技术方面标准的制定工作

ndash SC 2 ( SubCommittee 2 on Coded character sets 编码字符集分会 2 )下的 WG 2 ( Working Group 2 on Universal coded character set 通用编码字符集工作组 2 )负责制定国际通用字符编码标准即后来公布的 ISOIEC 10646

发展历史bull 1984年 ISO 的一些会员国发起制定新的国际字符编码标准同年 4月 ISO

与 IEC 联合成立 ISOIEC JTC1SC2WG2 1987年 3月制定出编码架构1992年 6月投票通过第二版国际标准草案

bull 1993年 5月推出 10646 标准时将内容分成两个部分标准首先发布的是其中的第 1 个部分(体系结构与基本多文种平面)的第 1版( Edition 1 ) ISOIEC 10646-11993 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane(信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

bull 2000年 3月推出 10646 标准第一个部分的第 2版( Edition 2 ) ISOIEC 10646-12000 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane

bull 2001年 10月推出 10646 标准第 2版的第二个部分(辅助平面)的第 1版( Edition 1 ) ISOIEC 10646-22001 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 2 Supplementary Planes

bull 2003年 10月推出的 10646新标准(第 1版 Edition 1 )将老标准中的两个部分标准合并成了一个单一的标准 ISOIEC 106462003 Information technology -- Universal Multiple- Octet Coded Character Set (UCS) 后来又于 2010年 2012年和 2014年分别推出了 ISOIEC 106462010 (第 2版)ISOIEC 106462012 (第 3版)和 ISOIEC 106462014 (第 4版)

UCS 通用字符集bull 通用字符集( Universal Character Set UCS )是

ISOIEC 10646 标准所定义的字符编码方式采用 4字节编码又称为 Universal Multiple-Octet Coded Character Set (通用多八位编码字符集)

bull 通用字符集是所有包括了其他字符集它保证了与其他字符集的双向兼容即如果你将任何文本字符串翻译到 UCS 格式然后再翻译回原编码你不会丢失任何信息

bull UCS 包含了已知语言的所有字符除了拉丁语希腊语斯拉夫语希伯来语阿拉伯语亚美尼亚语格鲁吉亚语还包括中文日文韩文这样的象形文字 UCS 还包括大量的图形印刷数学科学符号

名字与组合字符bull UCS 不仅给每个字符分配一个代码而且赋予了

一个正式的名字表示一个 UCS 或 Unicode值的十六进制数通常在前面加上ldquo U+rdquo 例如ldquo U+0041rdquo代表字符ldquo Ardquo

bull UCS里有些编码点分配给了组合字符组合字符机制允许在任何字符后加上重音符或其他指示标记 这在科学符号中特别有用 比如数学方程式和国际音标字母 可能会需要在一个基本字符后组合上一个或多个指示标记

实现级别bull 并不是所有的系统都需要支持像组合字符这样的的先进

机制因此 ISO 10646 指定了如下三种实现级别ndash 级别 1不支持组合字符和韩语 Hangul Jamo 字符 ( 一种特

别的 更加复杂的韩国文的编码 使用两个或三个子字符来编码一个韩文音节 )

ndash 级别 2类似于级别 1 但在某些文字中允许一列固定的组合字符 (例如 希伯来文 阿拉伯文 Devangari 孟加拉语 果鲁穆奇语 Gujarati Oriya 泰米尔语 Telugo 印 埃纳德语 Malayalam 泰国语和老挝语 ) 因为如果没有最起码的几个组合字符 UCS就不能完整地表达这些语言

ndash 级别 3支持所有的 UCS 字符如可以在任意一个字符上加上一个箭头或 和一个 tilde(颚化符号即字母上面的~ )

编码方式bull UCS 有如下两种编码方式

ndash UCS-2与 Unicode 的 2 字节编码基本一样ndash UCS-4 4 字节编码目前是在 UCS-2 前加

上 2 个全零的字节bull UCS 还有 UTF 编码方式参见下面第 4小节ldquo 4 UTFrdquo

3 Unicode 与 ISOIEC 10646bull 关系

ndash 历史上存在两个独立的尝试创立单一字符集的组织即国际标准化组织( ISO )和多语言软件制造商组成的统一码协会组织( Unicodeorg )前者开发的 ISO 10646项目后者开发的 Unicode项目因此最初制定了不同的标准

ndash 1991年前后两个项目的参与者都认识到世界不需要两个不兼容的字符集于是它们开始合并双方的工作成果并为创立一个单一编码表而协同工作

ndash 从 Unicode20开始 Unicode采用了与 ISO 10646-1相同的字库和字码 ISO 也承诺 ISO10646 将不会替超出 U+10FFFF 的 UCS-4 编码赋值以使得两者保持一致

ndash 两个项目仍都存在并独立地公布各自的标准但 Unicode协会和 ISOIEC JTC1SC2 都同意保持两者标准的码表兼容并紧密地共同调整任何未来的扩展

异同bull Unicode协会公布的 Unicode 标准包含了 ISO 10646-1 实现级别

3 的基本多文种平面在两个标准里所有的字符都在相同的位置并且有相同的名字

bull ISO 10646 标准就像 ISO 8859 标准一样只不过是一个简单的字符集表它定义了一些编码的别名指定了一些与标准有关的术语并包括了规范说明指定了怎样使用 UCS连接其他 ISO 标准的实现等

bull Unicode 标准额外定义了许多与字符有关的语义符号学并详细说明了绘制某些语言(如阿拉伯语)表达形式的算法处理双向文字(比如拉丁文和希伯来文的混合文字)的算法排序与字符串比较所需的算法等等

bull 考虑到 Unicode 标准有一个易记的名字既便宜又包括更多的辅助信息因而它使用得更广泛然而

bull 一般认为用于打印 ISO 10646-1 标准的字体在某些方面的质量要高于用于打印 Unicode 20 的专业字体设计者总是被建议说要两个标准都实现但一些提供的样例字形有显著的区别 ISO 10646-1 标准同样使用四种不同的风格变体来显示表意文字如中文日文和韩文 (CJK) 而 Unicode 20 的表里只有中文的变体

4 UTFbull Unicode 和 UCS 都是一个字符集可以看作为内码bull UTF ( UnicodeUCS Transformation Format 统一码

通用字符集转换格式)是一种编码方式它的出现是因为 Unicode 和 UCS 不适宜在某些场合直接传输和处理

bull UCS 和 Unicode 只是分配整数给字符的编码表现在存在好几种将一串字符表示为一串字节的方法(如高或低位字节在前)

bull 最显而易见的两种方法是将 UCS 和 Unicode 文本存储为 2 个 或 4 个字节序列的串这两种方法的正式名称分别为 UCS-2 和 UCS-4

bull 常用的 UTF具体编码方式有 UTF-8 UTF-16 和 UTF-32

UTF-8

bull UTF-8 是 UTF 的一种具体编码方式在 ISO 10646-1 的附录 R 和 IETF 的 RFC 2279 里定义

bull 由于要使文档中的文字与 ASCII兼容故 UTF-8 选择了使用可变长度字节来储存 Unicode 和 UCS 例如ndash ASCII 字母继续使用 1 字节储存ndash 重音文字希腊字母或西里尔字母等使用 2 字节来储存ndash 常用的汉字就要使用 3 字节ndash 辅助平面字符则使用 4 字节ndash 即 ASCII 不作变换其他字符做变长编码每个字符 1~4 字节

bull UTF-8 通常作为外码bull 在 UTF-8 文件的开首很多时都放置一个 U+FEFF 字符

(UTF-8 以 EF BB BF 代表 ) 以显示这个文字档案是以UTF-8 编码

UTF-8 的优点bull 与 CPU 字节顺序无关可以在不同平台之间交流

bull 容错能力高任何一个字节损坏后最多只会导致一个编码码位损失不会链锁错误 ( 如 GB 码错一个字节就会整行乱码 )

UTF-8 的缺点bull UTF-8 使用可变长度字节储存使计算机程序设计变得复杂 (故此在计算机程序或操作系统内部多采用 UCS-2 编码 )

bull 在旧式的中文日文及朝鲜文编码之中每字符都使用 2 字节储存而 UTF-8 须使用 3 字节 (采用 UTF-16 编码则可只使用 2字节储存 )

bull 泰语以往使用的 ISO 8859-11 每字符只使用 1 字节储存而 UTF-8 须使用 3 字节

UTF-8储存的多字节串字符bull U-00000000 - U-0000007F 0xxxxxxx bull U-00000080 - U-000007FF 110xxxxx 10xxxxxx

bull U-00000800 - U-0000FFFF 1110xxxx 10xxxxxx

10xxxxxx bull U-00010000 - U-001FFFFF 11110xxx 10xxxxx

x 10xxxxxx 10xxxxxx bull 在多字节串中第一个字节的开头ldquo 1rdquo 的数目就

是整个串中字节的数目bull 每个使用 UTF-8储存的字符除了第一个字节外其余字节的头两个位元都是以 10 开始使文字处理器能够较快地找出每个字符的开始位置

UTF-16bull UTF-16 是 UTF 的另一种具体编码方式在 ISO 1064

6-1 的附录 Q 和 IETF 的 RFC 2781 里定义bull UTF-16 是变长码( 2 或 4 字节)大致相当于 20位编码值在 0 到 0x10FFFF 之间基本上就是 Unicode 编码的实现 UTF-16 与 CPU 字序有关但因为最省空间常作为网络传输的外码 UTF-16 是 Unicode 的完美编码

bull lt0x10000 的直接用其对应的 16位整数编码位于 0x10000 ~ 0x10FFFF 之间的用 0xD800~0xDBFF 的 16位整数后跟 0xDC00~0xDFFF 的 16位整数的 4 字节编码 gt 0x10FFFF 的不能用 UTF-16 表示

bull 在 Unicode 的 BMP 中定义的字符(无论是拉丁字母汉字或其他文字或符号)一律使用 2 字节存储而在辅助平面定义的字符则以两个 2 字节的值来存储

UTF-16 的特点bull UTF-16比起 UTF-8 的好处在于大部分字符都以固定长

度的 2 字节存储但 UTF-16却无法相容于 ASCII 编码bull UTF-16 有两种编码模式即大尾序( big Endian 高位字节在前)和小尾序( little Endian 高位字节在后)储存形式(一般來說以 Macintosh 制作和存储的文字使用大尾序格式以 Microsoft 或 Linux 制作和存储的文字使用小尾序格式)

bull 为了弄区分 UTF-16 文件的大小尾序在 UTF-16 文件的开头都会放置一个 U+FEFF 字符作为字节顺序标记 (UTF-16LE 以 FF FE代表 UTF-16BE 以 FE FF代表 ) 以显示该文档是以 UTF-16 编码的

UTF-32

bull UTF-32 仅使用了 Unicode范围 (0 到 0x10FFFF) 的 32位编码相当于 UCS-4 的子集

bull 由于 Unicode 和 ISOIEC 10646 的编码和结构与前面讲过的 GB 13000 类似或等价这里就不再做详细的介绍

5支持bull 现在 UnicodeUCS 已经获得了十分广泛的支

持ndash网络与浏览器(如 HTML 4050 XML 与 IE

Safari Netscape Firefox Chrome Opera Edge 等)

ndash操作系统(如 Windows NT2000XPVista7810 Mac OS X iOS Android和 Linux )

ndash 编程语言新版本(如 CC++JavaObjective-CC Swift 等)

Unicode 代码的浏览器显示代码 字符标准名称 (英语 )

浏览器的显示

amp65 大写拉丁字母 A A

amp223 小写拉丁字母 Sharp S szlig

amp254 小写拉丁字母 Thorn thorn

amp916 大写希腊字母 Delta Δ

amp1049 大写斯拉夫字母 Short I Й

amp1511 希伯来字母 Qof ק

amp1605 阿拉伯字母 Meem م

amp3671 泰文数字 7 ๗amp4688 埃塞俄比亚音节文字 Qha ቐ

amp12354 日语平假名 A あamp12450 日语片假名 A アamp21494 简体汉字 叶 叶amp33865 繁体汉字 葉 葉amp50685 韩国音节文字 Yeob 엽

23 文字输出bull 文字输出是指将计算机内的字符编码通过计算机的输出设备(如显示器打印机喇叭)展现出所对应字符的图形或声音供人们阅读或聆听

bull 本节主要介绍文字图示输出的字形技术bull 文字声音输出属于语音合成只在本节的末尾作简单的介绍

231 字形技术bull 文字 = 图形bull 不论是象形文字中的单字还是拼音文字

中的字母都是用图形来表示的bull 在计算机里文字的表示 输出(显示和打

印)涉及ndash 字型ndash 字体ndash 字库

1字型bull 字型指构造和生成字形的方法一般可分为

ndash 点阵字 DOS 显卡 ROM 金山 科印特点似位图显示快占空间(字库大)放大后有马赛克效应

bull 显示字母 88 汉字 1616bull 打印 2424 4848 6464

ndash 矢量字单线条用于笔式绘图仪特点字库小算法简单难看

ndash 轮廓字用曲线描绘字的轮廓输出效果好所见即所得(WYSWYG) 可无级放大易实现空心 阴影 填充 变形等各种特效功能轮廓曲线一般采用样条曲线如 TrueType (Apple 1991 Mac OS Microsoft 1992 Windows 31)用的是二次 B 样条 Bezier曲线中文之星 RichWin采用的是三次 B 样条 Bezier曲线

字型种类

2字体bull 字体指字的形状风格如

ndash 汉字的

ndash 英文的

宋体楷体黑体仿宋

行楷隶书新魏幼圆

Times New Roman Arial Narrow Courier New

常用汉字字体bull 宋体mdashmdash宋体来自于北宋时雕版刻书所采用的欧体字(唐朝欧阳询体)宋体字的横顿拉捺挑钩别具特色间架平正疏密适中字体秀丽遒劲但笔画横细竖粗适合于刀刻不宜于手写现在宋体广泛用于印刷常来表现文档的正文

bull 仿宋体mdashmdash 1920年钱塘的丁辅之与丁善之等人将明代以后盛行的方廓形字体加以改造创造出长形和方形的聚珍仿宋后来演化为现在的仿宋体仿宋体比较接近于手写体为宋体和楷体的折中是采用的宋体的结构和楷体的笔法而成现常来表现打印文件以及文档的摘要和注释等

bull 黑体mdashmdash黑体是适应工艺美术的发展而出现的一种等线体是从日本引进的黑体的结构与宋体没有什么差别只是其笔画粗细一致健实粗壮主要用于文档的标题和重点及标语广告等方面

bull 楷体mdashmdash楷体源于楷书楷体的笔画圆浑笔调灵活结构端正美观但不宜于木板雕刻所以直到清末西洋的石板印刷术传入后才开始广泛用于印刷现代的楷体创造于 20世纪的二三十年代主要用于文档的正文(多用于中小学教材)也可用于工艺美术等方面

3字库bull 字库为一种文字的某一字体的所有字符的集合一般存放在一个磁盘文件中

bull 由于象形文字中单字的数量大(成千上万)而拼音文字中字母的数量小(不到一百个)所以字库的大小有很大的差别

bull 为了使文档界面丰富多彩常见的字处理软件都支持多种字体带有众多字库

4点阵字型的国家标准bull 我国已经公布了若干字体的点阵字型之国家标准

ndash GB 50071-19852001 信息技术 汉字编码字符集(基本集) 24 点阵字型

ndash GB 50072-19852001 信息技术 汉字编码字符集(辅助集) 24 点阵字型

ndash GB 5199-19862001 信息技术 汉字编码字符集(基本集) 16 点阵字型 宋体

ndash GB 6345-19862001 信息技术 汉字编码字符集(基本集) 32 点阵字型 宋体

ndash GB 12041-2001 信息技术 汉字编码字符集(基本集) 48点阵字型 宋体

ndash GB 17698-1999 信息技术 通用多八位编码字符集( I 区) 汉字 16 点阵字型

232 语音合成bull 文字的声音输出主要使用的是语音合成的技术bull 语音合成功能是ldquo文rarr语rdquo转换bull 文语转换 TTS (Text-To-Speech) 是将文本形式的信息转换成自然语音的一种技术其最终目标是使计算机输出清晰而又自然的声音

bull 英语的语音合成在上世纪 80年代就早已成熟而中文 汉语的合成现在也趋于成熟并有了广泛的应用(如汽车导航仪智能手机等)

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 46: 第一篇  媒体

5少数民族文字编码bull 中国共有 56 个民族除了汉回满族一般使用汉语外其他少数民族大多有自己的民族语言

bull 我国各民族使用的 50 多种文字可以分为字母式结构文字和非字母式结构文字两大类ndash 字母式结构的有拉丁文斯拉夫文蒙古文维吾尔文哈萨克文藏文和朝鲜文等字母式

ndash 非字母式结构的有汉字象形文字图画文字和音节文字等bull 各民族文字的书写方向也有不同

ndash 壮文藏文朝鲜文彝文等的字从左到右行从上到下ndash 维吾尔文哈萨克文和柯尔克孜文等的字从右到左行从上

到下ndash 蒙古文和满文的字从上到下行从左到右ndash 汉字的书写方向有两种

bull 大陆的简体汉字的字从左到右行从上到下bull 港台与古旧书的繁体汉字的字从上到下行从右到左

国家标准bull 下面按发布时间列出若干已经公布的我国少数民族文字

编码集的国家标准(这些字符集一般分成两类对字母式结构文字采用八位编码对非字母式结构文字采用双字节编码)ndash GB 8045-87《信息处理交换用蒙古文七位和八位编码图形字

符集》收 82 个蒙古文字母和 12 个其他符号共 94 个字符ndash GB 12050-89《信息处理交换用维吾尔文编码图形字符集》收 32 个维吾尔文字母一个维吾尔文复合字符和 37 个其他符号共 70 个字符

ndash GB 12052-89《信息交换用朝鲜文编码字符集》收 5297 个朝鲜文字和 682 个其他符号(与 GB 2132同)共 5 979 个字符

ndash GB 13134-91《信息交换用彝文编码字符集》收 1165 个彝文字符和 688 个其他符号共 1853 个字符

ndash GB 16959-1997《信息技术 信息交换用藏文编码字符集 基本集》收 41 个藏文字母 36 个藏文主字 13 个元音字符12 个语音字符 10 个藏文数字 10 个半值符一个控制用连接符和 46 个其他藏文图形符号共 169 个字符

6 GB 13000bull GB 13000 是与 ISOIEC 10646 等价的国际通用编码字符集标准收汉字 2万多个但是与 GB 2312 和 GBK 不兼容

bull 1993年 5月 ISO 与 IEC 联合推出了可用于世界各种文字的通用编码字符集的国际标准的第 1部分ndash ISOIEC 10646-11993 Information technology -- Universal Multiple-Octe

t Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane (信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

ndash 该标准收字符 96万个几乎涵盖世界上的所有文字其中包含汉字 21 003 个

bull 1993年底我国推出了等同于国际标准 ISOIEC 1064611993 的强制性国家标准 ndash GB 130001-93《信息技术 通用多八位编码字符集( UCS ) 第一部分

体系结构与基本多文种平面》ndash 该标准于 1993年 12月 24日被国家技术监督局批准 1994年 8月 1日起实施

GB 13000 的主要特点

bull 世界各语言文种字符统一编码避免冲突便于国际交流

bull 编码空间宽阔连续每个图形字符的编码唯一(一字一码)不再存在兼容性问题

bull 按文种而不是按语言编码避免重复和浪费(如中日韩汉字的统一编码 CJK )

bull 与 GB 2312 和 GBK 不兼容

体系结构bull UCS 的体系结构是基于所谓ldquo多八位rdquo的而ldquo八位rdquo就是一个字节ldquo多八位rdquo就是多个字节

bull UCS采用 4 个字节来表征组面行位的四维空间bull 整个 UCS空间包含 128 个组( 0x00组 ~0x7F组)每组有 256 个平面( 0x00 平面 ~0xFF 平面)每个平面有 256 行每行又由 256 个字位构成

bull UCS共有( 128 times 256 = ) 32 768 个平面每个平面有( 256 times 256 = ) 65 536 个字位每个字位对应于一个字符的编码

bull 目前的编码只限于 00组已经定义的平面有 00组的00 平面mdashmdash称之为基本多文种平面 BMP ( Basic Multilingual Plane ) 及若干辅助平面

UCS 的全部编码空间

每个平面256times256 个

字位

00组 00 平面

00组 FF 平面

01组 00 平面

7F组 00 平面00

01组

7F组

UCS 的 00组

BMPbull BMP = Basic Multilingual Plane 基本多文种平面bull BMP 用作双八位编码字符集称之为 UCS-2 它被

分成四个区ndash A- 区(字位 0x0000~0x4DFF 有 19 903 个字位)用于

字母文字音节文字以及各种符号ndash I- 区(字位 0x4E00~0x9FFF 共 20 992 个字位)用于中日韩统一汉字( CJK )

ndash O- 区(字位 0xA000~0xDFFF 共 16 384 个字位)保留未来标准化用

ndash R- 区(字位 0xE000~0xFFFD 共 8 190 个字位)为 BMP 的限制使用区包括专用字符变形显现形式及兼容字符

BMP总貌

A-区

00~33 拼音文字(见下页)

34~3D 朝鲜文

3E~44 朝鲜文补充 -A

45~4D 朝鲜文补充 -B

I-区 4E~9F CJK统一汉字O-区 A0~DF

R-区

E0~F8 专用区

F9~FA CJK兼容汉字FB 拼音文字变形显现形式

FC~FD 阿拉伯文变形显现形式 -A

FE半形组合用标志

CJK兼容形式

小写变体

阿拉伯文变形显现形式 -B

FF 半形及全形字符 特殊字符

BMP 的0x00~0x33

行字母文字区

00 基本拉丁文 拉丁文-1补充

01 拉丁文扩充-A 拉丁文扩充-B

02 拉丁文扩充-B 国际音标扩充 进格修饰字符

03 组合用发音符 基本希腊文 希腊符号及哥普特文

04 西里尔文

05 美亚尼亚文 希伯来文(基本和扩充)

06 基本阿拉伯文 阿拉伯文扩充

07

08

09 梵文 孟加拉文

0A 锡克教文 古吉拉特文

0B 奥利雅文 泰米尔文

0C 泰卢固文 卡纳达文

0D 德拉维族文

0E 泰文 老挝文

0F

10 格鲁吉亚文

11 朝鲜文字母

12~1D

1E 拉丁文扩充增补

1F 希腊文扩充

20 广义标点 上下标 货币符号 符号组合用区分标志

21 类似字母的符号 数字形式 箭头

22 数学运算符

23 零杂技术用符号

24 控制图符 光学识别符 带括号的字母数字

25 制表符 方块元素 几何图形符

26 零杂符号

27 示意符等

28~2F

30 CJK符号和标点 平假名 片假名

31 注音 朝鲜文兼容字母 CJK零杂字符

32 带括号的CJK字母及月份

33 CJK兼容字符

留作将来标准化用

非图形字符

表示形式bull GB 13000提供了字符编码表示的两种替代使用的形式

ndash 双八位 BMP 形式( UCS-2 )mdashmdash允许使用 BMP 中的字符且每个字符用两个字节表示

ndash 肆八位正则形式( UCS-4 )mdashmdash允许使用 GB 13000 中的全部字符且每个字符用四个字节表示

bull 除了 UCS-24外还有另外两种变形的表示形式ndash UTF-8 (单字节 ~ 多字节)ndash UTF-16 (双字节和 4 字节与 UCS-2 等价)ndash 目前在工业上的实现均为 UTF-16 ( UCS-2 )和 UTF-8ndash UTF = Unicode UCS Transformation Format 统一码 UC

S转换格式bull 关于统一码我们会在下一小节详细介绍

7 GBK 与 GB 18030bull 由于 GB 13000 标准与 GB 2312 标准的字符编码不兼容作为过渡在国家信息技术标准化委员会的主持下制定了与 GB 2312兼容的《汉字内码扩展规范( GBK )》( K 为扩展的ldquo扩rdquo字的拼音首字母)并于 1995年 12月 15日由原国家技术监督局标准司联合原电子工业部科技与质量监督司作为指导性技术规范发布实施

bull 2000年 GBK又被国家标准 GB 18030-2000《信息技术 信息交换用汉字编码字符集 基本集的扩充》所代替该标准收汉字 2万 7千个

bull 与 GB 2312 一样 GB 18030 也为中国的强制性国家标准微软公司的 Windows XPVista78 中文版与苹果公司的 Mac OS X 和 iOS 谷歌公司的 Android (安卓)等操作系统已经全面支持 GBK

GB 18030 的码位范围分布

字节数 码位空间 码位数目

单字节 0x00~0x7F 128

双字节第 1字节 第 2字节

23 9400x81~0xFE

0x40~0x7E 0x80~0xFE

四字节第 1字节 第 2字节 第 3字节 第 4字节

1 587 6000x81~0xFE 0x30~0x39 0x81~0xFE 0x30~0x39

GB 18030的

总体结构图

收录字符bull 单字节部分mdashmdash收录了GBT 11383 的 0x00~0x7F 全部 128 个字符(似 ASCI

I )bull 双字节部分mdashmdash收录内容如下 (21 003 个汉字和 884 个符号共 21 887 个字符 )

ndash GB 130001-93 的全部 CJK 统一汉字字符 20 902 个( GB 2312 的编码汉字在双字节 2 区其他 CJK 统一汉字在双字节 34 区)

ndash GB 130001-93 的 CJK兼容区挑选出来的 21 个汉字ldquo郎凉秊helliphellip﨨﨩rdquo( 0xFD9C~0xFDA0 和 0xFE40~0xFE4F )

ndash GB 130001-93 中收录而 GB 2312未收录的台湾地区使用的图形字符 139 个ldquoˊˋ˙helliphelliprdquo( 0xA840~0xA895 和 0xA940~0XA988 )

ndash GB 130001-93收录的其他字符 31 ( 13)个(在双字节 5 区)ndash GB 2312-80 中的非汉字字符 682 个( 0xA1A1~0xA9EF )ndash GB 12345-90 的竖排标点符号 19 ( 29)个ldquo︵︶︹helliphellip︳︴rdquo( 0xA6D9~0xA6

F5 )ndash GB 2312-80未收录的 10 个小写罗马数字ldquoⅰⅱⅲhelliphellipⅸⅹrdquo( 0xA2A1~ 0xA2A

A )ndash GB 2312-80未收录的带音调的汉语拼音字母 5 ( 4)个ldquo ńňǹrdquo 以及 ɑ 和 ɡ ( 0

xA8BB~0xA8C0 )ndash 汉字数字零ldquo〇rdquo (0xA996) 和欧元符ldquoeurordquo (0xA2E3)ndash 表意文字描述符 13 个ldquohelliphelliprdquo( 0xA989~0xA995 )ndash 对 GB 130001-93增补的汉字和部首 构件 80 个ldquohelliphellip䶮rdquo( 0xFE50~ 0x

FEA0 )bull 四字节部分mdashmdash收录了上述双字节字符之外的包括 CJK 统一汉字扩充 A 在内

的 GB 130001-93 中的全部字符

GB 18030双字节部分的码位安排

类别 区名 码位范围 码位数 字符数 内容

符号区双字节 1区 A1A1~A9FE 846 718

GB 2312非汉字字符等

双字节 5区 A840~A9A0 192 166 台湾图符等

汉字区双字节 2区 B0A1~F7FE 6768 6763 GB 2312汉字双字节 3区 8140~A0FE 6080 6080 CJK统一汉字双字节 4区 AA40~FEA0 8160 8160 CJK统一汉字等

用户自定义区双字节用户区 1 AAA1~AFFE 564

用户自定义字符双字节用户区 2 F8A1~FEFE 658

双字节用户区 3 A140~A7A0 672

GB 18030双字节部分的编码空间结构图 尾字节

0x40larr――rarr0x7E 0x80larr――rarr0xA0 0xA1larr――――――――――――rarr0xFE

0x81 uarr darr

0xA0

0xA1 uarr darr

0xA7

0xA8 0xA9

首字节

0xAA uarr | | | | | | | | | | darr

0xFE

双字节 3区

汉字区6 080个码位

双字节用户区 3

用户自定义区672个码位

双字节 5区 图形符号区192个码位

双字节 4区

汉字区8 160个码位

双字节 1区

图形符号区564个码位

双字节 2区

汉字区6 768个码位

双字节用户区 1 用户自定义区564个码位

双字节用户区 2 用户自定义区658个码位

223 国际通用字符编码

bull Unicode (统一码)是由多语言软件制造商组成的统一码协会( httpwwwUnicodeorg)所制定一种国际字符的编码标准

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull 本节主要介绍这两种关系密切的主流国际字符编码标准的来历编码方案各自特点与相互关系

1 Unicode 统一码bull 发展历史

ndash 1987年施乐( Xerox )公司的 Joe Becker 与 Lee Collins 和苹果( Apple )公司的 Mark Davis 等人开始讨论统一编码 1987年 12月 Joe Becker造词 Unicode (统一码)含义为ldquo unique universal and uniform character encodingrdquo (单一通用统一的字符编码) 1989年 2月开始定期召开统一码会议 1989年 9月公布 Unicode草案

ndash 1991年 1月 3 日由 Xerox Apple Sun IBM Aldis Microsoft 等公司出资在美国加州成立了统一码协会( Unicode Consortium )并由协会设立非盈利性的统一码公司( Unicode Inc )后来 HP Adobe Borland Digital Lotus Novell 等公司也纷纷加入 1991年 1月成立统一码技术委员会 UTC 并制定了其规程

ndash 1991年 2月在 Ed Hart 的推动下进行了ldquo统一码对 10464 国际标准草案 1rdquo 的对话Unicode 与 ISOIEC 10646开始走向融合

ndash 1991年 8月发布 Unicode 标准 10版的第 1卷(体系结构非表意字符) 1992年6月发表 Unicode 10版的第 2卷(表意字符) 1993年 6月发布 Unicode 11版与 1993年 5月公布的 ISOIEC 10646-11993 实现了合并

ndash 1996年 7月发布 Unicode 20版ndash 1999年 9月发布 Unicode 30版ndash 2003年 4月发布 Unicode 40版(对应于 ISOIEC 106462003 ) 2004年 3月 31日发布 Unicode 401版 2005年 3月 31日发布 Unicode 410版

ndash 2006年 7月 14日发布 Unicode 50版 2008年 4月 4日发布 Unicode 51版 2009年 12月 22日发布 Unicode 52版

ndash 2010年 10月发布 Unicode 60版 2012年 1月发布 Unicode 61版(对应于 ISOIEC 106462012 ) 2012年 9月推出 Unicode 62版 2013年 9月推出 Unicode 63版

ndash 2014年 6月 16日发布 Unicode 70版 ndash 2015年 6月 17日发布 Unicode 80版

字符集bull Unicode 字符集的空间分成双字节的基本多语言平面 (Basic Multilingual Pla

ne BMP) 和 4 字节的辅助多语言平面 (Supplementary Multilingual Plane SMP) 两种

bull BMPndash Unicode 的基本平面或基本多语言平面 BMP 对应于 ISOIEC 10646-1 的第 00组的 00 平面( BMP )即 Unicode 与 ISOIEC 10646 的 BMP 中的字符编码完全一致

bull SMPndash 鉴于 Unicode 原有的 16位元空间不足以应用从 Unicode 31版本开始设立了 16 个辅助平面使 Unicode 的可使用空间由六万多字增至约一百万字

ndash 原有的 Unicode双字节空间称为基本平面或基本多语言平面 BMP 辅助多语言平面 SMP 字符要用 4 字节来储存

ndash 第一辅助平面摆放拼音文字(主要为现时已不再使用的文字)及符号范围在 U+10000 - U+1FFFD

ndash 第二辅助平面又称为表意文字补充平面 (Supplementary Ideographic Plane 简称 SIP) 现时摆放ldquo中日韩统汉字扩展 B 区rdquo共 43253 个汉字范围在 U+20000 - U+2FFFD

ndash 第三至十三辅助平面尚未使用ndash 第十四辅助平面又称为特殊用途补充平面 (Supplementary Special-purpose Pl

ane 简称 SSP) 摆放 Language tags 和 Variation Selectors 它们都是控制字符范围在 U+E0000 - U+E01FF

ndash 第十五至十六辅助平面都是私人使用区它们的范围是 U+F0000 - U+FFFFD 及 U+100000 - U+1000FD

bull Unicode 字符集的具体编码方式参加第 4小节ldquo 4 UTFrdquo

2 ISOIEC 10646

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull ISOIEC 10646 标准由 ISO 与 IEC 联合成立的 ISOIEC JTC1SC2WG2 制定ndash JTC 1 ( Joint Technical Committee 1 on Information

technology ISOIEC信息技术联合技术委员会 1 )负责信息技术方面标准的制定工作

ndash SC 2 ( SubCommittee 2 on Coded character sets 编码字符集分会 2 )下的 WG 2 ( Working Group 2 on Universal coded character set 通用编码字符集工作组 2 )负责制定国际通用字符编码标准即后来公布的 ISOIEC 10646

发展历史bull 1984年 ISO 的一些会员国发起制定新的国际字符编码标准同年 4月 ISO

与 IEC 联合成立 ISOIEC JTC1SC2WG2 1987年 3月制定出编码架构1992年 6月投票通过第二版国际标准草案

bull 1993年 5月推出 10646 标准时将内容分成两个部分标准首先发布的是其中的第 1 个部分(体系结构与基本多文种平面)的第 1版( Edition 1 ) ISOIEC 10646-11993 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane(信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

bull 2000年 3月推出 10646 标准第一个部分的第 2版( Edition 2 ) ISOIEC 10646-12000 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane

bull 2001年 10月推出 10646 标准第 2版的第二个部分(辅助平面)的第 1版( Edition 1 ) ISOIEC 10646-22001 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 2 Supplementary Planes

bull 2003年 10月推出的 10646新标准(第 1版 Edition 1 )将老标准中的两个部分标准合并成了一个单一的标准 ISOIEC 106462003 Information technology -- Universal Multiple- Octet Coded Character Set (UCS) 后来又于 2010年 2012年和 2014年分别推出了 ISOIEC 106462010 (第 2版)ISOIEC 106462012 (第 3版)和 ISOIEC 106462014 (第 4版)

UCS 通用字符集bull 通用字符集( Universal Character Set UCS )是

ISOIEC 10646 标准所定义的字符编码方式采用 4字节编码又称为 Universal Multiple-Octet Coded Character Set (通用多八位编码字符集)

bull 通用字符集是所有包括了其他字符集它保证了与其他字符集的双向兼容即如果你将任何文本字符串翻译到 UCS 格式然后再翻译回原编码你不会丢失任何信息

bull UCS 包含了已知语言的所有字符除了拉丁语希腊语斯拉夫语希伯来语阿拉伯语亚美尼亚语格鲁吉亚语还包括中文日文韩文这样的象形文字 UCS 还包括大量的图形印刷数学科学符号

名字与组合字符bull UCS 不仅给每个字符分配一个代码而且赋予了

一个正式的名字表示一个 UCS 或 Unicode值的十六进制数通常在前面加上ldquo U+rdquo 例如ldquo U+0041rdquo代表字符ldquo Ardquo

bull UCS里有些编码点分配给了组合字符组合字符机制允许在任何字符后加上重音符或其他指示标记 这在科学符号中特别有用 比如数学方程式和国际音标字母 可能会需要在一个基本字符后组合上一个或多个指示标记

实现级别bull 并不是所有的系统都需要支持像组合字符这样的的先进

机制因此 ISO 10646 指定了如下三种实现级别ndash 级别 1不支持组合字符和韩语 Hangul Jamo 字符 ( 一种特

别的 更加复杂的韩国文的编码 使用两个或三个子字符来编码一个韩文音节 )

ndash 级别 2类似于级别 1 但在某些文字中允许一列固定的组合字符 (例如 希伯来文 阿拉伯文 Devangari 孟加拉语 果鲁穆奇语 Gujarati Oriya 泰米尔语 Telugo 印 埃纳德语 Malayalam 泰国语和老挝语 ) 因为如果没有最起码的几个组合字符 UCS就不能完整地表达这些语言

ndash 级别 3支持所有的 UCS 字符如可以在任意一个字符上加上一个箭头或 和一个 tilde(颚化符号即字母上面的~ )

编码方式bull UCS 有如下两种编码方式

ndash UCS-2与 Unicode 的 2 字节编码基本一样ndash UCS-4 4 字节编码目前是在 UCS-2 前加

上 2 个全零的字节bull UCS 还有 UTF 编码方式参见下面第 4小节ldquo 4 UTFrdquo

3 Unicode 与 ISOIEC 10646bull 关系

ndash 历史上存在两个独立的尝试创立单一字符集的组织即国际标准化组织( ISO )和多语言软件制造商组成的统一码协会组织( Unicodeorg )前者开发的 ISO 10646项目后者开发的 Unicode项目因此最初制定了不同的标准

ndash 1991年前后两个项目的参与者都认识到世界不需要两个不兼容的字符集于是它们开始合并双方的工作成果并为创立一个单一编码表而协同工作

ndash 从 Unicode20开始 Unicode采用了与 ISO 10646-1相同的字库和字码 ISO 也承诺 ISO10646 将不会替超出 U+10FFFF 的 UCS-4 编码赋值以使得两者保持一致

ndash 两个项目仍都存在并独立地公布各自的标准但 Unicode协会和 ISOIEC JTC1SC2 都同意保持两者标准的码表兼容并紧密地共同调整任何未来的扩展

异同bull Unicode协会公布的 Unicode 标准包含了 ISO 10646-1 实现级别

3 的基本多文种平面在两个标准里所有的字符都在相同的位置并且有相同的名字

bull ISO 10646 标准就像 ISO 8859 标准一样只不过是一个简单的字符集表它定义了一些编码的别名指定了一些与标准有关的术语并包括了规范说明指定了怎样使用 UCS连接其他 ISO 标准的实现等

bull Unicode 标准额外定义了许多与字符有关的语义符号学并详细说明了绘制某些语言(如阿拉伯语)表达形式的算法处理双向文字(比如拉丁文和希伯来文的混合文字)的算法排序与字符串比较所需的算法等等

bull 考虑到 Unicode 标准有一个易记的名字既便宜又包括更多的辅助信息因而它使用得更广泛然而

bull 一般认为用于打印 ISO 10646-1 标准的字体在某些方面的质量要高于用于打印 Unicode 20 的专业字体设计者总是被建议说要两个标准都实现但一些提供的样例字形有显著的区别 ISO 10646-1 标准同样使用四种不同的风格变体来显示表意文字如中文日文和韩文 (CJK) 而 Unicode 20 的表里只有中文的变体

4 UTFbull Unicode 和 UCS 都是一个字符集可以看作为内码bull UTF ( UnicodeUCS Transformation Format 统一码

通用字符集转换格式)是一种编码方式它的出现是因为 Unicode 和 UCS 不适宜在某些场合直接传输和处理

bull UCS 和 Unicode 只是分配整数给字符的编码表现在存在好几种将一串字符表示为一串字节的方法(如高或低位字节在前)

bull 最显而易见的两种方法是将 UCS 和 Unicode 文本存储为 2 个 或 4 个字节序列的串这两种方法的正式名称分别为 UCS-2 和 UCS-4

bull 常用的 UTF具体编码方式有 UTF-8 UTF-16 和 UTF-32

UTF-8

bull UTF-8 是 UTF 的一种具体编码方式在 ISO 10646-1 的附录 R 和 IETF 的 RFC 2279 里定义

bull 由于要使文档中的文字与 ASCII兼容故 UTF-8 选择了使用可变长度字节来储存 Unicode 和 UCS 例如ndash ASCII 字母继续使用 1 字节储存ndash 重音文字希腊字母或西里尔字母等使用 2 字节来储存ndash 常用的汉字就要使用 3 字节ndash 辅助平面字符则使用 4 字节ndash 即 ASCII 不作变换其他字符做变长编码每个字符 1~4 字节

bull UTF-8 通常作为外码bull 在 UTF-8 文件的开首很多时都放置一个 U+FEFF 字符

(UTF-8 以 EF BB BF 代表 ) 以显示这个文字档案是以UTF-8 编码

UTF-8 的优点bull 与 CPU 字节顺序无关可以在不同平台之间交流

bull 容错能力高任何一个字节损坏后最多只会导致一个编码码位损失不会链锁错误 ( 如 GB 码错一个字节就会整行乱码 )

UTF-8 的缺点bull UTF-8 使用可变长度字节储存使计算机程序设计变得复杂 (故此在计算机程序或操作系统内部多采用 UCS-2 编码 )

bull 在旧式的中文日文及朝鲜文编码之中每字符都使用 2 字节储存而 UTF-8 须使用 3 字节 (采用 UTF-16 编码则可只使用 2字节储存 )

bull 泰语以往使用的 ISO 8859-11 每字符只使用 1 字节储存而 UTF-8 须使用 3 字节

UTF-8储存的多字节串字符bull U-00000000 - U-0000007F 0xxxxxxx bull U-00000080 - U-000007FF 110xxxxx 10xxxxxx

bull U-00000800 - U-0000FFFF 1110xxxx 10xxxxxx

10xxxxxx bull U-00010000 - U-001FFFFF 11110xxx 10xxxxx

x 10xxxxxx 10xxxxxx bull 在多字节串中第一个字节的开头ldquo 1rdquo 的数目就

是整个串中字节的数目bull 每个使用 UTF-8储存的字符除了第一个字节外其余字节的头两个位元都是以 10 开始使文字处理器能够较快地找出每个字符的开始位置

UTF-16bull UTF-16 是 UTF 的另一种具体编码方式在 ISO 1064

6-1 的附录 Q 和 IETF 的 RFC 2781 里定义bull UTF-16 是变长码( 2 或 4 字节)大致相当于 20位编码值在 0 到 0x10FFFF 之间基本上就是 Unicode 编码的实现 UTF-16 与 CPU 字序有关但因为最省空间常作为网络传输的外码 UTF-16 是 Unicode 的完美编码

bull lt0x10000 的直接用其对应的 16位整数编码位于 0x10000 ~ 0x10FFFF 之间的用 0xD800~0xDBFF 的 16位整数后跟 0xDC00~0xDFFF 的 16位整数的 4 字节编码 gt 0x10FFFF 的不能用 UTF-16 表示

bull 在 Unicode 的 BMP 中定义的字符(无论是拉丁字母汉字或其他文字或符号)一律使用 2 字节存储而在辅助平面定义的字符则以两个 2 字节的值来存储

UTF-16 的特点bull UTF-16比起 UTF-8 的好处在于大部分字符都以固定长

度的 2 字节存储但 UTF-16却无法相容于 ASCII 编码bull UTF-16 有两种编码模式即大尾序( big Endian 高位字节在前)和小尾序( little Endian 高位字节在后)储存形式(一般來說以 Macintosh 制作和存储的文字使用大尾序格式以 Microsoft 或 Linux 制作和存储的文字使用小尾序格式)

bull 为了弄区分 UTF-16 文件的大小尾序在 UTF-16 文件的开头都会放置一个 U+FEFF 字符作为字节顺序标记 (UTF-16LE 以 FF FE代表 UTF-16BE 以 FE FF代表 ) 以显示该文档是以 UTF-16 编码的

UTF-32

bull UTF-32 仅使用了 Unicode范围 (0 到 0x10FFFF) 的 32位编码相当于 UCS-4 的子集

bull 由于 Unicode 和 ISOIEC 10646 的编码和结构与前面讲过的 GB 13000 类似或等价这里就不再做详细的介绍

5支持bull 现在 UnicodeUCS 已经获得了十分广泛的支

持ndash网络与浏览器(如 HTML 4050 XML 与 IE

Safari Netscape Firefox Chrome Opera Edge 等)

ndash操作系统(如 Windows NT2000XPVista7810 Mac OS X iOS Android和 Linux )

ndash 编程语言新版本(如 CC++JavaObjective-CC Swift 等)

Unicode 代码的浏览器显示代码 字符标准名称 (英语 )

浏览器的显示

amp65 大写拉丁字母 A A

amp223 小写拉丁字母 Sharp S szlig

amp254 小写拉丁字母 Thorn thorn

amp916 大写希腊字母 Delta Δ

amp1049 大写斯拉夫字母 Short I Й

amp1511 希伯来字母 Qof ק

amp1605 阿拉伯字母 Meem م

amp3671 泰文数字 7 ๗amp4688 埃塞俄比亚音节文字 Qha ቐ

amp12354 日语平假名 A あamp12450 日语片假名 A アamp21494 简体汉字 叶 叶amp33865 繁体汉字 葉 葉amp50685 韩国音节文字 Yeob 엽

23 文字输出bull 文字输出是指将计算机内的字符编码通过计算机的输出设备(如显示器打印机喇叭)展现出所对应字符的图形或声音供人们阅读或聆听

bull 本节主要介绍文字图示输出的字形技术bull 文字声音输出属于语音合成只在本节的末尾作简单的介绍

231 字形技术bull 文字 = 图形bull 不论是象形文字中的单字还是拼音文字

中的字母都是用图形来表示的bull 在计算机里文字的表示 输出(显示和打

印)涉及ndash 字型ndash 字体ndash 字库

1字型bull 字型指构造和生成字形的方法一般可分为

ndash 点阵字 DOS 显卡 ROM 金山 科印特点似位图显示快占空间(字库大)放大后有马赛克效应

bull 显示字母 88 汉字 1616bull 打印 2424 4848 6464

ndash 矢量字单线条用于笔式绘图仪特点字库小算法简单难看

ndash 轮廓字用曲线描绘字的轮廓输出效果好所见即所得(WYSWYG) 可无级放大易实现空心 阴影 填充 变形等各种特效功能轮廓曲线一般采用样条曲线如 TrueType (Apple 1991 Mac OS Microsoft 1992 Windows 31)用的是二次 B 样条 Bezier曲线中文之星 RichWin采用的是三次 B 样条 Bezier曲线

字型种类

2字体bull 字体指字的形状风格如

ndash 汉字的

ndash 英文的

宋体楷体黑体仿宋

行楷隶书新魏幼圆

Times New Roman Arial Narrow Courier New

常用汉字字体bull 宋体mdashmdash宋体来自于北宋时雕版刻书所采用的欧体字(唐朝欧阳询体)宋体字的横顿拉捺挑钩别具特色间架平正疏密适中字体秀丽遒劲但笔画横细竖粗适合于刀刻不宜于手写现在宋体广泛用于印刷常来表现文档的正文

bull 仿宋体mdashmdash 1920年钱塘的丁辅之与丁善之等人将明代以后盛行的方廓形字体加以改造创造出长形和方形的聚珍仿宋后来演化为现在的仿宋体仿宋体比较接近于手写体为宋体和楷体的折中是采用的宋体的结构和楷体的笔法而成现常来表现打印文件以及文档的摘要和注释等

bull 黑体mdashmdash黑体是适应工艺美术的发展而出现的一种等线体是从日本引进的黑体的结构与宋体没有什么差别只是其笔画粗细一致健实粗壮主要用于文档的标题和重点及标语广告等方面

bull 楷体mdashmdash楷体源于楷书楷体的笔画圆浑笔调灵活结构端正美观但不宜于木板雕刻所以直到清末西洋的石板印刷术传入后才开始广泛用于印刷现代的楷体创造于 20世纪的二三十年代主要用于文档的正文(多用于中小学教材)也可用于工艺美术等方面

3字库bull 字库为一种文字的某一字体的所有字符的集合一般存放在一个磁盘文件中

bull 由于象形文字中单字的数量大(成千上万)而拼音文字中字母的数量小(不到一百个)所以字库的大小有很大的差别

bull 为了使文档界面丰富多彩常见的字处理软件都支持多种字体带有众多字库

4点阵字型的国家标准bull 我国已经公布了若干字体的点阵字型之国家标准

ndash GB 50071-19852001 信息技术 汉字编码字符集(基本集) 24 点阵字型

ndash GB 50072-19852001 信息技术 汉字编码字符集(辅助集) 24 点阵字型

ndash GB 5199-19862001 信息技术 汉字编码字符集(基本集) 16 点阵字型 宋体

ndash GB 6345-19862001 信息技术 汉字编码字符集(基本集) 32 点阵字型 宋体

ndash GB 12041-2001 信息技术 汉字编码字符集(基本集) 48点阵字型 宋体

ndash GB 17698-1999 信息技术 通用多八位编码字符集( I 区) 汉字 16 点阵字型

232 语音合成bull 文字的声音输出主要使用的是语音合成的技术bull 语音合成功能是ldquo文rarr语rdquo转换bull 文语转换 TTS (Text-To-Speech) 是将文本形式的信息转换成自然语音的一种技术其最终目标是使计算机输出清晰而又自然的声音

bull 英语的语音合成在上世纪 80年代就早已成熟而中文 汉语的合成现在也趋于成熟并有了广泛的应用(如汽车导航仪智能手机等)

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 47: 第一篇  媒体

国家标准bull 下面按发布时间列出若干已经公布的我国少数民族文字

编码集的国家标准(这些字符集一般分成两类对字母式结构文字采用八位编码对非字母式结构文字采用双字节编码)ndash GB 8045-87《信息处理交换用蒙古文七位和八位编码图形字

符集》收 82 个蒙古文字母和 12 个其他符号共 94 个字符ndash GB 12050-89《信息处理交换用维吾尔文编码图形字符集》收 32 个维吾尔文字母一个维吾尔文复合字符和 37 个其他符号共 70 个字符

ndash GB 12052-89《信息交换用朝鲜文编码字符集》收 5297 个朝鲜文字和 682 个其他符号(与 GB 2132同)共 5 979 个字符

ndash GB 13134-91《信息交换用彝文编码字符集》收 1165 个彝文字符和 688 个其他符号共 1853 个字符

ndash GB 16959-1997《信息技术 信息交换用藏文编码字符集 基本集》收 41 个藏文字母 36 个藏文主字 13 个元音字符12 个语音字符 10 个藏文数字 10 个半值符一个控制用连接符和 46 个其他藏文图形符号共 169 个字符

6 GB 13000bull GB 13000 是与 ISOIEC 10646 等价的国际通用编码字符集标准收汉字 2万多个但是与 GB 2312 和 GBK 不兼容

bull 1993年 5月 ISO 与 IEC 联合推出了可用于世界各种文字的通用编码字符集的国际标准的第 1部分ndash ISOIEC 10646-11993 Information technology -- Universal Multiple-Octe

t Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane (信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

ndash 该标准收字符 96万个几乎涵盖世界上的所有文字其中包含汉字 21 003 个

bull 1993年底我国推出了等同于国际标准 ISOIEC 1064611993 的强制性国家标准 ndash GB 130001-93《信息技术 通用多八位编码字符集( UCS ) 第一部分

体系结构与基本多文种平面》ndash 该标准于 1993年 12月 24日被国家技术监督局批准 1994年 8月 1日起实施

GB 13000 的主要特点

bull 世界各语言文种字符统一编码避免冲突便于国际交流

bull 编码空间宽阔连续每个图形字符的编码唯一(一字一码)不再存在兼容性问题

bull 按文种而不是按语言编码避免重复和浪费(如中日韩汉字的统一编码 CJK )

bull 与 GB 2312 和 GBK 不兼容

体系结构bull UCS 的体系结构是基于所谓ldquo多八位rdquo的而ldquo八位rdquo就是一个字节ldquo多八位rdquo就是多个字节

bull UCS采用 4 个字节来表征组面行位的四维空间bull 整个 UCS空间包含 128 个组( 0x00组 ~0x7F组)每组有 256 个平面( 0x00 平面 ~0xFF 平面)每个平面有 256 行每行又由 256 个字位构成

bull UCS共有( 128 times 256 = ) 32 768 个平面每个平面有( 256 times 256 = ) 65 536 个字位每个字位对应于一个字符的编码

bull 目前的编码只限于 00组已经定义的平面有 00组的00 平面mdashmdash称之为基本多文种平面 BMP ( Basic Multilingual Plane ) 及若干辅助平面

UCS 的全部编码空间

每个平面256times256 个

字位

00组 00 平面

00组 FF 平面

01组 00 平面

7F组 00 平面00

01组

7F组

UCS 的 00组

BMPbull BMP = Basic Multilingual Plane 基本多文种平面bull BMP 用作双八位编码字符集称之为 UCS-2 它被

分成四个区ndash A- 区(字位 0x0000~0x4DFF 有 19 903 个字位)用于

字母文字音节文字以及各种符号ndash I- 区(字位 0x4E00~0x9FFF 共 20 992 个字位)用于中日韩统一汉字( CJK )

ndash O- 区(字位 0xA000~0xDFFF 共 16 384 个字位)保留未来标准化用

ndash R- 区(字位 0xE000~0xFFFD 共 8 190 个字位)为 BMP 的限制使用区包括专用字符变形显现形式及兼容字符

BMP总貌

A-区

00~33 拼音文字(见下页)

34~3D 朝鲜文

3E~44 朝鲜文补充 -A

45~4D 朝鲜文补充 -B

I-区 4E~9F CJK统一汉字O-区 A0~DF

R-区

E0~F8 专用区

F9~FA CJK兼容汉字FB 拼音文字变形显现形式

FC~FD 阿拉伯文变形显现形式 -A

FE半形组合用标志

CJK兼容形式

小写变体

阿拉伯文变形显现形式 -B

FF 半形及全形字符 特殊字符

BMP 的0x00~0x33

行字母文字区

00 基本拉丁文 拉丁文-1补充

01 拉丁文扩充-A 拉丁文扩充-B

02 拉丁文扩充-B 国际音标扩充 进格修饰字符

03 组合用发音符 基本希腊文 希腊符号及哥普特文

04 西里尔文

05 美亚尼亚文 希伯来文(基本和扩充)

06 基本阿拉伯文 阿拉伯文扩充

07

08

09 梵文 孟加拉文

0A 锡克教文 古吉拉特文

0B 奥利雅文 泰米尔文

0C 泰卢固文 卡纳达文

0D 德拉维族文

0E 泰文 老挝文

0F

10 格鲁吉亚文

11 朝鲜文字母

12~1D

1E 拉丁文扩充增补

1F 希腊文扩充

20 广义标点 上下标 货币符号 符号组合用区分标志

21 类似字母的符号 数字形式 箭头

22 数学运算符

23 零杂技术用符号

24 控制图符 光学识别符 带括号的字母数字

25 制表符 方块元素 几何图形符

26 零杂符号

27 示意符等

28~2F

30 CJK符号和标点 平假名 片假名

31 注音 朝鲜文兼容字母 CJK零杂字符

32 带括号的CJK字母及月份

33 CJK兼容字符

留作将来标准化用

非图形字符

表示形式bull GB 13000提供了字符编码表示的两种替代使用的形式

ndash 双八位 BMP 形式( UCS-2 )mdashmdash允许使用 BMP 中的字符且每个字符用两个字节表示

ndash 肆八位正则形式( UCS-4 )mdashmdash允许使用 GB 13000 中的全部字符且每个字符用四个字节表示

bull 除了 UCS-24外还有另外两种变形的表示形式ndash UTF-8 (单字节 ~ 多字节)ndash UTF-16 (双字节和 4 字节与 UCS-2 等价)ndash 目前在工业上的实现均为 UTF-16 ( UCS-2 )和 UTF-8ndash UTF = Unicode UCS Transformation Format 统一码 UC

S转换格式bull 关于统一码我们会在下一小节详细介绍

7 GBK 与 GB 18030bull 由于 GB 13000 标准与 GB 2312 标准的字符编码不兼容作为过渡在国家信息技术标准化委员会的主持下制定了与 GB 2312兼容的《汉字内码扩展规范( GBK )》( K 为扩展的ldquo扩rdquo字的拼音首字母)并于 1995年 12月 15日由原国家技术监督局标准司联合原电子工业部科技与质量监督司作为指导性技术规范发布实施

bull 2000年 GBK又被国家标准 GB 18030-2000《信息技术 信息交换用汉字编码字符集 基本集的扩充》所代替该标准收汉字 2万 7千个

bull 与 GB 2312 一样 GB 18030 也为中国的强制性国家标准微软公司的 Windows XPVista78 中文版与苹果公司的 Mac OS X 和 iOS 谷歌公司的 Android (安卓)等操作系统已经全面支持 GBK

GB 18030 的码位范围分布

字节数 码位空间 码位数目

单字节 0x00~0x7F 128

双字节第 1字节 第 2字节

23 9400x81~0xFE

0x40~0x7E 0x80~0xFE

四字节第 1字节 第 2字节 第 3字节 第 4字节

1 587 6000x81~0xFE 0x30~0x39 0x81~0xFE 0x30~0x39

GB 18030的

总体结构图

收录字符bull 单字节部分mdashmdash收录了GBT 11383 的 0x00~0x7F 全部 128 个字符(似 ASCI

I )bull 双字节部分mdashmdash收录内容如下 (21 003 个汉字和 884 个符号共 21 887 个字符 )

ndash GB 130001-93 的全部 CJK 统一汉字字符 20 902 个( GB 2312 的编码汉字在双字节 2 区其他 CJK 统一汉字在双字节 34 区)

ndash GB 130001-93 的 CJK兼容区挑选出来的 21 个汉字ldquo郎凉秊helliphellip﨨﨩rdquo( 0xFD9C~0xFDA0 和 0xFE40~0xFE4F )

ndash GB 130001-93 中收录而 GB 2312未收录的台湾地区使用的图形字符 139 个ldquoˊˋ˙helliphelliprdquo( 0xA840~0xA895 和 0xA940~0XA988 )

ndash GB 130001-93收录的其他字符 31 ( 13)个(在双字节 5 区)ndash GB 2312-80 中的非汉字字符 682 个( 0xA1A1~0xA9EF )ndash GB 12345-90 的竖排标点符号 19 ( 29)个ldquo︵︶︹helliphellip︳︴rdquo( 0xA6D9~0xA6

F5 )ndash GB 2312-80未收录的 10 个小写罗马数字ldquoⅰⅱⅲhelliphellipⅸⅹrdquo( 0xA2A1~ 0xA2A

A )ndash GB 2312-80未收录的带音调的汉语拼音字母 5 ( 4)个ldquo ńňǹrdquo 以及 ɑ 和 ɡ ( 0

xA8BB~0xA8C0 )ndash 汉字数字零ldquo〇rdquo (0xA996) 和欧元符ldquoeurordquo (0xA2E3)ndash 表意文字描述符 13 个ldquohelliphelliprdquo( 0xA989~0xA995 )ndash 对 GB 130001-93增补的汉字和部首 构件 80 个ldquohelliphellip䶮rdquo( 0xFE50~ 0x

FEA0 )bull 四字节部分mdashmdash收录了上述双字节字符之外的包括 CJK 统一汉字扩充 A 在内

的 GB 130001-93 中的全部字符

GB 18030双字节部分的码位安排

类别 区名 码位范围 码位数 字符数 内容

符号区双字节 1区 A1A1~A9FE 846 718

GB 2312非汉字字符等

双字节 5区 A840~A9A0 192 166 台湾图符等

汉字区双字节 2区 B0A1~F7FE 6768 6763 GB 2312汉字双字节 3区 8140~A0FE 6080 6080 CJK统一汉字双字节 4区 AA40~FEA0 8160 8160 CJK统一汉字等

用户自定义区双字节用户区 1 AAA1~AFFE 564

用户自定义字符双字节用户区 2 F8A1~FEFE 658

双字节用户区 3 A140~A7A0 672

GB 18030双字节部分的编码空间结构图 尾字节

0x40larr――rarr0x7E 0x80larr――rarr0xA0 0xA1larr――――――――――――rarr0xFE

0x81 uarr darr

0xA0

0xA1 uarr darr

0xA7

0xA8 0xA9

首字节

0xAA uarr | | | | | | | | | | darr

0xFE

双字节 3区

汉字区6 080个码位

双字节用户区 3

用户自定义区672个码位

双字节 5区 图形符号区192个码位

双字节 4区

汉字区8 160个码位

双字节 1区

图形符号区564个码位

双字节 2区

汉字区6 768个码位

双字节用户区 1 用户自定义区564个码位

双字节用户区 2 用户自定义区658个码位

223 国际通用字符编码

bull Unicode (统一码)是由多语言软件制造商组成的统一码协会( httpwwwUnicodeorg)所制定一种国际字符的编码标准

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull 本节主要介绍这两种关系密切的主流国际字符编码标准的来历编码方案各自特点与相互关系

1 Unicode 统一码bull 发展历史

ndash 1987年施乐( Xerox )公司的 Joe Becker 与 Lee Collins 和苹果( Apple )公司的 Mark Davis 等人开始讨论统一编码 1987年 12月 Joe Becker造词 Unicode (统一码)含义为ldquo unique universal and uniform character encodingrdquo (单一通用统一的字符编码) 1989年 2月开始定期召开统一码会议 1989年 9月公布 Unicode草案

ndash 1991年 1月 3 日由 Xerox Apple Sun IBM Aldis Microsoft 等公司出资在美国加州成立了统一码协会( Unicode Consortium )并由协会设立非盈利性的统一码公司( Unicode Inc )后来 HP Adobe Borland Digital Lotus Novell 等公司也纷纷加入 1991年 1月成立统一码技术委员会 UTC 并制定了其规程

ndash 1991年 2月在 Ed Hart 的推动下进行了ldquo统一码对 10464 国际标准草案 1rdquo 的对话Unicode 与 ISOIEC 10646开始走向融合

ndash 1991年 8月发布 Unicode 标准 10版的第 1卷(体系结构非表意字符) 1992年6月发表 Unicode 10版的第 2卷(表意字符) 1993年 6月发布 Unicode 11版与 1993年 5月公布的 ISOIEC 10646-11993 实现了合并

ndash 1996年 7月发布 Unicode 20版ndash 1999年 9月发布 Unicode 30版ndash 2003年 4月发布 Unicode 40版(对应于 ISOIEC 106462003 ) 2004年 3月 31日发布 Unicode 401版 2005年 3月 31日发布 Unicode 410版

ndash 2006年 7月 14日发布 Unicode 50版 2008年 4月 4日发布 Unicode 51版 2009年 12月 22日发布 Unicode 52版

ndash 2010年 10月发布 Unicode 60版 2012年 1月发布 Unicode 61版(对应于 ISOIEC 106462012 ) 2012年 9月推出 Unicode 62版 2013年 9月推出 Unicode 63版

ndash 2014年 6月 16日发布 Unicode 70版 ndash 2015年 6月 17日发布 Unicode 80版

字符集bull Unicode 字符集的空间分成双字节的基本多语言平面 (Basic Multilingual Pla

ne BMP) 和 4 字节的辅助多语言平面 (Supplementary Multilingual Plane SMP) 两种

bull BMPndash Unicode 的基本平面或基本多语言平面 BMP 对应于 ISOIEC 10646-1 的第 00组的 00 平面( BMP )即 Unicode 与 ISOIEC 10646 的 BMP 中的字符编码完全一致

bull SMPndash 鉴于 Unicode 原有的 16位元空间不足以应用从 Unicode 31版本开始设立了 16 个辅助平面使 Unicode 的可使用空间由六万多字增至约一百万字

ndash 原有的 Unicode双字节空间称为基本平面或基本多语言平面 BMP 辅助多语言平面 SMP 字符要用 4 字节来储存

ndash 第一辅助平面摆放拼音文字(主要为现时已不再使用的文字)及符号范围在 U+10000 - U+1FFFD

ndash 第二辅助平面又称为表意文字补充平面 (Supplementary Ideographic Plane 简称 SIP) 现时摆放ldquo中日韩统汉字扩展 B 区rdquo共 43253 个汉字范围在 U+20000 - U+2FFFD

ndash 第三至十三辅助平面尚未使用ndash 第十四辅助平面又称为特殊用途补充平面 (Supplementary Special-purpose Pl

ane 简称 SSP) 摆放 Language tags 和 Variation Selectors 它们都是控制字符范围在 U+E0000 - U+E01FF

ndash 第十五至十六辅助平面都是私人使用区它们的范围是 U+F0000 - U+FFFFD 及 U+100000 - U+1000FD

bull Unicode 字符集的具体编码方式参加第 4小节ldquo 4 UTFrdquo

2 ISOIEC 10646

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull ISOIEC 10646 标准由 ISO 与 IEC 联合成立的 ISOIEC JTC1SC2WG2 制定ndash JTC 1 ( Joint Technical Committee 1 on Information

technology ISOIEC信息技术联合技术委员会 1 )负责信息技术方面标准的制定工作

ndash SC 2 ( SubCommittee 2 on Coded character sets 编码字符集分会 2 )下的 WG 2 ( Working Group 2 on Universal coded character set 通用编码字符集工作组 2 )负责制定国际通用字符编码标准即后来公布的 ISOIEC 10646

发展历史bull 1984年 ISO 的一些会员国发起制定新的国际字符编码标准同年 4月 ISO

与 IEC 联合成立 ISOIEC JTC1SC2WG2 1987年 3月制定出编码架构1992年 6月投票通过第二版国际标准草案

bull 1993年 5月推出 10646 标准时将内容分成两个部分标准首先发布的是其中的第 1 个部分(体系结构与基本多文种平面)的第 1版( Edition 1 ) ISOIEC 10646-11993 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane(信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

bull 2000年 3月推出 10646 标准第一个部分的第 2版( Edition 2 ) ISOIEC 10646-12000 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane

bull 2001年 10月推出 10646 标准第 2版的第二个部分(辅助平面)的第 1版( Edition 1 ) ISOIEC 10646-22001 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 2 Supplementary Planes

bull 2003年 10月推出的 10646新标准(第 1版 Edition 1 )将老标准中的两个部分标准合并成了一个单一的标准 ISOIEC 106462003 Information technology -- Universal Multiple- Octet Coded Character Set (UCS) 后来又于 2010年 2012年和 2014年分别推出了 ISOIEC 106462010 (第 2版)ISOIEC 106462012 (第 3版)和 ISOIEC 106462014 (第 4版)

UCS 通用字符集bull 通用字符集( Universal Character Set UCS )是

ISOIEC 10646 标准所定义的字符编码方式采用 4字节编码又称为 Universal Multiple-Octet Coded Character Set (通用多八位编码字符集)

bull 通用字符集是所有包括了其他字符集它保证了与其他字符集的双向兼容即如果你将任何文本字符串翻译到 UCS 格式然后再翻译回原编码你不会丢失任何信息

bull UCS 包含了已知语言的所有字符除了拉丁语希腊语斯拉夫语希伯来语阿拉伯语亚美尼亚语格鲁吉亚语还包括中文日文韩文这样的象形文字 UCS 还包括大量的图形印刷数学科学符号

名字与组合字符bull UCS 不仅给每个字符分配一个代码而且赋予了

一个正式的名字表示一个 UCS 或 Unicode值的十六进制数通常在前面加上ldquo U+rdquo 例如ldquo U+0041rdquo代表字符ldquo Ardquo

bull UCS里有些编码点分配给了组合字符组合字符机制允许在任何字符后加上重音符或其他指示标记 这在科学符号中特别有用 比如数学方程式和国际音标字母 可能会需要在一个基本字符后组合上一个或多个指示标记

实现级别bull 并不是所有的系统都需要支持像组合字符这样的的先进

机制因此 ISO 10646 指定了如下三种实现级别ndash 级别 1不支持组合字符和韩语 Hangul Jamo 字符 ( 一种特

别的 更加复杂的韩国文的编码 使用两个或三个子字符来编码一个韩文音节 )

ndash 级别 2类似于级别 1 但在某些文字中允许一列固定的组合字符 (例如 希伯来文 阿拉伯文 Devangari 孟加拉语 果鲁穆奇语 Gujarati Oriya 泰米尔语 Telugo 印 埃纳德语 Malayalam 泰国语和老挝语 ) 因为如果没有最起码的几个组合字符 UCS就不能完整地表达这些语言

ndash 级别 3支持所有的 UCS 字符如可以在任意一个字符上加上一个箭头或 和一个 tilde(颚化符号即字母上面的~ )

编码方式bull UCS 有如下两种编码方式

ndash UCS-2与 Unicode 的 2 字节编码基本一样ndash UCS-4 4 字节编码目前是在 UCS-2 前加

上 2 个全零的字节bull UCS 还有 UTF 编码方式参见下面第 4小节ldquo 4 UTFrdquo

3 Unicode 与 ISOIEC 10646bull 关系

ndash 历史上存在两个独立的尝试创立单一字符集的组织即国际标准化组织( ISO )和多语言软件制造商组成的统一码协会组织( Unicodeorg )前者开发的 ISO 10646项目后者开发的 Unicode项目因此最初制定了不同的标准

ndash 1991年前后两个项目的参与者都认识到世界不需要两个不兼容的字符集于是它们开始合并双方的工作成果并为创立一个单一编码表而协同工作

ndash 从 Unicode20开始 Unicode采用了与 ISO 10646-1相同的字库和字码 ISO 也承诺 ISO10646 将不会替超出 U+10FFFF 的 UCS-4 编码赋值以使得两者保持一致

ndash 两个项目仍都存在并独立地公布各自的标准但 Unicode协会和 ISOIEC JTC1SC2 都同意保持两者标准的码表兼容并紧密地共同调整任何未来的扩展

异同bull Unicode协会公布的 Unicode 标准包含了 ISO 10646-1 实现级别

3 的基本多文种平面在两个标准里所有的字符都在相同的位置并且有相同的名字

bull ISO 10646 标准就像 ISO 8859 标准一样只不过是一个简单的字符集表它定义了一些编码的别名指定了一些与标准有关的术语并包括了规范说明指定了怎样使用 UCS连接其他 ISO 标准的实现等

bull Unicode 标准额外定义了许多与字符有关的语义符号学并详细说明了绘制某些语言(如阿拉伯语)表达形式的算法处理双向文字(比如拉丁文和希伯来文的混合文字)的算法排序与字符串比较所需的算法等等

bull 考虑到 Unicode 标准有一个易记的名字既便宜又包括更多的辅助信息因而它使用得更广泛然而

bull 一般认为用于打印 ISO 10646-1 标准的字体在某些方面的质量要高于用于打印 Unicode 20 的专业字体设计者总是被建议说要两个标准都实现但一些提供的样例字形有显著的区别 ISO 10646-1 标准同样使用四种不同的风格变体来显示表意文字如中文日文和韩文 (CJK) 而 Unicode 20 的表里只有中文的变体

4 UTFbull Unicode 和 UCS 都是一个字符集可以看作为内码bull UTF ( UnicodeUCS Transformation Format 统一码

通用字符集转换格式)是一种编码方式它的出现是因为 Unicode 和 UCS 不适宜在某些场合直接传输和处理

bull UCS 和 Unicode 只是分配整数给字符的编码表现在存在好几种将一串字符表示为一串字节的方法(如高或低位字节在前)

bull 最显而易见的两种方法是将 UCS 和 Unicode 文本存储为 2 个 或 4 个字节序列的串这两种方法的正式名称分别为 UCS-2 和 UCS-4

bull 常用的 UTF具体编码方式有 UTF-8 UTF-16 和 UTF-32

UTF-8

bull UTF-8 是 UTF 的一种具体编码方式在 ISO 10646-1 的附录 R 和 IETF 的 RFC 2279 里定义

bull 由于要使文档中的文字与 ASCII兼容故 UTF-8 选择了使用可变长度字节来储存 Unicode 和 UCS 例如ndash ASCII 字母继续使用 1 字节储存ndash 重音文字希腊字母或西里尔字母等使用 2 字节来储存ndash 常用的汉字就要使用 3 字节ndash 辅助平面字符则使用 4 字节ndash 即 ASCII 不作变换其他字符做变长编码每个字符 1~4 字节

bull UTF-8 通常作为外码bull 在 UTF-8 文件的开首很多时都放置一个 U+FEFF 字符

(UTF-8 以 EF BB BF 代表 ) 以显示这个文字档案是以UTF-8 编码

UTF-8 的优点bull 与 CPU 字节顺序无关可以在不同平台之间交流

bull 容错能力高任何一个字节损坏后最多只会导致一个编码码位损失不会链锁错误 ( 如 GB 码错一个字节就会整行乱码 )

UTF-8 的缺点bull UTF-8 使用可变长度字节储存使计算机程序设计变得复杂 (故此在计算机程序或操作系统内部多采用 UCS-2 编码 )

bull 在旧式的中文日文及朝鲜文编码之中每字符都使用 2 字节储存而 UTF-8 须使用 3 字节 (采用 UTF-16 编码则可只使用 2字节储存 )

bull 泰语以往使用的 ISO 8859-11 每字符只使用 1 字节储存而 UTF-8 须使用 3 字节

UTF-8储存的多字节串字符bull U-00000000 - U-0000007F 0xxxxxxx bull U-00000080 - U-000007FF 110xxxxx 10xxxxxx

bull U-00000800 - U-0000FFFF 1110xxxx 10xxxxxx

10xxxxxx bull U-00010000 - U-001FFFFF 11110xxx 10xxxxx

x 10xxxxxx 10xxxxxx bull 在多字节串中第一个字节的开头ldquo 1rdquo 的数目就

是整个串中字节的数目bull 每个使用 UTF-8储存的字符除了第一个字节外其余字节的头两个位元都是以 10 开始使文字处理器能够较快地找出每个字符的开始位置

UTF-16bull UTF-16 是 UTF 的另一种具体编码方式在 ISO 1064

6-1 的附录 Q 和 IETF 的 RFC 2781 里定义bull UTF-16 是变长码( 2 或 4 字节)大致相当于 20位编码值在 0 到 0x10FFFF 之间基本上就是 Unicode 编码的实现 UTF-16 与 CPU 字序有关但因为最省空间常作为网络传输的外码 UTF-16 是 Unicode 的完美编码

bull lt0x10000 的直接用其对应的 16位整数编码位于 0x10000 ~ 0x10FFFF 之间的用 0xD800~0xDBFF 的 16位整数后跟 0xDC00~0xDFFF 的 16位整数的 4 字节编码 gt 0x10FFFF 的不能用 UTF-16 表示

bull 在 Unicode 的 BMP 中定义的字符(无论是拉丁字母汉字或其他文字或符号)一律使用 2 字节存储而在辅助平面定义的字符则以两个 2 字节的值来存储

UTF-16 的特点bull UTF-16比起 UTF-8 的好处在于大部分字符都以固定长

度的 2 字节存储但 UTF-16却无法相容于 ASCII 编码bull UTF-16 有两种编码模式即大尾序( big Endian 高位字节在前)和小尾序( little Endian 高位字节在后)储存形式(一般來說以 Macintosh 制作和存储的文字使用大尾序格式以 Microsoft 或 Linux 制作和存储的文字使用小尾序格式)

bull 为了弄区分 UTF-16 文件的大小尾序在 UTF-16 文件的开头都会放置一个 U+FEFF 字符作为字节顺序标记 (UTF-16LE 以 FF FE代表 UTF-16BE 以 FE FF代表 ) 以显示该文档是以 UTF-16 编码的

UTF-32

bull UTF-32 仅使用了 Unicode范围 (0 到 0x10FFFF) 的 32位编码相当于 UCS-4 的子集

bull 由于 Unicode 和 ISOIEC 10646 的编码和结构与前面讲过的 GB 13000 类似或等价这里就不再做详细的介绍

5支持bull 现在 UnicodeUCS 已经获得了十分广泛的支

持ndash网络与浏览器(如 HTML 4050 XML 与 IE

Safari Netscape Firefox Chrome Opera Edge 等)

ndash操作系统(如 Windows NT2000XPVista7810 Mac OS X iOS Android和 Linux )

ndash 编程语言新版本(如 CC++JavaObjective-CC Swift 等)

Unicode 代码的浏览器显示代码 字符标准名称 (英语 )

浏览器的显示

amp65 大写拉丁字母 A A

amp223 小写拉丁字母 Sharp S szlig

amp254 小写拉丁字母 Thorn thorn

amp916 大写希腊字母 Delta Δ

amp1049 大写斯拉夫字母 Short I Й

amp1511 希伯来字母 Qof ק

amp1605 阿拉伯字母 Meem م

amp3671 泰文数字 7 ๗amp4688 埃塞俄比亚音节文字 Qha ቐ

amp12354 日语平假名 A あamp12450 日语片假名 A アamp21494 简体汉字 叶 叶amp33865 繁体汉字 葉 葉amp50685 韩国音节文字 Yeob 엽

23 文字输出bull 文字输出是指将计算机内的字符编码通过计算机的输出设备(如显示器打印机喇叭)展现出所对应字符的图形或声音供人们阅读或聆听

bull 本节主要介绍文字图示输出的字形技术bull 文字声音输出属于语音合成只在本节的末尾作简单的介绍

231 字形技术bull 文字 = 图形bull 不论是象形文字中的单字还是拼音文字

中的字母都是用图形来表示的bull 在计算机里文字的表示 输出(显示和打

印)涉及ndash 字型ndash 字体ndash 字库

1字型bull 字型指构造和生成字形的方法一般可分为

ndash 点阵字 DOS 显卡 ROM 金山 科印特点似位图显示快占空间(字库大)放大后有马赛克效应

bull 显示字母 88 汉字 1616bull 打印 2424 4848 6464

ndash 矢量字单线条用于笔式绘图仪特点字库小算法简单难看

ndash 轮廓字用曲线描绘字的轮廓输出效果好所见即所得(WYSWYG) 可无级放大易实现空心 阴影 填充 变形等各种特效功能轮廓曲线一般采用样条曲线如 TrueType (Apple 1991 Mac OS Microsoft 1992 Windows 31)用的是二次 B 样条 Bezier曲线中文之星 RichWin采用的是三次 B 样条 Bezier曲线

字型种类

2字体bull 字体指字的形状风格如

ndash 汉字的

ndash 英文的

宋体楷体黑体仿宋

行楷隶书新魏幼圆

Times New Roman Arial Narrow Courier New

常用汉字字体bull 宋体mdashmdash宋体来自于北宋时雕版刻书所采用的欧体字(唐朝欧阳询体)宋体字的横顿拉捺挑钩别具特色间架平正疏密适中字体秀丽遒劲但笔画横细竖粗适合于刀刻不宜于手写现在宋体广泛用于印刷常来表现文档的正文

bull 仿宋体mdashmdash 1920年钱塘的丁辅之与丁善之等人将明代以后盛行的方廓形字体加以改造创造出长形和方形的聚珍仿宋后来演化为现在的仿宋体仿宋体比较接近于手写体为宋体和楷体的折中是采用的宋体的结构和楷体的笔法而成现常来表现打印文件以及文档的摘要和注释等

bull 黑体mdashmdash黑体是适应工艺美术的发展而出现的一种等线体是从日本引进的黑体的结构与宋体没有什么差别只是其笔画粗细一致健实粗壮主要用于文档的标题和重点及标语广告等方面

bull 楷体mdashmdash楷体源于楷书楷体的笔画圆浑笔调灵活结构端正美观但不宜于木板雕刻所以直到清末西洋的石板印刷术传入后才开始广泛用于印刷现代的楷体创造于 20世纪的二三十年代主要用于文档的正文(多用于中小学教材)也可用于工艺美术等方面

3字库bull 字库为一种文字的某一字体的所有字符的集合一般存放在一个磁盘文件中

bull 由于象形文字中单字的数量大(成千上万)而拼音文字中字母的数量小(不到一百个)所以字库的大小有很大的差别

bull 为了使文档界面丰富多彩常见的字处理软件都支持多种字体带有众多字库

4点阵字型的国家标准bull 我国已经公布了若干字体的点阵字型之国家标准

ndash GB 50071-19852001 信息技术 汉字编码字符集(基本集) 24 点阵字型

ndash GB 50072-19852001 信息技术 汉字编码字符集(辅助集) 24 点阵字型

ndash GB 5199-19862001 信息技术 汉字编码字符集(基本集) 16 点阵字型 宋体

ndash GB 6345-19862001 信息技术 汉字编码字符集(基本集) 32 点阵字型 宋体

ndash GB 12041-2001 信息技术 汉字编码字符集(基本集) 48点阵字型 宋体

ndash GB 17698-1999 信息技术 通用多八位编码字符集( I 区) 汉字 16 点阵字型

232 语音合成bull 文字的声音输出主要使用的是语音合成的技术bull 语音合成功能是ldquo文rarr语rdquo转换bull 文语转换 TTS (Text-To-Speech) 是将文本形式的信息转换成自然语音的一种技术其最终目标是使计算机输出清晰而又自然的声音

bull 英语的语音合成在上世纪 80年代就早已成熟而中文 汉语的合成现在也趋于成熟并有了广泛的应用(如汽车导航仪智能手机等)

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 48: 第一篇  媒体

6 GB 13000bull GB 13000 是与 ISOIEC 10646 等价的国际通用编码字符集标准收汉字 2万多个但是与 GB 2312 和 GBK 不兼容

bull 1993年 5月 ISO 与 IEC 联合推出了可用于世界各种文字的通用编码字符集的国际标准的第 1部分ndash ISOIEC 10646-11993 Information technology -- Universal Multiple-Octe

t Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane (信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

ndash 该标准收字符 96万个几乎涵盖世界上的所有文字其中包含汉字 21 003 个

bull 1993年底我国推出了等同于国际标准 ISOIEC 1064611993 的强制性国家标准 ndash GB 130001-93《信息技术 通用多八位编码字符集( UCS ) 第一部分

体系结构与基本多文种平面》ndash 该标准于 1993年 12月 24日被国家技术监督局批准 1994年 8月 1日起实施

GB 13000 的主要特点

bull 世界各语言文种字符统一编码避免冲突便于国际交流

bull 编码空间宽阔连续每个图形字符的编码唯一(一字一码)不再存在兼容性问题

bull 按文种而不是按语言编码避免重复和浪费(如中日韩汉字的统一编码 CJK )

bull 与 GB 2312 和 GBK 不兼容

体系结构bull UCS 的体系结构是基于所谓ldquo多八位rdquo的而ldquo八位rdquo就是一个字节ldquo多八位rdquo就是多个字节

bull UCS采用 4 个字节来表征组面行位的四维空间bull 整个 UCS空间包含 128 个组( 0x00组 ~0x7F组)每组有 256 个平面( 0x00 平面 ~0xFF 平面)每个平面有 256 行每行又由 256 个字位构成

bull UCS共有( 128 times 256 = ) 32 768 个平面每个平面有( 256 times 256 = ) 65 536 个字位每个字位对应于一个字符的编码

bull 目前的编码只限于 00组已经定义的平面有 00组的00 平面mdashmdash称之为基本多文种平面 BMP ( Basic Multilingual Plane ) 及若干辅助平面

UCS 的全部编码空间

每个平面256times256 个

字位

00组 00 平面

00组 FF 平面

01组 00 平面

7F组 00 平面00

01组

7F组

UCS 的 00组

BMPbull BMP = Basic Multilingual Plane 基本多文种平面bull BMP 用作双八位编码字符集称之为 UCS-2 它被

分成四个区ndash A- 区(字位 0x0000~0x4DFF 有 19 903 个字位)用于

字母文字音节文字以及各种符号ndash I- 区(字位 0x4E00~0x9FFF 共 20 992 个字位)用于中日韩统一汉字( CJK )

ndash O- 区(字位 0xA000~0xDFFF 共 16 384 个字位)保留未来标准化用

ndash R- 区(字位 0xE000~0xFFFD 共 8 190 个字位)为 BMP 的限制使用区包括专用字符变形显现形式及兼容字符

BMP总貌

A-区

00~33 拼音文字(见下页)

34~3D 朝鲜文

3E~44 朝鲜文补充 -A

45~4D 朝鲜文补充 -B

I-区 4E~9F CJK统一汉字O-区 A0~DF

R-区

E0~F8 专用区

F9~FA CJK兼容汉字FB 拼音文字变形显现形式

FC~FD 阿拉伯文变形显现形式 -A

FE半形组合用标志

CJK兼容形式

小写变体

阿拉伯文变形显现形式 -B

FF 半形及全形字符 特殊字符

BMP 的0x00~0x33

行字母文字区

00 基本拉丁文 拉丁文-1补充

01 拉丁文扩充-A 拉丁文扩充-B

02 拉丁文扩充-B 国际音标扩充 进格修饰字符

03 组合用发音符 基本希腊文 希腊符号及哥普特文

04 西里尔文

05 美亚尼亚文 希伯来文(基本和扩充)

06 基本阿拉伯文 阿拉伯文扩充

07

08

09 梵文 孟加拉文

0A 锡克教文 古吉拉特文

0B 奥利雅文 泰米尔文

0C 泰卢固文 卡纳达文

0D 德拉维族文

0E 泰文 老挝文

0F

10 格鲁吉亚文

11 朝鲜文字母

12~1D

1E 拉丁文扩充增补

1F 希腊文扩充

20 广义标点 上下标 货币符号 符号组合用区分标志

21 类似字母的符号 数字形式 箭头

22 数学运算符

23 零杂技术用符号

24 控制图符 光学识别符 带括号的字母数字

25 制表符 方块元素 几何图形符

26 零杂符号

27 示意符等

28~2F

30 CJK符号和标点 平假名 片假名

31 注音 朝鲜文兼容字母 CJK零杂字符

32 带括号的CJK字母及月份

33 CJK兼容字符

留作将来标准化用

非图形字符

表示形式bull GB 13000提供了字符编码表示的两种替代使用的形式

ndash 双八位 BMP 形式( UCS-2 )mdashmdash允许使用 BMP 中的字符且每个字符用两个字节表示

ndash 肆八位正则形式( UCS-4 )mdashmdash允许使用 GB 13000 中的全部字符且每个字符用四个字节表示

bull 除了 UCS-24外还有另外两种变形的表示形式ndash UTF-8 (单字节 ~ 多字节)ndash UTF-16 (双字节和 4 字节与 UCS-2 等价)ndash 目前在工业上的实现均为 UTF-16 ( UCS-2 )和 UTF-8ndash UTF = Unicode UCS Transformation Format 统一码 UC

S转换格式bull 关于统一码我们会在下一小节详细介绍

7 GBK 与 GB 18030bull 由于 GB 13000 标准与 GB 2312 标准的字符编码不兼容作为过渡在国家信息技术标准化委员会的主持下制定了与 GB 2312兼容的《汉字内码扩展规范( GBK )》( K 为扩展的ldquo扩rdquo字的拼音首字母)并于 1995年 12月 15日由原国家技术监督局标准司联合原电子工业部科技与质量监督司作为指导性技术规范发布实施

bull 2000年 GBK又被国家标准 GB 18030-2000《信息技术 信息交换用汉字编码字符集 基本集的扩充》所代替该标准收汉字 2万 7千个

bull 与 GB 2312 一样 GB 18030 也为中国的强制性国家标准微软公司的 Windows XPVista78 中文版与苹果公司的 Mac OS X 和 iOS 谷歌公司的 Android (安卓)等操作系统已经全面支持 GBK

GB 18030 的码位范围分布

字节数 码位空间 码位数目

单字节 0x00~0x7F 128

双字节第 1字节 第 2字节

23 9400x81~0xFE

0x40~0x7E 0x80~0xFE

四字节第 1字节 第 2字节 第 3字节 第 4字节

1 587 6000x81~0xFE 0x30~0x39 0x81~0xFE 0x30~0x39

GB 18030的

总体结构图

收录字符bull 单字节部分mdashmdash收录了GBT 11383 的 0x00~0x7F 全部 128 个字符(似 ASCI

I )bull 双字节部分mdashmdash收录内容如下 (21 003 个汉字和 884 个符号共 21 887 个字符 )

ndash GB 130001-93 的全部 CJK 统一汉字字符 20 902 个( GB 2312 的编码汉字在双字节 2 区其他 CJK 统一汉字在双字节 34 区)

ndash GB 130001-93 的 CJK兼容区挑选出来的 21 个汉字ldquo郎凉秊helliphellip﨨﨩rdquo( 0xFD9C~0xFDA0 和 0xFE40~0xFE4F )

ndash GB 130001-93 中收录而 GB 2312未收录的台湾地区使用的图形字符 139 个ldquoˊˋ˙helliphelliprdquo( 0xA840~0xA895 和 0xA940~0XA988 )

ndash GB 130001-93收录的其他字符 31 ( 13)个(在双字节 5 区)ndash GB 2312-80 中的非汉字字符 682 个( 0xA1A1~0xA9EF )ndash GB 12345-90 的竖排标点符号 19 ( 29)个ldquo︵︶︹helliphellip︳︴rdquo( 0xA6D9~0xA6

F5 )ndash GB 2312-80未收录的 10 个小写罗马数字ldquoⅰⅱⅲhelliphellipⅸⅹrdquo( 0xA2A1~ 0xA2A

A )ndash GB 2312-80未收录的带音调的汉语拼音字母 5 ( 4)个ldquo ńňǹrdquo 以及 ɑ 和 ɡ ( 0

xA8BB~0xA8C0 )ndash 汉字数字零ldquo〇rdquo (0xA996) 和欧元符ldquoeurordquo (0xA2E3)ndash 表意文字描述符 13 个ldquohelliphelliprdquo( 0xA989~0xA995 )ndash 对 GB 130001-93增补的汉字和部首 构件 80 个ldquohelliphellip䶮rdquo( 0xFE50~ 0x

FEA0 )bull 四字节部分mdashmdash收录了上述双字节字符之外的包括 CJK 统一汉字扩充 A 在内

的 GB 130001-93 中的全部字符

GB 18030双字节部分的码位安排

类别 区名 码位范围 码位数 字符数 内容

符号区双字节 1区 A1A1~A9FE 846 718

GB 2312非汉字字符等

双字节 5区 A840~A9A0 192 166 台湾图符等

汉字区双字节 2区 B0A1~F7FE 6768 6763 GB 2312汉字双字节 3区 8140~A0FE 6080 6080 CJK统一汉字双字节 4区 AA40~FEA0 8160 8160 CJK统一汉字等

用户自定义区双字节用户区 1 AAA1~AFFE 564

用户自定义字符双字节用户区 2 F8A1~FEFE 658

双字节用户区 3 A140~A7A0 672

GB 18030双字节部分的编码空间结构图 尾字节

0x40larr――rarr0x7E 0x80larr――rarr0xA0 0xA1larr――――――――――――rarr0xFE

0x81 uarr darr

0xA0

0xA1 uarr darr

0xA7

0xA8 0xA9

首字节

0xAA uarr | | | | | | | | | | darr

0xFE

双字节 3区

汉字区6 080个码位

双字节用户区 3

用户自定义区672个码位

双字节 5区 图形符号区192个码位

双字节 4区

汉字区8 160个码位

双字节 1区

图形符号区564个码位

双字节 2区

汉字区6 768个码位

双字节用户区 1 用户自定义区564个码位

双字节用户区 2 用户自定义区658个码位

223 国际通用字符编码

bull Unicode (统一码)是由多语言软件制造商组成的统一码协会( httpwwwUnicodeorg)所制定一种国际字符的编码标准

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull 本节主要介绍这两种关系密切的主流国际字符编码标准的来历编码方案各自特点与相互关系

1 Unicode 统一码bull 发展历史

ndash 1987年施乐( Xerox )公司的 Joe Becker 与 Lee Collins 和苹果( Apple )公司的 Mark Davis 等人开始讨论统一编码 1987年 12月 Joe Becker造词 Unicode (统一码)含义为ldquo unique universal and uniform character encodingrdquo (单一通用统一的字符编码) 1989年 2月开始定期召开统一码会议 1989年 9月公布 Unicode草案

ndash 1991年 1月 3 日由 Xerox Apple Sun IBM Aldis Microsoft 等公司出资在美国加州成立了统一码协会( Unicode Consortium )并由协会设立非盈利性的统一码公司( Unicode Inc )后来 HP Adobe Borland Digital Lotus Novell 等公司也纷纷加入 1991年 1月成立统一码技术委员会 UTC 并制定了其规程

ndash 1991年 2月在 Ed Hart 的推动下进行了ldquo统一码对 10464 国际标准草案 1rdquo 的对话Unicode 与 ISOIEC 10646开始走向融合

ndash 1991年 8月发布 Unicode 标准 10版的第 1卷(体系结构非表意字符) 1992年6月发表 Unicode 10版的第 2卷(表意字符) 1993年 6月发布 Unicode 11版与 1993年 5月公布的 ISOIEC 10646-11993 实现了合并

ndash 1996年 7月发布 Unicode 20版ndash 1999年 9月发布 Unicode 30版ndash 2003年 4月发布 Unicode 40版(对应于 ISOIEC 106462003 ) 2004年 3月 31日发布 Unicode 401版 2005年 3月 31日发布 Unicode 410版

ndash 2006年 7月 14日发布 Unicode 50版 2008年 4月 4日发布 Unicode 51版 2009年 12月 22日发布 Unicode 52版

ndash 2010年 10月发布 Unicode 60版 2012年 1月发布 Unicode 61版(对应于 ISOIEC 106462012 ) 2012年 9月推出 Unicode 62版 2013年 9月推出 Unicode 63版

ndash 2014年 6月 16日发布 Unicode 70版 ndash 2015年 6月 17日发布 Unicode 80版

字符集bull Unicode 字符集的空间分成双字节的基本多语言平面 (Basic Multilingual Pla

ne BMP) 和 4 字节的辅助多语言平面 (Supplementary Multilingual Plane SMP) 两种

bull BMPndash Unicode 的基本平面或基本多语言平面 BMP 对应于 ISOIEC 10646-1 的第 00组的 00 平面( BMP )即 Unicode 与 ISOIEC 10646 的 BMP 中的字符编码完全一致

bull SMPndash 鉴于 Unicode 原有的 16位元空间不足以应用从 Unicode 31版本开始设立了 16 个辅助平面使 Unicode 的可使用空间由六万多字增至约一百万字

ndash 原有的 Unicode双字节空间称为基本平面或基本多语言平面 BMP 辅助多语言平面 SMP 字符要用 4 字节来储存

ndash 第一辅助平面摆放拼音文字(主要为现时已不再使用的文字)及符号范围在 U+10000 - U+1FFFD

ndash 第二辅助平面又称为表意文字补充平面 (Supplementary Ideographic Plane 简称 SIP) 现时摆放ldquo中日韩统汉字扩展 B 区rdquo共 43253 个汉字范围在 U+20000 - U+2FFFD

ndash 第三至十三辅助平面尚未使用ndash 第十四辅助平面又称为特殊用途补充平面 (Supplementary Special-purpose Pl

ane 简称 SSP) 摆放 Language tags 和 Variation Selectors 它们都是控制字符范围在 U+E0000 - U+E01FF

ndash 第十五至十六辅助平面都是私人使用区它们的范围是 U+F0000 - U+FFFFD 及 U+100000 - U+1000FD

bull Unicode 字符集的具体编码方式参加第 4小节ldquo 4 UTFrdquo

2 ISOIEC 10646

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull ISOIEC 10646 标准由 ISO 与 IEC 联合成立的 ISOIEC JTC1SC2WG2 制定ndash JTC 1 ( Joint Technical Committee 1 on Information

technology ISOIEC信息技术联合技术委员会 1 )负责信息技术方面标准的制定工作

ndash SC 2 ( SubCommittee 2 on Coded character sets 编码字符集分会 2 )下的 WG 2 ( Working Group 2 on Universal coded character set 通用编码字符集工作组 2 )负责制定国际通用字符编码标准即后来公布的 ISOIEC 10646

发展历史bull 1984年 ISO 的一些会员国发起制定新的国际字符编码标准同年 4月 ISO

与 IEC 联合成立 ISOIEC JTC1SC2WG2 1987年 3月制定出编码架构1992年 6月投票通过第二版国际标准草案

bull 1993年 5月推出 10646 标准时将内容分成两个部分标准首先发布的是其中的第 1 个部分(体系结构与基本多文种平面)的第 1版( Edition 1 ) ISOIEC 10646-11993 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane(信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

bull 2000年 3月推出 10646 标准第一个部分的第 2版( Edition 2 ) ISOIEC 10646-12000 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane

bull 2001年 10月推出 10646 标准第 2版的第二个部分(辅助平面)的第 1版( Edition 1 ) ISOIEC 10646-22001 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 2 Supplementary Planes

bull 2003年 10月推出的 10646新标准(第 1版 Edition 1 )将老标准中的两个部分标准合并成了一个单一的标准 ISOIEC 106462003 Information technology -- Universal Multiple- Octet Coded Character Set (UCS) 后来又于 2010年 2012年和 2014年分别推出了 ISOIEC 106462010 (第 2版)ISOIEC 106462012 (第 3版)和 ISOIEC 106462014 (第 4版)

UCS 通用字符集bull 通用字符集( Universal Character Set UCS )是

ISOIEC 10646 标准所定义的字符编码方式采用 4字节编码又称为 Universal Multiple-Octet Coded Character Set (通用多八位编码字符集)

bull 通用字符集是所有包括了其他字符集它保证了与其他字符集的双向兼容即如果你将任何文本字符串翻译到 UCS 格式然后再翻译回原编码你不会丢失任何信息

bull UCS 包含了已知语言的所有字符除了拉丁语希腊语斯拉夫语希伯来语阿拉伯语亚美尼亚语格鲁吉亚语还包括中文日文韩文这样的象形文字 UCS 还包括大量的图形印刷数学科学符号

名字与组合字符bull UCS 不仅给每个字符分配一个代码而且赋予了

一个正式的名字表示一个 UCS 或 Unicode值的十六进制数通常在前面加上ldquo U+rdquo 例如ldquo U+0041rdquo代表字符ldquo Ardquo

bull UCS里有些编码点分配给了组合字符组合字符机制允许在任何字符后加上重音符或其他指示标记 这在科学符号中特别有用 比如数学方程式和国际音标字母 可能会需要在一个基本字符后组合上一个或多个指示标记

实现级别bull 并不是所有的系统都需要支持像组合字符这样的的先进

机制因此 ISO 10646 指定了如下三种实现级别ndash 级别 1不支持组合字符和韩语 Hangul Jamo 字符 ( 一种特

别的 更加复杂的韩国文的编码 使用两个或三个子字符来编码一个韩文音节 )

ndash 级别 2类似于级别 1 但在某些文字中允许一列固定的组合字符 (例如 希伯来文 阿拉伯文 Devangari 孟加拉语 果鲁穆奇语 Gujarati Oriya 泰米尔语 Telugo 印 埃纳德语 Malayalam 泰国语和老挝语 ) 因为如果没有最起码的几个组合字符 UCS就不能完整地表达这些语言

ndash 级别 3支持所有的 UCS 字符如可以在任意一个字符上加上一个箭头或 和一个 tilde(颚化符号即字母上面的~ )

编码方式bull UCS 有如下两种编码方式

ndash UCS-2与 Unicode 的 2 字节编码基本一样ndash UCS-4 4 字节编码目前是在 UCS-2 前加

上 2 个全零的字节bull UCS 还有 UTF 编码方式参见下面第 4小节ldquo 4 UTFrdquo

3 Unicode 与 ISOIEC 10646bull 关系

ndash 历史上存在两个独立的尝试创立单一字符集的组织即国际标准化组织( ISO )和多语言软件制造商组成的统一码协会组织( Unicodeorg )前者开发的 ISO 10646项目后者开发的 Unicode项目因此最初制定了不同的标准

ndash 1991年前后两个项目的参与者都认识到世界不需要两个不兼容的字符集于是它们开始合并双方的工作成果并为创立一个单一编码表而协同工作

ndash 从 Unicode20开始 Unicode采用了与 ISO 10646-1相同的字库和字码 ISO 也承诺 ISO10646 将不会替超出 U+10FFFF 的 UCS-4 编码赋值以使得两者保持一致

ndash 两个项目仍都存在并独立地公布各自的标准但 Unicode协会和 ISOIEC JTC1SC2 都同意保持两者标准的码表兼容并紧密地共同调整任何未来的扩展

异同bull Unicode协会公布的 Unicode 标准包含了 ISO 10646-1 实现级别

3 的基本多文种平面在两个标准里所有的字符都在相同的位置并且有相同的名字

bull ISO 10646 标准就像 ISO 8859 标准一样只不过是一个简单的字符集表它定义了一些编码的别名指定了一些与标准有关的术语并包括了规范说明指定了怎样使用 UCS连接其他 ISO 标准的实现等

bull Unicode 标准额外定义了许多与字符有关的语义符号学并详细说明了绘制某些语言(如阿拉伯语)表达形式的算法处理双向文字(比如拉丁文和希伯来文的混合文字)的算法排序与字符串比较所需的算法等等

bull 考虑到 Unicode 标准有一个易记的名字既便宜又包括更多的辅助信息因而它使用得更广泛然而

bull 一般认为用于打印 ISO 10646-1 标准的字体在某些方面的质量要高于用于打印 Unicode 20 的专业字体设计者总是被建议说要两个标准都实现但一些提供的样例字形有显著的区别 ISO 10646-1 标准同样使用四种不同的风格变体来显示表意文字如中文日文和韩文 (CJK) 而 Unicode 20 的表里只有中文的变体

4 UTFbull Unicode 和 UCS 都是一个字符集可以看作为内码bull UTF ( UnicodeUCS Transformation Format 统一码

通用字符集转换格式)是一种编码方式它的出现是因为 Unicode 和 UCS 不适宜在某些场合直接传输和处理

bull UCS 和 Unicode 只是分配整数给字符的编码表现在存在好几种将一串字符表示为一串字节的方法(如高或低位字节在前)

bull 最显而易见的两种方法是将 UCS 和 Unicode 文本存储为 2 个 或 4 个字节序列的串这两种方法的正式名称分别为 UCS-2 和 UCS-4

bull 常用的 UTF具体编码方式有 UTF-8 UTF-16 和 UTF-32

UTF-8

bull UTF-8 是 UTF 的一种具体编码方式在 ISO 10646-1 的附录 R 和 IETF 的 RFC 2279 里定义

bull 由于要使文档中的文字与 ASCII兼容故 UTF-8 选择了使用可变长度字节来储存 Unicode 和 UCS 例如ndash ASCII 字母继续使用 1 字节储存ndash 重音文字希腊字母或西里尔字母等使用 2 字节来储存ndash 常用的汉字就要使用 3 字节ndash 辅助平面字符则使用 4 字节ndash 即 ASCII 不作变换其他字符做变长编码每个字符 1~4 字节

bull UTF-8 通常作为外码bull 在 UTF-8 文件的开首很多时都放置一个 U+FEFF 字符

(UTF-8 以 EF BB BF 代表 ) 以显示这个文字档案是以UTF-8 编码

UTF-8 的优点bull 与 CPU 字节顺序无关可以在不同平台之间交流

bull 容错能力高任何一个字节损坏后最多只会导致一个编码码位损失不会链锁错误 ( 如 GB 码错一个字节就会整行乱码 )

UTF-8 的缺点bull UTF-8 使用可变长度字节储存使计算机程序设计变得复杂 (故此在计算机程序或操作系统内部多采用 UCS-2 编码 )

bull 在旧式的中文日文及朝鲜文编码之中每字符都使用 2 字节储存而 UTF-8 须使用 3 字节 (采用 UTF-16 编码则可只使用 2字节储存 )

bull 泰语以往使用的 ISO 8859-11 每字符只使用 1 字节储存而 UTF-8 须使用 3 字节

UTF-8储存的多字节串字符bull U-00000000 - U-0000007F 0xxxxxxx bull U-00000080 - U-000007FF 110xxxxx 10xxxxxx

bull U-00000800 - U-0000FFFF 1110xxxx 10xxxxxx

10xxxxxx bull U-00010000 - U-001FFFFF 11110xxx 10xxxxx

x 10xxxxxx 10xxxxxx bull 在多字节串中第一个字节的开头ldquo 1rdquo 的数目就

是整个串中字节的数目bull 每个使用 UTF-8储存的字符除了第一个字节外其余字节的头两个位元都是以 10 开始使文字处理器能够较快地找出每个字符的开始位置

UTF-16bull UTF-16 是 UTF 的另一种具体编码方式在 ISO 1064

6-1 的附录 Q 和 IETF 的 RFC 2781 里定义bull UTF-16 是变长码( 2 或 4 字节)大致相当于 20位编码值在 0 到 0x10FFFF 之间基本上就是 Unicode 编码的实现 UTF-16 与 CPU 字序有关但因为最省空间常作为网络传输的外码 UTF-16 是 Unicode 的完美编码

bull lt0x10000 的直接用其对应的 16位整数编码位于 0x10000 ~ 0x10FFFF 之间的用 0xD800~0xDBFF 的 16位整数后跟 0xDC00~0xDFFF 的 16位整数的 4 字节编码 gt 0x10FFFF 的不能用 UTF-16 表示

bull 在 Unicode 的 BMP 中定义的字符(无论是拉丁字母汉字或其他文字或符号)一律使用 2 字节存储而在辅助平面定义的字符则以两个 2 字节的值来存储

UTF-16 的特点bull UTF-16比起 UTF-8 的好处在于大部分字符都以固定长

度的 2 字节存储但 UTF-16却无法相容于 ASCII 编码bull UTF-16 有两种编码模式即大尾序( big Endian 高位字节在前)和小尾序( little Endian 高位字节在后)储存形式(一般來說以 Macintosh 制作和存储的文字使用大尾序格式以 Microsoft 或 Linux 制作和存储的文字使用小尾序格式)

bull 为了弄区分 UTF-16 文件的大小尾序在 UTF-16 文件的开头都会放置一个 U+FEFF 字符作为字节顺序标记 (UTF-16LE 以 FF FE代表 UTF-16BE 以 FE FF代表 ) 以显示该文档是以 UTF-16 编码的

UTF-32

bull UTF-32 仅使用了 Unicode范围 (0 到 0x10FFFF) 的 32位编码相当于 UCS-4 的子集

bull 由于 Unicode 和 ISOIEC 10646 的编码和结构与前面讲过的 GB 13000 类似或等价这里就不再做详细的介绍

5支持bull 现在 UnicodeUCS 已经获得了十分广泛的支

持ndash网络与浏览器(如 HTML 4050 XML 与 IE

Safari Netscape Firefox Chrome Opera Edge 等)

ndash操作系统(如 Windows NT2000XPVista7810 Mac OS X iOS Android和 Linux )

ndash 编程语言新版本(如 CC++JavaObjective-CC Swift 等)

Unicode 代码的浏览器显示代码 字符标准名称 (英语 )

浏览器的显示

amp65 大写拉丁字母 A A

amp223 小写拉丁字母 Sharp S szlig

amp254 小写拉丁字母 Thorn thorn

amp916 大写希腊字母 Delta Δ

amp1049 大写斯拉夫字母 Short I Й

amp1511 希伯来字母 Qof ק

amp1605 阿拉伯字母 Meem م

amp3671 泰文数字 7 ๗amp4688 埃塞俄比亚音节文字 Qha ቐ

amp12354 日语平假名 A あamp12450 日语片假名 A アamp21494 简体汉字 叶 叶amp33865 繁体汉字 葉 葉amp50685 韩国音节文字 Yeob 엽

23 文字输出bull 文字输出是指将计算机内的字符编码通过计算机的输出设备(如显示器打印机喇叭)展现出所对应字符的图形或声音供人们阅读或聆听

bull 本节主要介绍文字图示输出的字形技术bull 文字声音输出属于语音合成只在本节的末尾作简单的介绍

231 字形技术bull 文字 = 图形bull 不论是象形文字中的单字还是拼音文字

中的字母都是用图形来表示的bull 在计算机里文字的表示 输出(显示和打

印)涉及ndash 字型ndash 字体ndash 字库

1字型bull 字型指构造和生成字形的方法一般可分为

ndash 点阵字 DOS 显卡 ROM 金山 科印特点似位图显示快占空间(字库大)放大后有马赛克效应

bull 显示字母 88 汉字 1616bull 打印 2424 4848 6464

ndash 矢量字单线条用于笔式绘图仪特点字库小算法简单难看

ndash 轮廓字用曲线描绘字的轮廓输出效果好所见即所得(WYSWYG) 可无级放大易实现空心 阴影 填充 变形等各种特效功能轮廓曲线一般采用样条曲线如 TrueType (Apple 1991 Mac OS Microsoft 1992 Windows 31)用的是二次 B 样条 Bezier曲线中文之星 RichWin采用的是三次 B 样条 Bezier曲线

字型种类

2字体bull 字体指字的形状风格如

ndash 汉字的

ndash 英文的

宋体楷体黑体仿宋

行楷隶书新魏幼圆

Times New Roman Arial Narrow Courier New

常用汉字字体bull 宋体mdashmdash宋体来自于北宋时雕版刻书所采用的欧体字(唐朝欧阳询体)宋体字的横顿拉捺挑钩别具特色间架平正疏密适中字体秀丽遒劲但笔画横细竖粗适合于刀刻不宜于手写现在宋体广泛用于印刷常来表现文档的正文

bull 仿宋体mdashmdash 1920年钱塘的丁辅之与丁善之等人将明代以后盛行的方廓形字体加以改造创造出长形和方形的聚珍仿宋后来演化为现在的仿宋体仿宋体比较接近于手写体为宋体和楷体的折中是采用的宋体的结构和楷体的笔法而成现常来表现打印文件以及文档的摘要和注释等

bull 黑体mdashmdash黑体是适应工艺美术的发展而出现的一种等线体是从日本引进的黑体的结构与宋体没有什么差别只是其笔画粗细一致健实粗壮主要用于文档的标题和重点及标语广告等方面

bull 楷体mdashmdash楷体源于楷书楷体的笔画圆浑笔调灵活结构端正美观但不宜于木板雕刻所以直到清末西洋的石板印刷术传入后才开始广泛用于印刷现代的楷体创造于 20世纪的二三十年代主要用于文档的正文(多用于中小学教材)也可用于工艺美术等方面

3字库bull 字库为一种文字的某一字体的所有字符的集合一般存放在一个磁盘文件中

bull 由于象形文字中单字的数量大(成千上万)而拼音文字中字母的数量小(不到一百个)所以字库的大小有很大的差别

bull 为了使文档界面丰富多彩常见的字处理软件都支持多种字体带有众多字库

4点阵字型的国家标准bull 我国已经公布了若干字体的点阵字型之国家标准

ndash GB 50071-19852001 信息技术 汉字编码字符集(基本集) 24 点阵字型

ndash GB 50072-19852001 信息技术 汉字编码字符集(辅助集) 24 点阵字型

ndash GB 5199-19862001 信息技术 汉字编码字符集(基本集) 16 点阵字型 宋体

ndash GB 6345-19862001 信息技术 汉字编码字符集(基本集) 32 点阵字型 宋体

ndash GB 12041-2001 信息技术 汉字编码字符集(基本集) 48点阵字型 宋体

ndash GB 17698-1999 信息技术 通用多八位编码字符集( I 区) 汉字 16 点阵字型

232 语音合成bull 文字的声音输出主要使用的是语音合成的技术bull 语音合成功能是ldquo文rarr语rdquo转换bull 文语转换 TTS (Text-To-Speech) 是将文本形式的信息转换成自然语音的一种技术其最终目标是使计算机输出清晰而又自然的声音

bull 英语的语音合成在上世纪 80年代就早已成熟而中文 汉语的合成现在也趋于成熟并有了广泛的应用(如汽车导航仪智能手机等)

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 49: 第一篇  媒体

GB 13000 的主要特点

bull 世界各语言文种字符统一编码避免冲突便于国际交流

bull 编码空间宽阔连续每个图形字符的编码唯一(一字一码)不再存在兼容性问题

bull 按文种而不是按语言编码避免重复和浪费(如中日韩汉字的统一编码 CJK )

bull 与 GB 2312 和 GBK 不兼容

体系结构bull UCS 的体系结构是基于所谓ldquo多八位rdquo的而ldquo八位rdquo就是一个字节ldquo多八位rdquo就是多个字节

bull UCS采用 4 个字节来表征组面行位的四维空间bull 整个 UCS空间包含 128 个组( 0x00组 ~0x7F组)每组有 256 个平面( 0x00 平面 ~0xFF 平面)每个平面有 256 行每行又由 256 个字位构成

bull UCS共有( 128 times 256 = ) 32 768 个平面每个平面有( 256 times 256 = ) 65 536 个字位每个字位对应于一个字符的编码

bull 目前的编码只限于 00组已经定义的平面有 00组的00 平面mdashmdash称之为基本多文种平面 BMP ( Basic Multilingual Plane ) 及若干辅助平面

UCS 的全部编码空间

每个平面256times256 个

字位

00组 00 平面

00组 FF 平面

01组 00 平面

7F组 00 平面00

01组

7F组

UCS 的 00组

BMPbull BMP = Basic Multilingual Plane 基本多文种平面bull BMP 用作双八位编码字符集称之为 UCS-2 它被

分成四个区ndash A- 区(字位 0x0000~0x4DFF 有 19 903 个字位)用于

字母文字音节文字以及各种符号ndash I- 区(字位 0x4E00~0x9FFF 共 20 992 个字位)用于中日韩统一汉字( CJK )

ndash O- 区(字位 0xA000~0xDFFF 共 16 384 个字位)保留未来标准化用

ndash R- 区(字位 0xE000~0xFFFD 共 8 190 个字位)为 BMP 的限制使用区包括专用字符变形显现形式及兼容字符

BMP总貌

A-区

00~33 拼音文字(见下页)

34~3D 朝鲜文

3E~44 朝鲜文补充 -A

45~4D 朝鲜文补充 -B

I-区 4E~9F CJK统一汉字O-区 A0~DF

R-区

E0~F8 专用区

F9~FA CJK兼容汉字FB 拼音文字变形显现形式

FC~FD 阿拉伯文变形显现形式 -A

FE半形组合用标志

CJK兼容形式

小写变体

阿拉伯文变形显现形式 -B

FF 半形及全形字符 特殊字符

BMP 的0x00~0x33

行字母文字区

00 基本拉丁文 拉丁文-1补充

01 拉丁文扩充-A 拉丁文扩充-B

02 拉丁文扩充-B 国际音标扩充 进格修饰字符

03 组合用发音符 基本希腊文 希腊符号及哥普特文

04 西里尔文

05 美亚尼亚文 希伯来文(基本和扩充)

06 基本阿拉伯文 阿拉伯文扩充

07

08

09 梵文 孟加拉文

0A 锡克教文 古吉拉特文

0B 奥利雅文 泰米尔文

0C 泰卢固文 卡纳达文

0D 德拉维族文

0E 泰文 老挝文

0F

10 格鲁吉亚文

11 朝鲜文字母

12~1D

1E 拉丁文扩充增补

1F 希腊文扩充

20 广义标点 上下标 货币符号 符号组合用区分标志

21 类似字母的符号 数字形式 箭头

22 数学运算符

23 零杂技术用符号

24 控制图符 光学识别符 带括号的字母数字

25 制表符 方块元素 几何图形符

26 零杂符号

27 示意符等

28~2F

30 CJK符号和标点 平假名 片假名

31 注音 朝鲜文兼容字母 CJK零杂字符

32 带括号的CJK字母及月份

33 CJK兼容字符

留作将来标准化用

非图形字符

表示形式bull GB 13000提供了字符编码表示的两种替代使用的形式

ndash 双八位 BMP 形式( UCS-2 )mdashmdash允许使用 BMP 中的字符且每个字符用两个字节表示

ndash 肆八位正则形式( UCS-4 )mdashmdash允许使用 GB 13000 中的全部字符且每个字符用四个字节表示

bull 除了 UCS-24外还有另外两种变形的表示形式ndash UTF-8 (单字节 ~ 多字节)ndash UTF-16 (双字节和 4 字节与 UCS-2 等价)ndash 目前在工业上的实现均为 UTF-16 ( UCS-2 )和 UTF-8ndash UTF = Unicode UCS Transformation Format 统一码 UC

S转换格式bull 关于统一码我们会在下一小节详细介绍

7 GBK 与 GB 18030bull 由于 GB 13000 标准与 GB 2312 标准的字符编码不兼容作为过渡在国家信息技术标准化委员会的主持下制定了与 GB 2312兼容的《汉字内码扩展规范( GBK )》( K 为扩展的ldquo扩rdquo字的拼音首字母)并于 1995年 12月 15日由原国家技术监督局标准司联合原电子工业部科技与质量监督司作为指导性技术规范发布实施

bull 2000年 GBK又被国家标准 GB 18030-2000《信息技术 信息交换用汉字编码字符集 基本集的扩充》所代替该标准收汉字 2万 7千个

bull 与 GB 2312 一样 GB 18030 也为中国的强制性国家标准微软公司的 Windows XPVista78 中文版与苹果公司的 Mac OS X 和 iOS 谷歌公司的 Android (安卓)等操作系统已经全面支持 GBK

GB 18030 的码位范围分布

字节数 码位空间 码位数目

单字节 0x00~0x7F 128

双字节第 1字节 第 2字节

23 9400x81~0xFE

0x40~0x7E 0x80~0xFE

四字节第 1字节 第 2字节 第 3字节 第 4字节

1 587 6000x81~0xFE 0x30~0x39 0x81~0xFE 0x30~0x39

GB 18030的

总体结构图

收录字符bull 单字节部分mdashmdash收录了GBT 11383 的 0x00~0x7F 全部 128 个字符(似 ASCI

I )bull 双字节部分mdashmdash收录内容如下 (21 003 个汉字和 884 个符号共 21 887 个字符 )

ndash GB 130001-93 的全部 CJK 统一汉字字符 20 902 个( GB 2312 的编码汉字在双字节 2 区其他 CJK 统一汉字在双字节 34 区)

ndash GB 130001-93 的 CJK兼容区挑选出来的 21 个汉字ldquo郎凉秊helliphellip﨨﨩rdquo( 0xFD9C~0xFDA0 和 0xFE40~0xFE4F )

ndash GB 130001-93 中收录而 GB 2312未收录的台湾地区使用的图形字符 139 个ldquoˊˋ˙helliphelliprdquo( 0xA840~0xA895 和 0xA940~0XA988 )

ndash GB 130001-93收录的其他字符 31 ( 13)个(在双字节 5 区)ndash GB 2312-80 中的非汉字字符 682 个( 0xA1A1~0xA9EF )ndash GB 12345-90 的竖排标点符号 19 ( 29)个ldquo︵︶︹helliphellip︳︴rdquo( 0xA6D9~0xA6

F5 )ndash GB 2312-80未收录的 10 个小写罗马数字ldquoⅰⅱⅲhelliphellipⅸⅹrdquo( 0xA2A1~ 0xA2A

A )ndash GB 2312-80未收录的带音调的汉语拼音字母 5 ( 4)个ldquo ńňǹrdquo 以及 ɑ 和 ɡ ( 0

xA8BB~0xA8C0 )ndash 汉字数字零ldquo〇rdquo (0xA996) 和欧元符ldquoeurordquo (0xA2E3)ndash 表意文字描述符 13 个ldquohelliphelliprdquo( 0xA989~0xA995 )ndash 对 GB 130001-93增补的汉字和部首 构件 80 个ldquohelliphellip䶮rdquo( 0xFE50~ 0x

FEA0 )bull 四字节部分mdashmdash收录了上述双字节字符之外的包括 CJK 统一汉字扩充 A 在内

的 GB 130001-93 中的全部字符

GB 18030双字节部分的码位安排

类别 区名 码位范围 码位数 字符数 内容

符号区双字节 1区 A1A1~A9FE 846 718

GB 2312非汉字字符等

双字节 5区 A840~A9A0 192 166 台湾图符等

汉字区双字节 2区 B0A1~F7FE 6768 6763 GB 2312汉字双字节 3区 8140~A0FE 6080 6080 CJK统一汉字双字节 4区 AA40~FEA0 8160 8160 CJK统一汉字等

用户自定义区双字节用户区 1 AAA1~AFFE 564

用户自定义字符双字节用户区 2 F8A1~FEFE 658

双字节用户区 3 A140~A7A0 672

GB 18030双字节部分的编码空间结构图 尾字节

0x40larr――rarr0x7E 0x80larr――rarr0xA0 0xA1larr――――――――――――rarr0xFE

0x81 uarr darr

0xA0

0xA1 uarr darr

0xA7

0xA8 0xA9

首字节

0xAA uarr | | | | | | | | | | darr

0xFE

双字节 3区

汉字区6 080个码位

双字节用户区 3

用户自定义区672个码位

双字节 5区 图形符号区192个码位

双字节 4区

汉字区8 160个码位

双字节 1区

图形符号区564个码位

双字节 2区

汉字区6 768个码位

双字节用户区 1 用户自定义区564个码位

双字节用户区 2 用户自定义区658个码位

223 国际通用字符编码

bull Unicode (统一码)是由多语言软件制造商组成的统一码协会( httpwwwUnicodeorg)所制定一种国际字符的编码标准

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull 本节主要介绍这两种关系密切的主流国际字符编码标准的来历编码方案各自特点与相互关系

1 Unicode 统一码bull 发展历史

ndash 1987年施乐( Xerox )公司的 Joe Becker 与 Lee Collins 和苹果( Apple )公司的 Mark Davis 等人开始讨论统一编码 1987年 12月 Joe Becker造词 Unicode (统一码)含义为ldquo unique universal and uniform character encodingrdquo (单一通用统一的字符编码) 1989年 2月开始定期召开统一码会议 1989年 9月公布 Unicode草案

ndash 1991年 1月 3 日由 Xerox Apple Sun IBM Aldis Microsoft 等公司出资在美国加州成立了统一码协会( Unicode Consortium )并由协会设立非盈利性的统一码公司( Unicode Inc )后来 HP Adobe Borland Digital Lotus Novell 等公司也纷纷加入 1991年 1月成立统一码技术委员会 UTC 并制定了其规程

ndash 1991年 2月在 Ed Hart 的推动下进行了ldquo统一码对 10464 国际标准草案 1rdquo 的对话Unicode 与 ISOIEC 10646开始走向融合

ndash 1991年 8月发布 Unicode 标准 10版的第 1卷(体系结构非表意字符) 1992年6月发表 Unicode 10版的第 2卷(表意字符) 1993年 6月发布 Unicode 11版与 1993年 5月公布的 ISOIEC 10646-11993 实现了合并

ndash 1996年 7月发布 Unicode 20版ndash 1999年 9月发布 Unicode 30版ndash 2003年 4月发布 Unicode 40版(对应于 ISOIEC 106462003 ) 2004年 3月 31日发布 Unicode 401版 2005年 3月 31日发布 Unicode 410版

ndash 2006年 7月 14日发布 Unicode 50版 2008年 4月 4日发布 Unicode 51版 2009年 12月 22日发布 Unicode 52版

ndash 2010年 10月发布 Unicode 60版 2012年 1月发布 Unicode 61版(对应于 ISOIEC 106462012 ) 2012年 9月推出 Unicode 62版 2013年 9月推出 Unicode 63版

ndash 2014年 6月 16日发布 Unicode 70版 ndash 2015年 6月 17日发布 Unicode 80版

字符集bull Unicode 字符集的空间分成双字节的基本多语言平面 (Basic Multilingual Pla

ne BMP) 和 4 字节的辅助多语言平面 (Supplementary Multilingual Plane SMP) 两种

bull BMPndash Unicode 的基本平面或基本多语言平面 BMP 对应于 ISOIEC 10646-1 的第 00组的 00 平面( BMP )即 Unicode 与 ISOIEC 10646 的 BMP 中的字符编码完全一致

bull SMPndash 鉴于 Unicode 原有的 16位元空间不足以应用从 Unicode 31版本开始设立了 16 个辅助平面使 Unicode 的可使用空间由六万多字增至约一百万字

ndash 原有的 Unicode双字节空间称为基本平面或基本多语言平面 BMP 辅助多语言平面 SMP 字符要用 4 字节来储存

ndash 第一辅助平面摆放拼音文字(主要为现时已不再使用的文字)及符号范围在 U+10000 - U+1FFFD

ndash 第二辅助平面又称为表意文字补充平面 (Supplementary Ideographic Plane 简称 SIP) 现时摆放ldquo中日韩统汉字扩展 B 区rdquo共 43253 个汉字范围在 U+20000 - U+2FFFD

ndash 第三至十三辅助平面尚未使用ndash 第十四辅助平面又称为特殊用途补充平面 (Supplementary Special-purpose Pl

ane 简称 SSP) 摆放 Language tags 和 Variation Selectors 它们都是控制字符范围在 U+E0000 - U+E01FF

ndash 第十五至十六辅助平面都是私人使用区它们的范围是 U+F0000 - U+FFFFD 及 U+100000 - U+1000FD

bull Unicode 字符集的具体编码方式参加第 4小节ldquo 4 UTFrdquo

2 ISOIEC 10646

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull ISOIEC 10646 标准由 ISO 与 IEC 联合成立的 ISOIEC JTC1SC2WG2 制定ndash JTC 1 ( Joint Technical Committee 1 on Information

technology ISOIEC信息技术联合技术委员会 1 )负责信息技术方面标准的制定工作

ndash SC 2 ( SubCommittee 2 on Coded character sets 编码字符集分会 2 )下的 WG 2 ( Working Group 2 on Universal coded character set 通用编码字符集工作组 2 )负责制定国际通用字符编码标准即后来公布的 ISOIEC 10646

发展历史bull 1984年 ISO 的一些会员国发起制定新的国际字符编码标准同年 4月 ISO

与 IEC 联合成立 ISOIEC JTC1SC2WG2 1987年 3月制定出编码架构1992年 6月投票通过第二版国际标准草案

bull 1993年 5月推出 10646 标准时将内容分成两个部分标准首先发布的是其中的第 1 个部分(体系结构与基本多文种平面)的第 1版( Edition 1 ) ISOIEC 10646-11993 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane(信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

bull 2000年 3月推出 10646 标准第一个部分的第 2版( Edition 2 ) ISOIEC 10646-12000 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane

bull 2001年 10月推出 10646 标准第 2版的第二个部分(辅助平面)的第 1版( Edition 1 ) ISOIEC 10646-22001 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 2 Supplementary Planes

bull 2003年 10月推出的 10646新标准(第 1版 Edition 1 )将老标准中的两个部分标准合并成了一个单一的标准 ISOIEC 106462003 Information technology -- Universal Multiple- Octet Coded Character Set (UCS) 后来又于 2010年 2012年和 2014年分别推出了 ISOIEC 106462010 (第 2版)ISOIEC 106462012 (第 3版)和 ISOIEC 106462014 (第 4版)

UCS 通用字符集bull 通用字符集( Universal Character Set UCS )是

ISOIEC 10646 标准所定义的字符编码方式采用 4字节编码又称为 Universal Multiple-Octet Coded Character Set (通用多八位编码字符集)

bull 通用字符集是所有包括了其他字符集它保证了与其他字符集的双向兼容即如果你将任何文本字符串翻译到 UCS 格式然后再翻译回原编码你不会丢失任何信息

bull UCS 包含了已知语言的所有字符除了拉丁语希腊语斯拉夫语希伯来语阿拉伯语亚美尼亚语格鲁吉亚语还包括中文日文韩文这样的象形文字 UCS 还包括大量的图形印刷数学科学符号

名字与组合字符bull UCS 不仅给每个字符分配一个代码而且赋予了

一个正式的名字表示一个 UCS 或 Unicode值的十六进制数通常在前面加上ldquo U+rdquo 例如ldquo U+0041rdquo代表字符ldquo Ardquo

bull UCS里有些编码点分配给了组合字符组合字符机制允许在任何字符后加上重音符或其他指示标记 这在科学符号中特别有用 比如数学方程式和国际音标字母 可能会需要在一个基本字符后组合上一个或多个指示标记

实现级别bull 并不是所有的系统都需要支持像组合字符这样的的先进

机制因此 ISO 10646 指定了如下三种实现级别ndash 级别 1不支持组合字符和韩语 Hangul Jamo 字符 ( 一种特

别的 更加复杂的韩国文的编码 使用两个或三个子字符来编码一个韩文音节 )

ndash 级别 2类似于级别 1 但在某些文字中允许一列固定的组合字符 (例如 希伯来文 阿拉伯文 Devangari 孟加拉语 果鲁穆奇语 Gujarati Oriya 泰米尔语 Telugo 印 埃纳德语 Malayalam 泰国语和老挝语 ) 因为如果没有最起码的几个组合字符 UCS就不能完整地表达这些语言

ndash 级别 3支持所有的 UCS 字符如可以在任意一个字符上加上一个箭头或 和一个 tilde(颚化符号即字母上面的~ )

编码方式bull UCS 有如下两种编码方式

ndash UCS-2与 Unicode 的 2 字节编码基本一样ndash UCS-4 4 字节编码目前是在 UCS-2 前加

上 2 个全零的字节bull UCS 还有 UTF 编码方式参见下面第 4小节ldquo 4 UTFrdquo

3 Unicode 与 ISOIEC 10646bull 关系

ndash 历史上存在两个独立的尝试创立单一字符集的组织即国际标准化组织( ISO )和多语言软件制造商组成的统一码协会组织( Unicodeorg )前者开发的 ISO 10646项目后者开发的 Unicode项目因此最初制定了不同的标准

ndash 1991年前后两个项目的参与者都认识到世界不需要两个不兼容的字符集于是它们开始合并双方的工作成果并为创立一个单一编码表而协同工作

ndash 从 Unicode20开始 Unicode采用了与 ISO 10646-1相同的字库和字码 ISO 也承诺 ISO10646 将不会替超出 U+10FFFF 的 UCS-4 编码赋值以使得两者保持一致

ndash 两个项目仍都存在并独立地公布各自的标准但 Unicode协会和 ISOIEC JTC1SC2 都同意保持两者标准的码表兼容并紧密地共同调整任何未来的扩展

异同bull Unicode协会公布的 Unicode 标准包含了 ISO 10646-1 实现级别

3 的基本多文种平面在两个标准里所有的字符都在相同的位置并且有相同的名字

bull ISO 10646 标准就像 ISO 8859 标准一样只不过是一个简单的字符集表它定义了一些编码的别名指定了一些与标准有关的术语并包括了规范说明指定了怎样使用 UCS连接其他 ISO 标准的实现等

bull Unicode 标准额外定义了许多与字符有关的语义符号学并详细说明了绘制某些语言(如阿拉伯语)表达形式的算法处理双向文字(比如拉丁文和希伯来文的混合文字)的算法排序与字符串比较所需的算法等等

bull 考虑到 Unicode 标准有一个易记的名字既便宜又包括更多的辅助信息因而它使用得更广泛然而

bull 一般认为用于打印 ISO 10646-1 标准的字体在某些方面的质量要高于用于打印 Unicode 20 的专业字体设计者总是被建议说要两个标准都实现但一些提供的样例字形有显著的区别 ISO 10646-1 标准同样使用四种不同的风格变体来显示表意文字如中文日文和韩文 (CJK) 而 Unicode 20 的表里只有中文的变体

4 UTFbull Unicode 和 UCS 都是一个字符集可以看作为内码bull UTF ( UnicodeUCS Transformation Format 统一码

通用字符集转换格式)是一种编码方式它的出现是因为 Unicode 和 UCS 不适宜在某些场合直接传输和处理

bull UCS 和 Unicode 只是分配整数给字符的编码表现在存在好几种将一串字符表示为一串字节的方法(如高或低位字节在前)

bull 最显而易见的两种方法是将 UCS 和 Unicode 文本存储为 2 个 或 4 个字节序列的串这两种方法的正式名称分别为 UCS-2 和 UCS-4

bull 常用的 UTF具体编码方式有 UTF-8 UTF-16 和 UTF-32

UTF-8

bull UTF-8 是 UTF 的一种具体编码方式在 ISO 10646-1 的附录 R 和 IETF 的 RFC 2279 里定义

bull 由于要使文档中的文字与 ASCII兼容故 UTF-8 选择了使用可变长度字节来储存 Unicode 和 UCS 例如ndash ASCII 字母继续使用 1 字节储存ndash 重音文字希腊字母或西里尔字母等使用 2 字节来储存ndash 常用的汉字就要使用 3 字节ndash 辅助平面字符则使用 4 字节ndash 即 ASCII 不作变换其他字符做变长编码每个字符 1~4 字节

bull UTF-8 通常作为外码bull 在 UTF-8 文件的开首很多时都放置一个 U+FEFF 字符

(UTF-8 以 EF BB BF 代表 ) 以显示这个文字档案是以UTF-8 编码

UTF-8 的优点bull 与 CPU 字节顺序无关可以在不同平台之间交流

bull 容错能力高任何一个字节损坏后最多只会导致一个编码码位损失不会链锁错误 ( 如 GB 码错一个字节就会整行乱码 )

UTF-8 的缺点bull UTF-8 使用可变长度字节储存使计算机程序设计变得复杂 (故此在计算机程序或操作系统内部多采用 UCS-2 编码 )

bull 在旧式的中文日文及朝鲜文编码之中每字符都使用 2 字节储存而 UTF-8 须使用 3 字节 (采用 UTF-16 编码则可只使用 2字节储存 )

bull 泰语以往使用的 ISO 8859-11 每字符只使用 1 字节储存而 UTF-8 须使用 3 字节

UTF-8储存的多字节串字符bull U-00000000 - U-0000007F 0xxxxxxx bull U-00000080 - U-000007FF 110xxxxx 10xxxxxx

bull U-00000800 - U-0000FFFF 1110xxxx 10xxxxxx

10xxxxxx bull U-00010000 - U-001FFFFF 11110xxx 10xxxxx

x 10xxxxxx 10xxxxxx bull 在多字节串中第一个字节的开头ldquo 1rdquo 的数目就

是整个串中字节的数目bull 每个使用 UTF-8储存的字符除了第一个字节外其余字节的头两个位元都是以 10 开始使文字处理器能够较快地找出每个字符的开始位置

UTF-16bull UTF-16 是 UTF 的另一种具体编码方式在 ISO 1064

6-1 的附录 Q 和 IETF 的 RFC 2781 里定义bull UTF-16 是变长码( 2 或 4 字节)大致相当于 20位编码值在 0 到 0x10FFFF 之间基本上就是 Unicode 编码的实现 UTF-16 与 CPU 字序有关但因为最省空间常作为网络传输的外码 UTF-16 是 Unicode 的完美编码

bull lt0x10000 的直接用其对应的 16位整数编码位于 0x10000 ~ 0x10FFFF 之间的用 0xD800~0xDBFF 的 16位整数后跟 0xDC00~0xDFFF 的 16位整数的 4 字节编码 gt 0x10FFFF 的不能用 UTF-16 表示

bull 在 Unicode 的 BMP 中定义的字符(无论是拉丁字母汉字或其他文字或符号)一律使用 2 字节存储而在辅助平面定义的字符则以两个 2 字节的值来存储

UTF-16 的特点bull UTF-16比起 UTF-8 的好处在于大部分字符都以固定长

度的 2 字节存储但 UTF-16却无法相容于 ASCII 编码bull UTF-16 有两种编码模式即大尾序( big Endian 高位字节在前)和小尾序( little Endian 高位字节在后)储存形式(一般來說以 Macintosh 制作和存储的文字使用大尾序格式以 Microsoft 或 Linux 制作和存储的文字使用小尾序格式)

bull 为了弄区分 UTF-16 文件的大小尾序在 UTF-16 文件的开头都会放置一个 U+FEFF 字符作为字节顺序标记 (UTF-16LE 以 FF FE代表 UTF-16BE 以 FE FF代表 ) 以显示该文档是以 UTF-16 编码的

UTF-32

bull UTF-32 仅使用了 Unicode范围 (0 到 0x10FFFF) 的 32位编码相当于 UCS-4 的子集

bull 由于 Unicode 和 ISOIEC 10646 的编码和结构与前面讲过的 GB 13000 类似或等价这里就不再做详细的介绍

5支持bull 现在 UnicodeUCS 已经获得了十分广泛的支

持ndash网络与浏览器(如 HTML 4050 XML 与 IE

Safari Netscape Firefox Chrome Opera Edge 等)

ndash操作系统(如 Windows NT2000XPVista7810 Mac OS X iOS Android和 Linux )

ndash 编程语言新版本(如 CC++JavaObjective-CC Swift 等)

Unicode 代码的浏览器显示代码 字符标准名称 (英语 )

浏览器的显示

amp65 大写拉丁字母 A A

amp223 小写拉丁字母 Sharp S szlig

amp254 小写拉丁字母 Thorn thorn

amp916 大写希腊字母 Delta Δ

amp1049 大写斯拉夫字母 Short I Й

amp1511 希伯来字母 Qof ק

amp1605 阿拉伯字母 Meem م

amp3671 泰文数字 7 ๗amp4688 埃塞俄比亚音节文字 Qha ቐ

amp12354 日语平假名 A あamp12450 日语片假名 A アamp21494 简体汉字 叶 叶amp33865 繁体汉字 葉 葉amp50685 韩国音节文字 Yeob 엽

23 文字输出bull 文字输出是指将计算机内的字符编码通过计算机的输出设备(如显示器打印机喇叭)展现出所对应字符的图形或声音供人们阅读或聆听

bull 本节主要介绍文字图示输出的字形技术bull 文字声音输出属于语音合成只在本节的末尾作简单的介绍

231 字形技术bull 文字 = 图形bull 不论是象形文字中的单字还是拼音文字

中的字母都是用图形来表示的bull 在计算机里文字的表示 输出(显示和打

印)涉及ndash 字型ndash 字体ndash 字库

1字型bull 字型指构造和生成字形的方法一般可分为

ndash 点阵字 DOS 显卡 ROM 金山 科印特点似位图显示快占空间(字库大)放大后有马赛克效应

bull 显示字母 88 汉字 1616bull 打印 2424 4848 6464

ndash 矢量字单线条用于笔式绘图仪特点字库小算法简单难看

ndash 轮廓字用曲线描绘字的轮廓输出效果好所见即所得(WYSWYG) 可无级放大易实现空心 阴影 填充 变形等各种特效功能轮廓曲线一般采用样条曲线如 TrueType (Apple 1991 Mac OS Microsoft 1992 Windows 31)用的是二次 B 样条 Bezier曲线中文之星 RichWin采用的是三次 B 样条 Bezier曲线

字型种类

2字体bull 字体指字的形状风格如

ndash 汉字的

ndash 英文的

宋体楷体黑体仿宋

行楷隶书新魏幼圆

Times New Roman Arial Narrow Courier New

常用汉字字体bull 宋体mdashmdash宋体来自于北宋时雕版刻书所采用的欧体字(唐朝欧阳询体)宋体字的横顿拉捺挑钩别具特色间架平正疏密适中字体秀丽遒劲但笔画横细竖粗适合于刀刻不宜于手写现在宋体广泛用于印刷常来表现文档的正文

bull 仿宋体mdashmdash 1920年钱塘的丁辅之与丁善之等人将明代以后盛行的方廓形字体加以改造创造出长形和方形的聚珍仿宋后来演化为现在的仿宋体仿宋体比较接近于手写体为宋体和楷体的折中是采用的宋体的结构和楷体的笔法而成现常来表现打印文件以及文档的摘要和注释等

bull 黑体mdashmdash黑体是适应工艺美术的发展而出现的一种等线体是从日本引进的黑体的结构与宋体没有什么差别只是其笔画粗细一致健实粗壮主要用于文档的标题和重点及标语广告等方面

bull 楷体mdashmdash楷体源于楷书楷体的笔画圆浑笔调灵活结构端正美观但不宜于木板雕刻所以直到清末西洋的石板印刷术传入后才开始广泛用于印刷现代的楷体创造于 20世纪的二三十年代主要用于文档的正文(多用于中小学教材)也可用于工艺美术等方面

3字库bull 字库为一种文字的某一字体的所有字符的集合一般存放在一个磁盘文件中

bull 由于象形文字中单字的数量大(成千上万)而拼音文字中字母的数量小(不到一百个)所以字库的大小有很大的差别

bull 为了使文档界面丰富多彩常见的字处理软件都支持多种字体带有众多字库

4点阵字型的国家标准bull 我国已经公布了若干字体的点阵字型之国家标准

ndash GB 50071-19852001 信息技术 汉字编码字符集(基本集) 24 点阵字型

ndash GB 50072-19852001 信息技术 汉字编码字符集(辅助集) 24 点阵字型

ndash GB 5199-19862001 信息技术 汉字编码字符集(基本集) 16 点阵字型 宋体

ndash GB 6345-19862001 信息技术 汉字编码字符集(基本集) 32 点阵字型 宋体

ndash GB 12041-2001 信息技术 汉字编码字符集(基本集) 48点阵字型 宋体

ndash GB 17698-1999 信息技术 通用多八位编码字符集( I 区) 汉字 16 点阵字型

232 语音合成bull 文字的声音输出主要使用的是语音合成的技术bull 语音合成功能是ldquo文rarr语rdquo转换bull 文语转换 TTS (Text-To-Speech) 是将文本形式的信息转换成自然语音的一种技术其最终目标是使计算机输出清晰而又自然的声音

bull 英语的语音合成在上世纪 80年代就早已成熟而中文 汉语的合成现在也趋于成熟并有了广泛的应用(如汽车导航仪智能手机等)

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 50: 第一篇  媒体

体系结构bull UCS 的体系结构是基于所谓ldquo多八位rdquo的而ldquo八位rdquo就是一个字节ldquo多八位rdquo就是多个字节

bull UCS采用 4 个字节来表征组面行位的四维空间bull 整个 UCS空间包含 128 个组( 0x00组 ~0x7F组)每组有 256 个平面( 0x00 平面 ~0xFF 平面)每个平面有 256 行每行又由 256 个字位构成

bull UCS共有( 128 times 256 = ) 32 768 个平面每个平面有( 256 times 256 = ) 65 536 个字位每个字位对应于一个字符的编码

bull 目前的编码只限于 00组已经定义的平面有 00组的00 平面mdashmdash称之为基本多文种平面 BMP ( Basic Multilingual Plane ) 及若干辅助平面

UCS 的全部编码空间

每个平面256times256 个

字位

00组 00 平面

00组 FF 平面

01组 00 平面

7F组 00 平面00

01组

7F组

UCS 的 00组

BMPbull BMP = Basic Multilingual Plane 基本多文种平面bull BMP 用作双八位编码字符集称之为 UCS-2 它被

分成四个区ndash A- 区(字位 0x0000~0x4DFF 有 19 903 个字位)用于

字母文字音节文字以及各种符号ndash I- 区(字位 0x4E00~0x9FFF 共 20 992 个字位)用于中日韩统一汉字( CJK )

ndash O- 区(字位 0xA000~0xDFFF 共 16 384 个字位)保留未来标准化用

ndash R- 区(字位 0xE000~0xFFFD 共 8 190 个字位)为 BMP 的限制使用区包括专用字符变形显现形式及兼容字符

BMP总貌

A-区

00~33 拼音文字(见下页)

34~3D 朝鲜文

3E~44 朝鲜文补充 -A

45~4D 朝鲜文补充 -B

I-区 4E~9F CJK统一汉字O-区 A0~DF

R-区

E0~F8 专用区

F9~FA CJK兼容汉字FB 拼音文字变形显现形式

FC~FD 阿拉伯文变形显现形式 -A

FE半形组合用标志

CJK兼容形式

小写变体

阿拉伯文变形显现形式 -B

FF 半形及全形字符 特殊字符

BMP 的0x00~0x33

行字母文字区

00 基本拉丁文 拉丁文-1补充

01 拉丁文扩充-A 拉丁文扩充-B

02 拉丁文扩充-B 国际音标扩充 进格修饰字符

03 组合用发音符 基本希腊文 希腊符号及哥普特文

04 西里尔文

05 美亚尼亚文 希伯来文(基本和扩充)

06 基本阿拉伯文 阿拉伯文扩充

07

08

09 梵文 孟加拉文

0A 锡克教文 古吉拉特文

0B 奥利雅文 泰米尔文

0C 泰卢固文 卡纳达文

0D 德拉维族文

0E 泰文 老挝文

0F

10 格鲁吉亚文

11 朝鲜文字母

12~1D

1E 拉丁文扩充增补

1F 希腊文扩充

20 广义标点 上下标 货币符号 符号组合用区分标志

21 类似字母的符号 数字形式 箭头

22 数学运算符

23 零杂技术用符号

24 控制图符 光学识别符 带括号的字母数字

25 制表符 方块元素 几何图形符

26 零杂符号

27 示意符等

28~2F

30 CJK符号和标点 平假名 片假名

31 注音 朝鲜文兼容字母 CJK零杂字符

32 带括号的CJK字母及月份

33 CJK兼容字符

留作将来标准化用

非图形字符

表示形式bull GB 13000提供了字符编码表示的两种替代使用的形式

ndash 双八位 BMP 形式( UCS-2 )mdashmdash允许使用 BMP 中的字符且每个字符用两个字节表示

ndash 肆八位正则形式( UCS-4 )mdashmdash允许使用 GB 13000 中的全部字符且每个字符用四个字节表示

bull 除了 UCS-24外还有另外两种变形的表示形式ndash UTF-8 (单字节 ~ 多字节)ndash UTF-16 (双字节和 4 字节与 UCS-2 等价)ndash 目前在工业上的实现均为 UTF-16 ( UCS-2 )和 UTF-8ndash UTF = Unicode UCS Transformation Format 统一码 UC

S转换格式bull 关于统一码我们会在下一小节详细介绍

7 GBK 与 GB 18030bull 由于 GB 13000 标准与 GB 2312 标准的字符编码不兼容作为过渡在国家信息技术标准化委员会的主持下制定了与 GB 2312兼容的《汉字内码扩展规范( GBK )》( K 为扩展的ldquo扩rdquo字的拼音首字母)并于 1995年 12月 15日由原国家技术监督局标准司联合原电子工业部科技与质量监督司作为指导性技术规范发布实施

bull 2000年 GBK又被国家标准 GB 18030-2000《信息技术 信息交换用汉字编码字符集 基本集的扩充》所代替该标准收汉字 2万 7千个

bull 与 GB 2312 一样 GB 18030 也为中国的强制性国家标准微软公司的 Windows XPVista78 中文版与苹果公司的 Mac OS X 和 iOS 谷歌公司的 Android (安卓)等操作系统已经全面支持 GBK

GB 18030 的码位范围分布

字节数 码位空间 码位数目

单字节 0x00~0x7F 128

双字节第 1字节 第 2字节

23 9400x81~0xFE

0x40~0x7E 0x80~0xFE

四字节第 1字节 第 2字节 第 3字节 第 4字节

1 587 6000x81~0xFE 0x30~0x39 0x81~0xFE 0x30~0x39

GB 18030的

总体结构图

收录字符bull 单字节部分mdashmdash收录了GBT 11383 的 0x00~0x7F 全部 128 个字符(似 ASCI

I )bull 双字节部分mdashmdash收录内容如下 (21 003 个汉字和 884 个符号共 21 887 个字符 )

ndash GB 130001-93 的全部 CJK 统一汉字字符 20 902 个( GB 2312 的编码汉字在双字节 2 区其他 CJK 统一汉字在双字节 34 区)

ndash GB 130001-93 的 CJK兼容区挑选出来的 21 个汉字ldquo郎凉秊helliphellip﨨﨩rdquo( 0xFD9C~0xFDA0 和 0xFE40~0xFE4F )

ndash GB 130001-93 中收录而 GB 2312未收录的台湾地区使用的图形字符 139 个ldquoˊˋ˙helliphelliprdquo( 0xA840~0xA895 和 0xA940~0XA988 )

ndash GB 130001-93收录的其他字符 31 ( 13)个(在双字节 5 区)ndash GB 2312-80 中的非汉字字符 682 个( 0xA1A1~0xA9EF )ndash GB 12345-90 的竖排标点符号 19 ( 29)个ldquo︵︶︹helliphellip︳︴rdquo( 0xA6D9~0xA6

F5 )ndash GB 2312-80未收录的 10 个小写罗马数字ldquoⅰⅱⅲhelliphellipⅸⅹrdquo( 0xA2A1~ 0xA2A

A )ndash GB 2312-80未收录的带音调的汉语拼音字母 5 ( 4)个ldquo ńňǹrdquo 以及 ɑ 和 ɡ ( 0

xA8BB~0xA8C0 )ndash 汉字数字零ldquo〇rdquo (0xA996) 和欧元符ldquoeurordquo (0xA2E3)ndash 表意文字描述符 13 个ldquohelliphelliprdquo( 0xA989~0xA995 )ndash 对 GB 130001-93增补的汉字和部首 构件 80 个ldquohelliphellip䶮rdquo( 0xFE50~ 0x

FEA0 )bull 四字节部分mdashmdash收录了上述双字节字符之外的包括 CJK 统一汉字扩充 A 在内

的 GB 130001-93 中的全部字符

GB 18030双字节部分的码位安排

类别 区名 码位范围 码位数 字符数 内容

符号区双字节 1区 A1A1~A9FE 846 718

GB 2312非汉字字符等

双字节 5区 A840~A9A0 192 166 台湾图符等

汉字区双字节 2区 B0A1~F7FE 6768 6763 GB 2312汉字双字节 3区 8140~A0FE 6080 6080 CJK统一汉字双字节 4区 AA40~FEA0 8160 8160 CJK统一汉字等

用户自定义区双字节用户区 1 AAA1~AFFE 564

用户自定义字符双字节用户区 2 F8A1~FEFE 658

双字节用户区 3 A140~A7A0 672

GB 18030双字节部分的编码空间结构图 尾字节

0x40larr――rarr0x7E 0x80larr――rarr0xA0 0xA1larr――――――――――――rarr0xFE

0x81 uarr darr

0xA0

0xA1 uarr darr

0xA7

0xA8 0xA9

首字节

0xAA uarr | | | | | | | | | | darr

0xFE

双字节 3区

汉字区6 080个码位

双字节用户区 3

用户自定义区672个码位

双字节 5区 图形符号区192个码位

双字节 4区

汉字区8 160个码位

双字节 1区

图形符号区564个码位

双字节 2区

汉字区6 768个码位

双字节用户区 1 用户自定义区564个码位

双字节用户区 2 用户自定义区658个码位

223 国际通用字符编码

bull Unicode (统一码)是由多语言软件制造商组成的统一码协会( httpwwwUnicodeorg)所制定一种国际字符的编码标准

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull 本节主要介绍这两种关系密切的主流国际字符编码标准的来历编码方案各自特点与相互关系

1 Unicode 统一码bull 发展历史

ndash 1987年施乐( Xerox )公司的 Joe Becker 与 Lee Collins 和苹果( Apple )公司的 Mark Davis 等人开始讨论统一编码 1987年 12月 Joe Becker造词 Unicode (统一码)含义为ldquo unique universal and uniform character encodingrdquo (单一通用统一的字符编码) 1989年 2月开始定期召开统一码会议 1989年 9月公布 Unicode草案

ndash 1991年 1月 3 日由 Xerox Apple Sun IBM Aldis Microsoft 等公司出资在美国加州成立了统一码协会( Unicode Consortium )并由协会设立非盈利性的统一码公司( Unicode Inc )后来 HP Adobe Borland Digital Lotus Novell 等公司也纷纷加入 1991年 1月成立统一码技术委员会 UTC 并制定了其规程

ndash 1991年 2月在 Ed Hart 的推动下进行了ldquo统一码对 10464 国际标准草案 1rdquo 的对话Unicode 与 ISOIEC 10646开始走向融合

ndash 1991年 8月发布 Unicode 标准 10版的第 1卷(体系结构非表意字符) 1992年6月发表 Unicode 10版的第 2卷(表意字符) 1993年 6月发布 Unicode 11版与 1993年 5月公布的 ISOIEC 10646-11993 实现了合并

ndash 1996年 7月发布 Unicode 20版ndash 1999年 9月发布 Unicode 30版ndash 2003年 4月发布 Unicode 40版(对应于 ISOIEC 106462003 ) 2004年 3月 31日发布 Unicode 401版 2005年 3月 31日发布 Unicode 410版

ndash 2006年 7月 14日发布 Unicode 50版 2008年 4月 4日发布 Unicode 51版 2009年 12月 22日发布 Unicode 52版

ndash 2010年 10月发布 Unicode 60版 2012年 1月发布 Unicode 61版(对应于 ISOIEC 106462012 ) 2012年 9月推出 Unicode 62版 2013年 9月推出 Unicode 63版

ndash 2014年 6月 16日发布 Unicode 70版 ndash 2015年 6月 17日发布 Unicode 80版

字符集bull Unicode 字符集的空间分成双字节的基本多语言平面 (Basic Multilingual Pla

ne BMP) 和 4 字节的辅助多语言平面 (Supplementary Multilingual Plane SMP) 两种

bull BMPndash Unicode 的基本平面或基本多语言平面 BMP 对应于 ISOIEC 10646-1 的第 00组的 00 平面( BMP )即 Unicode 与 ISOIEC 10646 的 BMP 中的字符编码完全一致

bull SMPndash 鉴于 Unicode 原有的 16位元空间不足以应用从 Unicode 31版本开始设立了 16 个辅助平面使 Unicode 的可使用空间由六万多字增至约一百万字

ndash 原有的 Unicode双字节空间称为基本平面或基本多语言平面 BMP 辅助多语言平面 SMP 字符要用 4 字节来储存

ndash 第一辅助平面摆放拼音文字(主要为现时已不再使用的文字)及符号范围在 U+10000 - U+1FFFD

ndash 第二辅助平面又称为表意文字补充平面 (Supplementary Ideographic Plane 简称 SIP) 现时摆放ldquo中日韩统汉字扩展 B 区rdquo共 43253 个汉字范围在 U+20000 - U+2FFFD

ndash 第三至十三辅助平面尚未使用ndash 第十四辅助平面又称为特殊用途补充平面 (Supplementary Special-purpose Pl

ane 简称 SSP) 摆放 Language tags 和 Variation Selectors 它们都是控制字符范围在 U+E0000 - U+E01FF

ndash 第十五至十六辅助平面都是私人使用区它们的范围是 U+F0000 - U+FFFFD 及 U+100000 - U+1000FD

bull Unicode 字符集的具体编码方式参加第 4小节ldquo 4 UTFrdquo

2 ISOIEC 10646

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull ISOIEC 10646 标准由 ISO 与 IEC 联合成立的 ISOIEC JTC1SC2WG2 制定ndash JTC 1 ( Joint Technical Committee 1 on Information

technology ISOIEC信息技术联合技术委员会 1 )负责信息技术方面标准的制定工作

ndash SC 2 ( SubCommittee 2 on Coded character sets 编码字符集分会 2 )下的 WG 2 ( Working Group 2 on Universal coded character set 通用编码字符集工作组 2 )负责制定国际通用字符编码标准即后来公布的 ISOIEC 10646

发展历史bull 1984年 ISO 的一些会员国发起制定新的国际字符编码标准同年 4月 ISO

与 IEC 联合成立 ISOIEC JTC1SC2WG2 1987年 3月制定出编码架构1992年 6月投票通过第二版国际标准草案

bull 1993年 5月推出 10646 标准时将内容分成两个部分标准首先发布的是其中的第 1 个部分(体系结构与基本多文种平面)的第 1版( Edition 1 ) ISOIEC 10646-11993 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane(信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

bull 2000年 3月推出 10646 标准第一个部分的第 2版( Edition 2 ) ISOIEC 10646-12000 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane

bull 2001年 10月推出 10646 标准第 2版的第二个部分(辅助平面)的第 1版( Edition 1 ) ISOIEC 10646-22001 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 2 Supplementary Planes

bull 2003年 10月推出的 10646新标准(第 1版 Edition 1 )将老标准中的两个部分标准合并成了一个单一的标准 ISOIEC 106462003 Information technology -- Universal Multiple- Octet Coded Character Set (UCS) 后来又于 2010年 2012年和 2014年分别推出了 ISOIEC 106462010 (第 2版)ISOIEC 106462012 (第 3版)和 ISOIEC 106462014 (第 4版)

UCS 通用字符集bull 通用字符集( Universal Character Set UCS )是

ISOIEC 10646 标准所定义的字符编码方式采用 4字节编码又称为 Universal Multiple-Octet Coded Character Set (通用多八位编码字符集)

bull 通用字符集是所有包括了其他字符集它保证了与其他字符集的双向兼容即如果你将任何文本字符串翻译到 UCS 格式然后再翻译回原编码你不会丢失任何信息

bull UCS 包含了已知语言的所有字符除了拉丁语希腊语斯拉夫语希伯来语阿拉伯语亚美尼亚语格鲁吉亚语还包括中文日文韩文这样的象形文字 UCS 还包括大量的图形印刷数学科学符号

名字与组合字符bull UCS 不仅给每个字符分配一个代码而且赋予了

一个正式的名字表示一个 UCS 或 Unicode值的十六进制数通常在前面加上ldquo U+rdquo 例如ldquo U+0041rdquo代表字符ldquo Ardquo

bull UCS里有些编码点分配给了组合字符组合字符机制允许在任何字符后加上重音符或其他指示标记 这在科学符号中特别有用 比如数学方程式和国际音标字母 可能会需要在一个基本字符后组合上一个或多个指示标记

实现级别bull 并不是所有的系统都需要支持像组合字符这样的的先进

机制因此 ISO 10646 指定了如下三种实现级别ndash 级别 1不支持组合字符和韩语 Hangul Jamo 字符 ( 一种特

别的 更加复杂的韩国文的编码 使用两个或三个子字符来编码一个韩文音节 )

ndash 级别 2类似于级别 1 但在某些文字中允许一列固定的组合字符 (例如 希伯来文 阿拉伯文 Devangari 孟加拉语 果鲁穆奇语 Gujarati Oriya 泰米尔语 Telugo 印 埃纳德语 Malayalam 泰国语和老挝语 ) 因为如果没有最起码的几个组合字符 UCS就不能完整地表达这些语言

ndash 级别 3支持所有的 UCS 字符如可以在任意一个字符上加上一个箭头或 和一个 tilde(颚化符号即字母上面的~ )

编码方式bull UCS 有如下两种编码方式

ndash UCS-2与 Unicode 的 2 字节编码基本一样ndash UCS-4 4 字节编码目前是在 UCS-2 前加

上 2 个全零的字节bull UCS 还有 UTF 编码方式参见下面第 4小节ldquo 4 UTFrdquo

3 Unicode 与 ISOIEC 10646bull 关系

ndash 历史上存在两个独立的尝试创立单一字符集的组织即国际标准化组织( ISO )和多语言软件制造商组成的统一码协会组织( Unicodeorg )前者开发的 ISO 10646项目后者开发的 Unicode项目因此最初制定了不同的标准

ndash 1991年前后两个项目的参与者都认识到世界不需要两个不兼容的字符集于是它们开始合并双方的工作成果并为创立一个单一编码表而协同工作

ndash 从 Unicode20开始 Unicode采用了与 ISO 10646-1相同的字库和字码 ISO 也承诺 ISO10646 将不会替超出 U+10FFFF 的 UCS-4 编码赋值以使得两者保持一致

ndash 两个项目仍都存在并独立地公布各自的标准但 Unicode协会和 ISOIEC JTC1SC2 都同意保持两者标准的码表兼容并紧密地共同调整任何未来的扩展

异同bull Unicode协会公布的 Unicode 标准包含了 ISO 10646-1 实现级别

3 的基本多文种平面在两个标准里所有的字符都在相同的位置并且有相同的名字

bull ISO 10646 标准就像 ISO 8859 标准一样只不过是一个简单的字符集表它定义了一些编码的别名指定了一些与标准有关的术语并包括了规范说明指定了怎样使用 UCS连接其他 ISO 标准的实现等

bull Unicode 标准额外定义了许多与字符有关的语义符号学并详细说明了绘制某些语言(如阿拉伯语)表达形式的算法处理双向文字(比如拉丁文和希伯来文的混合文字)的算法排序与字符串比较所需的算法等等

bull 考虑到 Unicode 标准有一个易记的名字既便宜又包括更多的辅助信息因而它使用得更广泛然而

bull 一般认为用于打印 ISO 10646-1 标准的字体在某些方面的质量要高于用于打印 Unicode 20 的专业字体设计者总是被建议说要两个标准都实现但一些提供的样例字形有显著的区别 ISO 10646-1 标准同样使用四种不同的风格变体来显示表意文字如中文日文和韩文 (CJK) 而 Unicode 20 的表里只有中文的变体

4 UTFbull Unicode 和 UCS 都是一个字符集可以看作为内码bull UTF ( UnicodeUCS Transformation Format 统一码

通用字符集转换格式)是一种编码方式它的出现是因为 Unicode 和 UCS 不适宜在某些场合直接传输和处理

bull UCS 和 Unicode 只是分配整数给字符的编码表现在存在好几种将一串字符表示为一串字节的方法(如高或低位字节在前)

bull 最显而易见的两种方法是将 UCS 和 Unicode 文本存储为 2 个 或 4 个字节序列的串这两种方法的正式名称分别为 UCS-2 和 UCS-4

bull 常用的 UTF具体编码方式有 UTF-8 UTF-16 和 UTF-32

UTF-8

bull UTF-8 是 UTF 的一种具体编码方式在 ISO 10646-1 的附录 R 和 IETF 的 RFC 2279 里定义

bull 由于要使文档中的文字与 ASCII兼容故 UTF-8 选择了使用可变长度字节来储存 Unicode 和 UCS 例如ndash ASCII 字母继续使用 1 字节储存ndash 重音文字希腊字母或西里尔字母等使用 2 字节来储存ndash 常用的汉字就要使用 3 字节ndash 辅助平面字符则使用 4 字节ndash 即 ASCII 不作变换其他字符做变长编码每个字符 1~4 字节

bull UTF-8 通常作为外码bull 在 UTF-8 文件的开首很多时都放置一个 U+FEFF 字符

(UTF-8 以 EF BB BF 代表 ) 以显示这个文字档案是以UTF-8 编码

UTF-8 的优点bull 与 CPU 字节顺序无关可以在不同平台之间交流

bull 容错能力高任何一个字节损坏后最多只会导致一个编码码位损失不会链锁错误 ( 如 GB 码错一个字节就会整行乱码 )

UTF-8 的缺点bull UTF-8 使用可变长度字节储存使计算机程序设计变得复杂 (故此在计算机程序或操作系统内部多采用 UCS-2 编码 )

bull 在旧式的中文日文及朝鲜文编码之中每字符都使用 2 字节储存而 UTF-8 须使用 3 字节 (采用 UTF-16 编码则可只使用 2字节储存 )

bull 泰语以往使用的 ISO 8859-11 每字符只使用 1 字节储存而 UTF-8 须使用 3 字节

UTF-8储存的多字节串字符bull U-00000000 - U-0000007F 0xxxxxxx bull U-00000080 - U-000007FF 110xxxxx 10xxxxxx

bull U-00000800 - U-0000FFFF 1110xxxx 10xxxxxx

10xxxxxx bull U-00010000 - U-001FFFFF 11110xxx 10xxxxx

x 10xxxxxx 10xxxxxx bull 在多字节串中第一个字节的开头ldquo 1rdquo 的数目就

是整个串中字节的数目bull 每个使用 UTF-8储存的字符除了第一个字节外其余字节的头两个位元都是以 10 开始使文字处理器能够较快地找出每个字符的开始位置

UTF-16bull UTF-16 是 UTF 的另一种具体编码方式在 ISO 1064

6-1 的附录 Q 和 IETF 的 RFC 2781 里定义bull UTF-16 是变长码( 2 或 4 字节)大致相当于 20位编码值在 0 到 0x10FFFF 之间基本上就是 Unicode 编码的实现 UTF-16 与 CPU 字序有关但因为最省空间常作为网络传输的外码 UTF-16 是 Unicode 的完美编码

bull lt0x10000 的直接用其对应的 16位整数编码位于 0x10000 ~ 0x10FFFF 之间的用 0xD800~0xDBFF 的 16位整数后跟 0xDC00~0xDFFF 的 16位整数的 4 字节编码 gt 0x10FFFF 的不能用 UTF-16 表示

bull 在 Unicode 的 BMP 中定义的字符(无论是拉丁字母汉字或其他文字或符号)一律使用 2 字节存储而在辅助平面定义的字符则以两个 2 字节的值来存储

UTF-16 的特点bull UTF-16比起 UTF-8 的好处在于大部分字符都以固定长

度的 2 字节存储但 UTF-16却无法相容于 ASCII 编码bull UTF-16 有两种编码模式即大尾序( big Endian 高位字节在前)和小尾序( little Endian 高位字节在后)储存形式(一般來說以 Macintosh 制作和存储的文字使用大尾序格式以 Microsoft 或 Linux 制作和存储的文字使用小尾序格式)

bull 为了弄区分 UTF-16 文件的大小尾序在 UTF-16 文件的开头都会放置一个 U+FEFF 字符作为字节顺序标记 (UTF-16LE 以 FF FE代表 UTF-16BE 以 FE FF代表 ) 以显示该文档是以 UTF-16 编码的

UTF-32

bull UTF-32 仅使用了 Unicode范围 (0 到 0x10FFFF) 的 32位编码相当于 UCS-4 的子集

bull 由于 Unicode 和 ISOIEC 10646 的编码和结构与前面讲过的 GB 13000 类似或等价这里就不再做详细的介绍

5支持bull 现在 UnicodeUCS 已经获得了十分广泛的支

持ndash网络与浏览器(如 HTML 4050 XML 与 IE

Safari Netscape Firefox Chrome Opera Edge 等)

ndash操作系统(如 Windows NT2000XPVista7810 Mac OS X iOS Android和 Linux )

ndash 编程语言新版本(如 CC++JavaObjective-CC Swift 等)

Unicode 代码的浏览器显示代码 字符标准名称 (英语 )

浏览器的显示

amp65 大写拉丁字母 A A

amp223 小写拉丁字母 Sharp S szlig

amp254 小写拉丁字母 Thorn thorn

amp916 大写希腊字母 Delta Δ

amp1049 大写斯拉夫字母 Short I Й

amp1511 希伯来字母 Qof ק

amp1605 阿拉伯字母 Meem م

amp3671 泰文数字 7 ๗amp4688 埃塞俄比亚音节文字 Qha ቐ

amp12354 日语平假名 A あamp12450 日语片假名 A アamp21494 简体汉字 叶 叶amp33865 繁体汉字 葉 葉amp50685 韩国音节文字 Yeob 엽

23 文字输出bull 文字输出是指将计算机内的字符编码通过计算机的输出设备(如显示器打印机喇叭)展现出所对应字符的图形或声音供人们阅读或聆听

bull 本节主要介绍文字图示输出的字形技术bull 文字声音输出属于语音合成只在本节的末尾作简单的介绍

231 字形技术bull 文字 = 图形bull 不论是象形文字中的单字还是拼音文字

中的字母都是用图形来表示的bull 在计算机里文字的表示 输出(显示和打

印)涉及ndash 字型ndash 字体ndash 字库

1字型bull 字型指构造和生成字形的方法一般可分为

ndash 点阵字 DOS 显卡 ROM 金山 科印特点似位图显示快占空间(字库大)放大后有马赛克效应

bull 显示字母 88 汉字 1616bull 打印 2424 4848 6464

ndash 矢量字单线条用于笔式绘图仪特点字库小算法简单难看

ndash 轮廓字用曲线描绘字的轮廓输出效果好所见即所得(WYSWYG) 可无级放大易实现空心 阴影 填充 变形等各种特效功能轮廓曲线一般采用样条曲线如 TrueType (Apple 1991 Mac OS Microsoft 1992 Windows 31)用的是二次 B 样条 Bezier曲线中文之星 RichWin采用的是三次 B 样条 Bezier曲线

字型种类

2字体bull 字体指字的形状风格如

ndash 汉字的

ndash 英文的

宋体楷体黑体仿宋

行楷隶书新魏幼圆

Times New Roman Arial Narrow Courier New

常用汉字字体bull 宋体mdashmdash宋体来自于北宋时雕版刻书所采用的欧体字(唐朝欧阳询体)宋体字的横顿拉捺挑钩别具特色间架平正疏密适中字体秀丽遒劲但笔画横细竖粗适合于刀刻不宜于手写现在宋体广泛用于印刷常来表现文档的正文

bull 仿宋体mdashmdash 1920年钱塘的丁辅之与丁善之等人将明代以后盛行的方廓形字体加以改造创造出长形和方形的聚珍仿宋后来演化为现在的仿宋体仿宋体比较接近于手写体为宋体和楷体的折中是采用的宋体的结构和楷体的笔法而成现常来表现打印文件以及文档的摘要和注释等

bull 黑体mdashmdash黑体是适应工艺美术的发展而出现的一种等线体是从日本引进的黑体的结构与宋体没有什么差别只是其笔画粗细一致健实粗壮主要用于文档的标题和重点及标语广告等方面

bull 楷体mdashmdash楷体源于楷书楷体的笔画圆浑笔调灵活结构端正美观但不宜于木板雕刻所以直到清末西洋的石板印刷术传入后才开始广泛用于印刷现代的楷体创造于 20世纪的二三十年代主要用于文档的正文(多用于中小学教材)也可用于工艺美术等方面

3字库bull 字库为一种文字的某一字体的所有字符的集合一般存放在一个磁盘文件中

bull 由于象形文字中单字的数量大(成千上万)而拼音文字中字母的数量小(不到一百个)所以字库的大小有很大的差别

bull 为了使文档界面丰富多彩常见的字处理软件都支持多种字体带有众多字库

4点阵字型的国家标准bull 我国已经公布了若干字体的点阵字型之国家标准

ndash GB 50071-19852001 信息技术 汉字编码字符集(基本集) 24 点阵字型

ndash GB 50072-19852001 信息技术 汉字编码字符集(辅助集) 24 点阵字型

ndash GB 5199-19862001 信息技术 汉字编码字符集(基本集) 16 点阵字型 宋体

ndash GB 6345-19862001 信息技术 汉字编码字符集(基本集) 32 点阵字型 宋体

ndash GB 12041-2001 信息技术 汉字编码字符集(基本集) 48点阵字型 宋体

ndash GB 17698-1999 信息技术 通用多八位编码字符集( I 区) 汉字 16 点阵字型

232 语音合成bull 文字的声音输出主要使用的是语音合成的技术bull 语音合成功能是ldquo文rarr语rdquo转换bull 文语转换 TTS (Text-To-Speech) 是将文本形式的信息转换成自然语音的一种技术其最终目标是使计算机输出清晰而又自然的声音

bull 英语的语音合成在上世纪 80年代就早已成熟而中文 汉语的合成现在也趋于成熟并有了广泛的应用(如汽车导航仪智能手机等)

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 51: 第一篇  媒体

UCS 的全部编码空间

每个平面256times256 个

字位

00组 00 平面

00组 FF 平面

01组 00 平面

7F组 00 平面00

01组

7F组

UCS 的 00组

BMPbull BMP = Basic Multilingual Plane 基本多文种平面bull BMP 用作双八位编码字符集称之为 UCS-2 它被

分成四个区ndash A- 区(字位 0x0000~0x4DFF 有 19 903 个字位)用于

字母文字音节文字以及各种符号ndash I- 区(字位 0x4E00~0x9FFF 共 20 992 个字位)用于中日韩统一汉字( CJK )

ndash O- 区(字位 0xA000~0xDFFF 共 16 384 个字位)保留未来标准化用

ndash R- 区(字位 0xE000~0xFFFD 共 8 190 个字位)为 BMP 的限制使用区包括专用字符变形显现形式及兼容字符

BMP总貌

A-区

00~33 拼音文字(见下页)

34~3D 朝鲜文

3E~44 朝鲜文补充 -A

45~4D 朝鲜文补充 -B

I-区 4E~9F CJK统一汉字O-区 A0~DF

R-区

E0~F8 专用区

F9~FA CJK兼容汉字FB 拼音文字变形显现形式

FC~FD 阿拉伯文变形显现形式 -A

FE半形组合用标志

CJK兼容形式

小写变体

阿拉伯文变形显现形式 -B

FF 半形及全形字符 特殊字符

BMP 的0x00~0x33

行字母文字区

00 基本拉丁文 拉丁文-1补充

01 拉丁文扩充-A 拉丁文扩充-B

02 拉丁文扩充-B 国际音标扩充 进格修饰字符

03 组合用发音符 基本希腊文 希腊符号及哥普特文

04 西里尔文

05 美亚尼亚文 希伯来文(基本和扩充)

06 基本阿拉伯文 阿拉伯文扩充

07

08

09 梵文 孟加拉文

0A 锡克教文 古吉拉特文

0B 奥利雅文 泰米尔文

0C 泰卢固文 卡纳达文

0D 德拉维族文

0E 泰文 老挝文

0F

10 格鲁吉亚文

11 朝鲜文字母

12~1D

1E 拉丁文扩充增补

1F 希腊文扩充

20 广义标点 上下标 货币符号 符号组合用区分标志

21 类似字母的符号 数字形式 箭头

22 数学运算符

23 零杂技术用符号

24 控制图符 光学识别符 带括号的字母数字

25 制表符 方块元素 几何图形符

26 零杂符号

27 示意符等

28~2F

30 CJK符号和标点 平假名 片假名

31 注音 朝鲜文兼容字母 CJK零杂字符

32 带括号的CJK字母及月份

33 CJK兼容字符

留作将来标准化用

非图形字符

表示形式bull GB 13000提供了字符编码表示的两种替代使用的形式

ndash 双八位 BMP 形式( UCS-2 )mdashmdash允许使用 BMP 中的字符且每个字符用两个字节表示

ndash 肆八位正则形式( UCS-4 )mdashmdash允许使用 GB 13000 中的全部字符且每个字符用四个字节表示

bull 除了 UCS-24外还有另外两种变形的表示形式ndash UTF-8 (单字节 ~ 多字节)ndash UTF-16 (双字节和 4 字节与 UCS-2 等价)ndash 目前在工业上的实现均为 UTF-16 ( UCS-2 )和 UTF-8ndash UTF = Unicode UCS Transformation Format 统一码 UC

S转换格式bull 关于统一码我们会在下一小节详细介绍

7 GBK 与 GB 18030bull 由于 GB 13000 标准与 GB 2312 标准的字符编码不兼容作为过渡在国家信息技术标准化委员会的主持下制定了与 GB 2312兼容的《汉字内码扩展规范( GBK )》( K 为扩展的ldquo扩rdquo字的拼音首字母)并于 1995年 12月 15日由原国家技术监督局标准司联合原电子工业部科技与质量监督司作为指导性技术规范发布实施

bull 2000年 GBK又被国家标准 GB 18030-2000《信息技术 信息交换用汉字编码字符集 基本集的扩充》所代替该标准收汉字 2万 7千个

bull 与 GB 2312 一样 GB 18030 也为中国的强制性国家标准微软公司的 Windows XPVista78 中文版与苹果公司的 Mac OS X 和 iOS 谷歌公司的 Android (安卓)等操作系统已经全面支持 GBK

GB 18030 的码位范围分布

字节数 码位空间 码位数目

单字节 0x00~0x7F 128

双字节第 1字节 第 2字节

23 9400x81~0xFE

0x40~0x7E 0x80~0xFE

四字节第 1字节 第 2字节 第 3字节 第 4字节

1 587 6000x81~0xFE 0x30~0x39 0x81~0xFE 0x30~0x39

GB 18030的

总体结构图

收录字符bull 单字节部分mdashmdash收录了GBT 11383 的 0x00~0x7F 全部 128 个字符(似 ASCI

I )bull 双字节部分mdashmdash收录内容如下 (21 003 个汉字和 884 个符号共 21 887 个字符 )

ndash GB 130001-93 的全部 CJK 统一汉字字符 20 902 个( GB 2312 的编码汉字在双字节 2 区其他 CJK 统一汉字在双字节 34 区)

ndash GB 130001-93 的 CJK兼容区挑选出来的 21 个汉字ldquo郎凉秊helliphellip﨨﨩rdquo( 0xFD9C~0xFDA0 和 0xFE40~0xFE4F )

ndash GB 130001-93 中收录而 GB 2312未收录的台湾地区使用的图形字符 139 个ldquoˊˋ˙helliphelliprdquo( 0xA840~0xA895 和 0xA940~0XA988 )

ndash GB 130001-93收录的其他字符 31 ( 13)个(在双字节 5 区)ndash GB 2312-80 中的非汉字字符 682 个( 0xA1A1~0xA9EF )ndash GB 12345-90 的竖排标点符号 19 ( 29)个ldquo︵︶︹helliphellip︳︴rdquo( 0xA6D9~0xA6

F5 )ndash GB 2312-80未收录的 10 个小写罗马数字ldquoⅰⅱⅲhelliphellipⅸⅹrdquo( 0xA2A1~ 0xA2A

A )ndash GB 2312-80未收录的带音调的汉语拼音字母 5 ( 4)个ldquo ńňǹrdquo 以及 ɑ 和 ɡ ( 0

xA8BB~0xA8C0 )ndash 汉字数字零ldquo〇rdquo (0xA996) 和欧元符ldquoeurordquo (0xA2E3)ndash 表意文字描述符 13 个ldquohelliphelliprdquo( 0xA989~0xA995 )ndash 对 GB 130001-93增补的汉字和部首 构件 80 个ldquohelliphellip䶮rdquo( 0xFE50~ 0x

FEA0 )bull 四字节部分mdashmdash收录了上述双字节字符之外的包括 CJK 统一汉字扩充 A 在内

的 GB 130001-93 中的全部字符

GB 18030双字节部分的码位安排

类别 区名 码位范围 码位数 字符数 内容

符号区双字节 1区 A1A1~A9FE 846 718

GB 2312非汉字字符等

双字节 5区 A840~A9A0 192 166 台湾图符等

汉字区双字节 2区 B0A1~F7FE 6768 6763 GB 2312汉字双字节 3区 8140~A0FE 6080 6080 CJK统一汉字双字节 4区 AA40~FEA0 8160 8160 CJK统一汉字等

用户自定义区双字节用户区 1 AAA1~AFFE 564

用户自定义字符双字节用户区 2 F8A1~FEFE 658

双字节用户区 3 A140~A7A0 672

GB 18030双字节部分的编码空间结构图 尾字节

0x40larr――rarr0x7E 0x80larr――rarr0xA0 0xA1larr――――――――――――rarr0xFE

0x81 uarr darr

0xA0

0xA1 uarr darr

0xA7

0xA8 0xA9

首字节

0xAA uarr | | | | | | | | | | darr

0xFE

双字节 3区

汉字区6 080个码位

双字节用户区 3

用户自定义区672个码位

双字节 5区 图形符号区192个码位

双字节 4区

汉字区8 160个码位

双字节 1区

图形符号区564个码位

双字节 2区

汉字区6 768个码位

双字节用户区 1 用户自定义区564个码位

双字节用户区 2 用户自定义区658个码位

223 国际通用字符编码

bull Unicode (统一码)是由多语言软件制造商组成的统一码协会( httpwwwUnicodeorg)所制定一种国际字符的编码标准

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull 本节主要介绍这两种关系密切的主流国际字符编码标准的来历编码方案各自特点与相互关系

1 Unicode 统一码bull 发展历史

ndash 1987年施乐( Xerox )公司的 Joe Becker 与 Lee Collins 和苹果( Apple )公司的 Mark Davis 等人开始讨论统一编码 1987年 12月 Joe Becker造词 Unicode (统一码)含义为ldquo unique universal and uniform character encodingrdquo (单一通用统一的字符编码) 1989年 2月开始定期召开统一码会议 1989年 9月公布 Unicode草案

ndash 1991年 1月 3 日由 Xerox Apple Sun IBM Aldis Microsoft 等公司出资在美国加州成立了统一码协会( Unicode Consortium )并由协会设立非盈利性的统一码公司( Unicode Inc )后来 HP Adobe Borland Digital Lotus Novell 等公司也纷纷加入 1991年 1月成立统一码技术委员会 UTC 并制定了其规程

ndash 1991年 2月在 Ed Hart 的推动下进行了ldquo统一码对 10464 国际标准草案 1rdquo 的对话Unicode 与 ISOIEC 10646开始走向融合

ndash 1991年 8月发布 Unicode 标准 10版的第 1卷(体系结构非表意字符) 1992年6月发表 Unicode 10版的第 2卷(表意字符) 1993年 6月发布 Unicode 11版与 1993年 5月公布的 ISOIEC 10646-11993 实现了合并

ndash 1996年 7月发布 Unicode 20版ndash 1999年 9月发布 Unicode 30版ndash 2003年 4月发布 Unicode 40版(对应于 ISOIEC 106462003 ) 2004年 3月 31日发布 Unicode 401版 2005年 3月 31日发布 Unicode 410版

ndash 2006年 7月 14日发布 Unicode 50版 2008年 4月 4日发布 Unicode 51版 2009年 12月 22日发布 Unicode 52版

ndash 2010年 10月发布 Unicode 60版 2012年 1月发布 Unicode 61版(对应于 ISOIEC 106462012 ) 2012年 9月推出 Unicode 62版 2013年 9月推出 Unicode 63版

ndash 2014年 6月 16日发布 Unicode 70版 ndash 2015年 6月 17日发布 Unicode 80版

字符集bull Unicode 字符集的空间分成双字节的基本多语言平面 (Basic Multilingual Pla

ne BMP) 和 4 字节的辅助多语言平面 (Supplementary Multilingual Plane SMP) 两种

bull BMPndash Unicode 的基本平面或基本多语言平面 BMP 对应于 ISOIEC 10646-1 的第 00组的 00 平面( BMP )即 Unicode 与 ISOIEC 10646 的 BMP 中的字符编码完全一致

bull SMPndash 鉴于 Unicode 原有的 16位元空间不足以应用从 Unicode 31版本开始设立了 16 个辅助平面使 Unicode 的可使用空间由六万多字增至约一百万字

ndash 原有的 Unicode双字节空间称为基本平面或基本多语言平面 BMP 辅助多语言平面 SMP 字符要用 4 字节来储存

ndash 第一辅助平面摆放拼音文字(主要为现时已不再使用的文字)及符号范围在 U+10000 - U+1FFFD

ndash 第二辅助平面又称为表意文字补充平面 (Supplementary Ideographic Plane 简称 SIP) 现时摆放ldquo中日韩统汉字扩展 B 区rdquo共 43253 个汉字范围在 U+20000 - U+2FFFD

ndash 第三至十三辅助平面尚未使用ndash 第十四辅助平面又称为特殊用途补充平面 (Supplementary Special-purpose Pl

ane 简称 SSP) 摆放 Language tags 和 Variation Selectors 它们都是控制字符范围在 U+E0000 - U+E01FF

ndash 第十五至十六辅助平面都是私人使用区它们的范围是 U+F0000 - U+FFFFD 及 U+100000 - U+1000FD

bull Unicode 字符集的具体编码方式参加第 4小节ldquo 4 UTFrdquo

2 ISOIEC 10646

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull ISOIEC 10646 标准由 ISO 与 IEC 联合成立的 ISOIEC JTC1SC2WG2 制定ndash JTC 1 ( Joint Technical Committee 1 on Information

technology ISOIEC信息技术联合技术委员会 1 )负责信息技术方面标准的制定工作

ndash SC 2 ( SubCommittee 2 on Coded character sets 编码字符集分会 2 )下的 WG 2 ( Working Group 2 on Universal coded character set 通用编码字符集工作组 2 )负责制定国际通用字符编码标准即后来公布的 ISOIEC 10646

发展历史bull 1984年 ISO 的一些会员国发起制定新的国际字符编码标准同年 4月 ISO

与 IEC 联合成立 ISOIEC JTC1SC2WG2 1987年 3月制定出编码架构1992年 6月投票通过第二版国际标准草案

bull 1993年 5月推出 10646 标准时将内容分成两个部分标准首先发布的是其中的第 1 个部分(体系结构与基本多文种平面)的第 1版( Edition 1 ) ISOIEC 10646-11993 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane(信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

bull 2000年 3月推出 10646 标准第一个部分的第 2版( Edition 2 ) ISOIEC 10646-12000 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane

bull 2001年 10月推出 10646 标准第 2版的第二个部分(辅助平面)的第 1版( Edition 1 ) ISOIEC 10646-22001 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 2 Supplementary Planes

bull 2003年 10月推出的 10646新标准(第 1版 Edition 1 )将老标准中的两个部分标准合并成了一个单一的标准 ISOIEC 106462003 Information technology -- Universal Multiple- Octet Coded Character Set (UCS) 后来又于 2010年 2012年和 2014年分别推出了 ISOIEC 106462010 (第 2版)ISOIEC 106462012 (第 3版)和 ISOIEC 106462014 (第 4版)

UCS 通用字符集bull 通用字符集( Universal Character Set UCS )是

ISOIEC 10646 标准所定义的字符编码方式采用 4字节编码又称为 Universal Multiple-Octet Coded Character Set (通用多八位编码字符集)

bull 通用字符集是所有包括了其他字符集它保证了与其他字符集的双向兼容即如果你将任何文本字符串翻译到 UCS 格式然后再翻译回原编码你不会丢失任何信息

bull UCS 包含了已知语言的所有字符除了拉丁语希腊语斯拉夫语希伯来语阿拉伯语亚美尼亚语格鲁吉亚语还包括中文日文韩文这样的象形文字 UCS 还包括大量的图形印刷数学科学符号

名字与组合字符bull UCS 不仅给每个字符分配一个代码而且赋予了

一个正式的名字表示一个 UCS 或 Unicode值的十六进制数通常在前面加上ldquo U+rdquo 例如ldquo U+0041rdquo代表字符ldquo Ardquo

bull UCS里有些编码点分配给了组合字符组合字符机制允许在任何字符后加上重音符或其他指示标记 这在科学符号中特别有用 比如数学方程式和国际音标字母 可能会需要在一个基本字符后组合上一个或多个指示标记

实现级别bull 并不是所有的系统都需要支持像组合字符这样的的先进

机制因此 ISO 10646 指定了如下三种实现级别ndash 级别 1不支持组合字符和韩语 Hangul Jamo 字符 ( 一种特

别的 更加复杂的韩国文的编码 使用两个或三个子字符来编码一个韩文音节 )

ndash 级别 2类似于级别 1 但在某些文字中允许一列固定的组合字符 (例如 希伯来文 阿拉伯文 Devangari 孟加拉语 果鲁穆奇语 Gujarati Oriya 泰米尔语 Telugo 印 埃纳德语 Malayalam 泰国语和老挝语 ) 因为如果没有最起码的几个组合字符 UCS就不能完整地表达这些语言

ndash 级别 3支持所有的 UCS 字符如可以在任意一个字符上加上一个箭头或 和一个 tilde(颚化符号即字母上面的~ )

编码方式bull UCS 有如下两种编码方式

ndash UCS-2与 Unicode 的 2 字节编码基本一样ndash UCS-4 4 字节编码目前是在 UCS-2 前加

上 2 个全零的字节bull UCS 还有 UTF 编码方式参见下面第 4小节ldquo 4 UTFrdquo

3 Unicode 与 ISOIEC 10646bull 关系

ndash 历史上存在两个独立的尝试创立单一字符集的组织即国际标准化组织( ISO )和多语言软件制造商组成的统一码协会组织( Unicodeorg )前者开发的 ISO 10646项目后者开发的 Unicode项目因此最初制定了不同的标准

ndash 1991年前后两个项目的参与者都认识到世界不需要两个不兼容的字符集于是它们开始合并双方的工作成果并为创立一个单一编码表而协同工作

ndash 从 Unicode20开始 Unicode采用了与 ISO 10646-1相同的字库和字码 ISO 也承诺 ISO10646 将不会替超出 U+10FFFF 的 UCS-4 编码赋值以使得两者保持一致

ndash 两个项目仍都存在并独立地公布各自的标准但 Unicode协会和 ISOIEC JTC1SC2 都同意保持两者标准的码表兼容并紧密地共同调整任何未来的扩展

异同bull Unicode协会公布的 Unicode 标准包含了 ISO 10646-1 实现级别

3 的基本多文种平面在两个标准里所有的字符都在相同的位置并且有相同的名字

bull ISO 10646 标准就像 ISO 8859 标准一样只不过是一个简单的字符集表它定义了一些编码的别名指定了一些与标准有关的术语并包括了规范说明指定了怎样使用 UCS连接其他 ISO 标准的实现等

bull Unicode 标准额外定义了许多与字符有关的语义符号学并详细说明了绘制某些语言(如阿拉伯语)表达形式的算法处理双向文字(比如拉丁文和希伯来文的混合文字)的算法排序与字符串比较所需的算法等等

bull 考虑到 Unicode 标准有一个易记的名字既便宜又包括更多的辅助信息因而它使用得更广泛然而

bull 一般认为用于打印 ISO 10646-1 标准的字体在某些方面的质量要高于用于打印 Unicode 20 的专业字体设计者总是被建议说要两个标准都实现但一些提供的样例字形有显著的区别 ISO 10646-1 标准同样使用四种不同的风格变体来显示表意文字如中文日文和韩文 (CJK) 而 Unicode 20 的表里只有中文的变体

4 UTFbull Unicode 和 UCS 都是一个字符集可以看作为内码bull UTF ( UnicodeUCS Transformation Format 统一码

通用字符集转换格式)是一种编码方式它的出现是因为 Unicode 和 UCS 不适宜在某些场合直接传输和处理

bull UCS 和 Unicode 只是分配整数给字符的编码表现在存在好几种将一串字符表示为一串字节的方法(如高或低位字节在前)

bull 最显而易见的两种方法是将 UCS 和 Unicode 文本存储为 2 个 或 4 个字节序列的串这两种方法的正式名称分别为 UCS-2 和 UCS-4

bull 常用的 UTF具体编码方式有 UTF-8 UTF-16 和 UTF-32

UTF-8

bull UTF-8 是 UTF 的一种具体编码方式在 ISO 10646-1 的附录 R 和 IETF 的 RFC 2279 里定义

bull 由于要使文档中的文字与 ASCII兼容故 UTF-8 选择了使用可变长度字节来储存 Unicode 和 UCS 例如ndash ASCII 字母继续使用 1 字节储存ndash 重音文字希腊字母或西里尔字母等使用 2 字节来储存ndash 常用的汉字就要使用 3 字节ndash 辅助平面字符则使用 4 字节ndash 即 ASCII 不作变换其他字符做变长编码每个字符 1~4 字节

bull UTF-8 通常作为外码bull 在 UTF-8 文件的开首很多时都放置一个 U+FEFF 字符

(UTF-8 以 EF BB BF 代表 ) 以显示这个文字档案是以UTF-8 编码

UTF-8 的优点bull 与 CPU 字节顺序无关可以在不同平台之间交流

bull 容错能力高任何一个字节损坏后最多只会导致一个编码码位损失不会链锁错误 ( 如 GB 码错一个字节就会整行乱码 )

UTF-8 的缺点bull UTF-8 使用可变长度字节储存使计算机程序设计变得复杂 (故此在计算机程序或操作系统内部多采用 UCS-2 编码 )

bull 在旧式的中文日文及朝鲜文编码之中每字符都使用 2 字节储存而 UTF-8 须使用 3 字节 (采用 UTF-16 编码则可只使用 2字节储存 )

bull 泰语以往使用的 ISO 8859-11 每字符只使用 1 字节储存而 UTF-8 须使用 3 字节

UTF-8储存的多字节串字符bull U-00000000 - U-0000007F 0xxxxxxx bull U-00000080 - U-000007FF 110xxxxx 10xxxxxx

bull U-00000800 - U-0000FFFF 1110xxxx 10xxxxxx

10xxxxxx bull U-00010000 - U-001FFFFF 11110xxx 10xxxxx

x 10xxxxxx 10xxxxxx bull 在多字节串中第一个字节的开头ldquo 1rdquo 的数目就

是整个串中字节的数目bull 每个使用 UTF-8储存的字符除了第一个字节外其余字节的头两个位元都是以 10 开始使文字处理器能够较快地找出每个字符的开始位置

UTF-16bull UTF-16 是 UTF 的另一种具体编码方式在 ISO 1064

6-1 的附录 Q 和 IETF 的 RFC 2781 里定义bull UTF-16 是变长码( 2 或 4 字节)大致相当于 20位编码值在 0 到 0x10FFFF 之间基本上就是 Unicode 编码的实现 UTF-16 与 CPU 字序有关但因为最省空间常作为网络传输的外码 UTF-16 是 Unicode 的完美编码

bull lt0x10000 的直接用其对应的 16位整数编码位于 0x10000 ~ 0x10FFFF 之间的用 0xD800~0xDBFF 的 16位整数后跟 0xDC00~0xDFFF 的 16位整数的 4 字节编码 gt 0x10FFFF 的不能用 UTF-16 表示

bull 在 Unicode 的 BMP 中定义的字符(无论是拉丁字母汉字或其他文字或符号)一律使用 2 字节存储而在辅助平面定义的字符则以两个 2 字节的值来存储

UTF-16 的特点bull UTF-16比起 UTF-8 的好处在于大部分字符都以固定长

度的 2 字节存储但 UTF-16却无法相容于 ASCII 编码bull UTF-16 有两种编码模式即大尾序( big Endian 高位字节在前)和小尾序( little Endian 高位字节在后)储存形式(一般來說以 Macintosh 制作和存储的文字使用大尾序格式以 Microsoft 或 Linux 制作和存储的文字使用小尾序格式)

bull 为了弄区分 UTF-16 文件的大小尾序在 UTF-16 文件的开头都会放置一个 U+FEFF 字符作为字节顺序标记 (UTF-16LE 以 FF FE代表 UTF-16BE 以 FE FF代表 ) 以显示该文档是以 UTF-16 编码的

UTF-32

bull UTF-32 仅使用了 Unicode范围 (0 到 0x10FFFF) 的 32位编码相当于 UCS-4 的子集

bull 由于 Unicode 和 ISOIEC 10646 的编码和结构与前面讲过的 GB 13000 类似或等价这里就不再做详细的介绍

5支持bull 现在 UnicodeUCS 已经获得了十分广泛的支

持ndash网络与浏览器(如 HTML 4050 XML 与 IE

Safari Netscape Firefox Chrome Opera Edge 等)

ndash操作系统(如 Windows NT2000XPVista7810 Mac OS X iOS Android和 Linux )

ndash 编程语言新版本(如 CC++JavaObjective-CC Swift 等)

Unicode 代码的浏览器显示代码 字符标准名称 (英语 )

浏览器的显示

amp65 大写拉丁字母 A A

amp223 小写拉丁字母 Sharp S szlig

amp254 小写拉丁字母 Thorn thorn

amp916 大写希腊字母 Delta Δ

amp1049 大写斯拉夫字母 Short I Й

amp1511 希伯来字母 Qof ק

amp1605 阿拉伯字母 Meem م

amp3671 泰文数字 7 ๗amp4688 埃塞俄比亚音节文字 Qha ቐ

amp12354 日语平假名 A あamp12450 日语片假名 A アamp21494 简体汉字 叶 叶amp33865 繁体汉字 葉 葉amp50685 韩国音节文字 Yeob 엽

23 文字输出bull 文字输出是指将计算机内的字符编码通过计算机的输出设备(如显示器打印机喇叭)展现出所对应字符的图形或声音供人们阅读或聆听

bull 本节主要介绍文字图示输出的字形技术bull 文字声音输出属于语音合成只在本节的末尾作简单的介绍

231 字形技术bull 文字 = 图形bull 不论是象形文字中的单字还是拼音文字

中的字母都是用图形来表示的bull 在计算机里文字的表示 输出(显示和打

印)涉及ndash 字型ndash 字体ndash 字库

1字型bull 字型指构造和生成字形的方法一般可分为

ndash 点阵字 DOS 显卡 ROM 金山 科印特点似位图显示快占空间(字库大)放大后有马赛克效应

bull 显示字母 88 汉字 1616bull 打印 2424 4848 6464

ndash 矢量字单线条用于笔式绘图仪特点字库小算法简单难看

ndash 轮廓字用曲线描绘字的轮廓输出效果好所见即所得(WYSWYG) 可无级放大易实现空心 阴影 填充 变形等各种特效功能轮廓曲线一般采用样条曲线如 TrueType (Apple 1991 Mac OS Microsoft 1992 Windows 31)用的是二次 B 样条 Bezier曲线中文之星 RichWin采用的是三次 B 样条 Bezier曲线

字型种类

2字体bull 字体指字的形状风格如

ndash 汉字的

ndash 英文的

宋体楷体黑体仿宋

行楷隶书新魏幼圆

Times New Roman Arial Narrow Courier New

常用汉字字体bull 宋体mdashmdash宋体来自于北宋时雕版刻书所采用的欧体字(唐朝欧阳询体)宋体字的横顿拉捺挑钩别具特色间架平正疏密适中字体秀丽遒劲但笔画横细竖粗适合于刀刻不宜于手写现在宋体广泛用于印刷常来表现文档的正文

bull 仿宋体mdashmdash 1920年钱塘的丁辅之与丁善之等人将明代以后盛行的方廓形字体加以改造创造出长形和方形的聚珍仿宋后来演化为现在的仿宋体仿宋体比较接近于手写体为宋体和楷体的折中是采用的宋体的结构和楷体的笔法而成现常来表现打印文件以及文档的摘要和注释等

bull 黑体mdashmdash黑体是适应工艺美术的发展而出现的一种等线体是从日本引进的黑体的结构与宋体没有什么差别只是其笔画粗细一致健实粗壮主要用于文档的标题和重点及标语广告等方面

bull 楷体mdashmdash楷体源于楷书楷体的笔画圆浑笔调灵活结构端正美观但不宜于木板雕刻所以直到清末西洋的石板印刷术传入后才开始广泛用于印刷现代的楷体创造于 20世纪的二三十年代主要用于文档的正文(多用于中小学教材)也可用于工艺美术等方面

3字库bull 字库为一种文字的某一字体的所有字符的集合一般存放在一个磁盘文件中

bull 由于象形文字中单字的数量大(成千上万)而拼音文字中字母的数量小(不到一百个)所以字库的大小有很大的差别

bull 为了使文档界面丰富多彩常见的字处理软件都支持多种字体带有众多字库

4点阵字型的国家标准bull 我国已经公布了若干字体的点阵字型之国家标准

ndash GB 50071-19852001 信息技术 汉字编码字符集(基本集) 24 点阵字型

ndash GB 50072-19852001 信息技术 汉字编码字符集(辅助集) 24 点阵字型

ndash GB 5199-19862001 信息技术 汉字编码字符集(基本集) 16 点阵字型 宋体

ndash GB 6345-19862001 信息技术 汉字编码字符集(基本集) 32 点阵字型 宋体

ndash GB 12041-2001 信息技术 汉字编码字符集(基本集) 48点阵字型 宋体

ndash GB 17698-1999 信息技术 通用多八位编码字符集( I 区) 汉字 16 点阵字型

232 语音合成bull 文字的声音输出主要使用的是语音合成的技术bull 语音合成功能是ldquo文rarr语rdquo转换bull 文语转换 TTS (Text-To-Speech) 是将文本形式的信息转换成自然语音的一种技术其最终目标是使计算机输出清晰而又自然的声音

bull 英语的语音合成在上世纪 80年代就早已成熟而中文 汉语的合成现在也趋于成熟并有了广泛的应用(如汽车导航仪智能手机等)

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 52: 第一篇  媒体

UCS 的 00组

BMPbull BMP = Basic Multilingual Plane 基本多文种平面bull BMP 用作双八位编码字符集称之为 UCS-2 它被

分成四个区ndash A- 区(字位 0x0000~0x4DFF 有 19 903 个字位)用于

字母文字音节文字以及各种符号ndash I- 区(字位 0x4E00~0x9FFF 共 20 992 个字位)用于中日韩统一汉字( CJK )

ndash O- 区(字位 0xA000~0xDFFF 共 16 384 个字位)保留未来标准化用

ndash R- 区(字位 0xE000~0xFFFD 共 8 190 个字位)为 BMP 的限制使用区包括专用字符变形显现形式及兼容字符

BMP总貌

A-区

00~33 拼音文字(见下页)

34~3D 朝鲜文

3E~44 朝鲜文补充 -A

45~4D 朝鲜文补充 -B

I-区 4E~9F CJK统一汉字O-区 A0~DF

R-区

E0~F8 专用区

F9~FA CJK兼容汉字FB 拼音文字变形显现形式

FC~FD 阿拉伯文变形显现形式 -A

FE半形组合用标志

CJK兼容形式

小写变体

阿拉伯文变形显现形式 -B

FF 半形及全形字符 特殊字符

BMP 的0x00~0x33

行字母文字区

00 基本拉丁文 拉丁文-1补充

01 拉丁文扩充-A 拉丁文扩充-B

02 拉丁文扩充-B 国际音标扩充 进格修饰字符

03 组合用发音符 基本希腊文 希腊符号及哥普特文

04 西里尔文

05 美亚尼亚文 希伯来文(基本和扩充)

06 基本阿拉伯文 阿拉伯文扩充

07

08

09 梵文 孟加拉文

0A 锡克教文 古吉拉特文

0B 奥利雅文 泰米尔文

0C 泰卢固文 卡纳达文

0D 德拉维族文

0E 泰文 老挝文

0F

10 格鲁吉亚文

11 朝鲜文字母

12~1D

1E 拉丁文扩充增补

1F 希腊文扩充

20 广义标点 上下标 货币符号 符号组合用区分标志

21 类似字母的符号 数字形式 箭头

22 数学运算符

23 零杂技术用符号

24 控制图符 光学识别符 带括号的字母数字

25 制表符 方块元素 几何图形符

26 零杂符号

27 示意符等

28~2F

30 CJK符号和标点 平假名 片假名

31 注音 朝鲜文兼容字母 CJK零杂字符

32 带括号的CJK字母及月份

33 CJK兼容字符

留作将来标准化用

非图形字符

表示形式bull GB 13000提供了字符编码表示的两种替代使用的形式

ndash 双八位 BMP 形式( UCS-2 )mdashmdash允许使用 BMP 中的字符且每个字符用两个字节表示

ndash 肆八位正则形式( UCS-4 )mdashmdash允许使用 GB 13000 中的全部字符且每个字符用四个字节表示

bull 除了 UCS-24外还有另外两种变形的表示形式ndash UTF-8 (单字节 ~ 多字节)ndash UTF-16 (双字节和 4 字节与 UCS-2 等价)ndash 目前在工业上的实现均为 UTF-16 ( UCS-2 )和 UTF-8ndash UTF = Unicode UCS Transformation Format 统一码 UC

S转换格式bull 关于统一码我们会在下一小节详细介绍

7 GBK 与 GB 18030bull 由于 GB 13000 标准与 GB 2312 标准的字符编码不兼容作为过渡在国家信息技术标准化委员会的主持下制定了与 GB 2312兼容的《汉字内码扩展规范( GBK )》( K 为扩展的ldquo扩rdquo字的拼音首字母)并于 1995年 12月 15日由原国家技术监督局标准司联合原电子工业部科技与质量监督司作为指导性技术规范发布实施

bull 2000年 GBK又被国家标准 GB 18030-2000《信息技术 信息交换用汉字编码字符集 基本集的扩充》所代替该标准收汉字 2万 7千个

bull 与 GB 2312 一样 GB 18030 也为中国的强制性国家标准微软公司的 Windows XPVista78 中文版与苹果公司的 Mac OS X 和 iOS 谷歌公司的 Android (安卓)等操作系统已经全面支持 GBK

GB 18030 的码位范围分布

字节数 码位空间 码位数目

单字节 0x00~0x7F 128

双字节第 1字节 第 2字节

23 9400x81~0xFE

0x40~0x7E 0x80~0xFE

四字节第 1字节 第 2字节 第 3字节 第 4字节

1 587 6000x81~0xFE 0x30~0x39 0x81~0xFE 0x30~0x39

GB 18030的

总体结构图

收录字符bull 单字节部分mdashmdash收录了GBT 11383 的 0x00~0x7F 全部 128 个字符(似 ASCI

I )bull 双字节部分mdashmdash收录内容如下 (21 003 个汉字和 884 个符号共 21 887 个字符 )

ndash GB 130001-93 的全部 CJK 统一汉字字符 20 902 个( GB 2312 的编码汉字在双字节 2 区其他 CJK 统一汉字在双字节 34 区)

ndash GB 130001-93 的 CJK兼容区挑选出来的 21 个汉字ldquo郎凉秊helliphellip﨨﨩rdquo( 0xFD9C~0xFDA0 和 0xFE40~0xFE4F )

ndash GB 130001-93 中收录而 GB 2312未收录的台湾地区使用的图形字符 139 个ldquoˊˋ˙helliphelliprdquo( 0xA840~0xA895 和 0xA940~0XA988 )

ndash GB 130001-93收录的其他字符 31 ( 13)个(在双字节 5 区)ndash GB 2312-80 中的非汉字字符 682 个( 0xA1A1~0xA9EF )ndash GB 12345-90 的竖排标点符号 19 ( 29)个ldquo︵︶︹helliphellip︳︴rdquo( 0xA6D9~0xA6

F5 )ndash GB 2312-80未收录的 10 个小写罗马数字ldquoⅰⅱⅲhelliphellipⅸⅹrdquo( 0xA2A1~ 0xA2A

A )ndash GB 2312-80未收录的带音调的汉语拼音字母 5 ( 4)个ldquo ńňǹrdquo 以及 ɑ 和 ɡ ( 0

xA8BB~0xA8C0 )ndash 汉字数字零ldquo〇rdquo (0xA996) 和欧元符ldquoeurordquo (0xA2E3)ndash 表意文字描述符 13 个ldquohelliphelliprdquo( 0xA989~0xA995 )ndash 对 GB 130001-93增补的汉字和部首 构件 80 个ldquohelliphellip䶮rdquo( 0xFE50~ 0x

FEA0 )bull 四字节部分mdashmdash收录了上述双字节字符之外的包括 CJK 统一汉字扩充 A 在内

的 GB 130001-93 中的全部字符

GB 18030双字节部分的码位安排

类别 区名 码位范围 码位数 字符数 内容

符号区双字节 1区 A1A1~A9FE 846 718

GB 2312非汉字字符等

双字节 5区 A840~A9A0 192 166 台湾图符等

汉字区双字节 2区 B0A1~F7FE 6768 6763 GB 2312汉字双字节 3区 8140~A0FE 6080 6080 CJK统一汉字双字节 4区 AA40~FEA0 8160 8160 CJK统一汉字等

用户自定义区双字节用户区 1 AAA1~AFFE 564

用户自定义字符双字节用户区 2 F8A1~FEFE 658

双字节用户区 3 A140~A7A0 672

GB 18030双字节部分的编码空间结构图 尾字节

0x40larr――rarr0x7E 0x80larr――rarr0xA0 0xA1larr――――――――――――rarr0xFE

0x81 uarr darr

0xA0

0xA1 uarr darr

0xA7

0xA8 0xA9

首字节

0xAA uarr | | | | | | | | | | darr

0xFE

双字节 3区

汉字区6 080个码位

双字节用户区 3

用户自定义区672个码位

双字节 5区 图形符号区192个码位

双字节 4区

汉字区8 160个码位

双字节 1区

图形符号区564个码位

双字节 2区

汉字区6 768个码位

双字节用户区 1 用户自定义区564个码位

双字节用户区 2 用户自定义区658个码位

223 国际通用字符编码

bull Unicode (统一码)是由多语言软件制造商组成的统一码协会( httpwwwUnicodeorg)所制定一种国际字符的编码标准

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull 本节主要介绍这两种关系密切的主流国际字符编码标准的来历编码方案各自特点与相互关系

1 Unicode 统一码bull 发展历史

ndash 1987年施乐( Xerox )公司的 Joe Becker 与 Lee Collins 和苹果( Apple )公司的 Mark Davis 等人开始讨论统一编码 1987年 12月 Joe Becker造词 Unicode (统一码)含义为ldquo unique universal and uniform character encodingrdquo (单一通用统一的字符编码) 1989年 2月开始定期召开统一码会议 1989年 9月公布 Unicode草案

ndash 1991年 1月 3 日由 Xerox Apple Sun IBM Aldis Microsoft 等公司出资在美国加州成立了统一码协会( Unicode Consortium )并由协会设立非盈利性的统一码公司( Unicode Inc )后来 HP Adobe Borland Digital Lotus Novell 等公司也纷纷加入 1991年 1月成立统一码技术委员会 UTC 并制定了其规程

ndash 1991年 2月在 Ed Hart 的推动下进行了ldquo统一码对 10464 国际标准草案 1rdquo 的对话Unicode 与 ISOIEC 10646开始走向融合

ndash 1991年 8月发布 Unicode 标准 10版的第 1卷(体系结构非表意字符) 1992年6月发表 Unicode 10版的第 2卷(表意字符) 1993年 6月发布 Unicode 11版与 1993年 5月公布的 ISOIEC 10646-11993 实现了合并

ndash 1996年 7月发布 Unicode 20版ndash 1999年 9月发布 Unicode 30版ndash 2003年 4月发布 Unicode 40版(对应于 ISOIEC 106462003 ) 2004年 3月 31日发布 Unicode 401版 2005年 3月 31日发布 Unicode 410版

ndash 2006年 7月 14日发布 Unicode 50版 2008年 4月 4日发布 Unicode 51版 2009年 12月 22日发布 Unicode 52版

ndash 2010年 10月发布 Unicode 60版 2012年 1月发布 Unicode 61版(对应于 ISOIEC 106462012 ) 2012年 9月推出 Unicode 62版 2013年 9月推出 Unicode 63版

ndash 2014年 6月 16日发布 Unicode 70版 ndash 2015年 6月 17日发布 Unicode 80版

字符集bull Unicode 字符集的空间分成双字节的基本多语言平面 (Basic Multilingual Pla

ne BMP) 和 4 字节的辅助多语言平面 (Supplementary Multilingual Plane SMP) 两种

bull BMPndash Unicode 的基本平面或基本多语言平面 BMP 对应于 ISOIEC 10646-1 的第 00组的 00 平面( BMP )即 Unicode 与 ISOIEC 10646 的 BMP 中的字符编码完全一致

bull SMPndash 鉴于 Unicode 原有的 16位元空间不足以应用从 Unicode 31版本开始设立了 16 个辅助平面使 Unicode 的可使用空间由六万多字增至约一百万字

ndash 原有的 Unicode双字节空间称为基本平面或基本多语言平面 BMP 辅助多语言平面 SMP 字符要用 4 字节来储存

ndash 第一辅助平面摆放拼音文字(主要为现时已不再使用的文字)及符号范围在 U+10000 - U+1FFFD

ndash 第二辅助平面又称为表意文字补充平面 (Supplementary Ideographic Plane 简称 SIP) 现时摆放ldquo中日韩统汉字扩展 B 区rdquo共 43253 个汉字范围在 U+20000 - U+2FFFD

ndash 第三至十三辅助平面尚未使用ndash 第十四辅助平面又称为特殊用途补充平面 (Supplementary Special-purpose Pl

ane 简称 SSP) 摆放 Language tags 和 Variation Selectors 它们都是控制字符范围在 U+E0000 - U+E01FF

ndash 第十五至十六辅助平面都是私人使用区它们的范围是 U+F0000 - U+FFFFD 及 U+100000 - U+1000FD

bull Unicode 字符集的具体编码方式参加第 4小节ldquo 4 UTFrdquo

2 ISOIEC 10646

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull ISOIEC 10646 标准由 ISO 与 IEC 联合成立的 ISOIEC JTC1SC2WG2 制定ndash JTC 1 ( Joint Technical Committee 1 on Information

technology ISOIEC信息技术联合技术委员会 1 )负责信息技术方面标准的制定工作

ndash SC 2 ( SubCommittee 2 on Coded character sets 编码字符集分会 2 )下的 WG 2 ( Working Group 2 on Universal coded character set 通用编码字符集工作组 2 )负责制定国际通用字符编码标准即后来公布的 ISOIEC 10646

发展历史bull 1984年 ISO 的一些会员国发起制定新的国际字符编码标准同年 4月 ISO

与 IEC 联合成立 ISOIEC JTC1SC2WG2 1987年 3月制定出编码架构1992年 6月投票通过第二版国际标准草案

bull 1993年 5月推出 10646 标准时将内容分成两个部分标准首先发布的是其中的第 1 个部分(体系结构与基本多文种平面)的第 1版( Edition 1 ) ISOIEC 10646-11993 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane(信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

bull 2000年 3月推出 10646 标准第一个部分的第 2版( Edition 2 ) ISOIEC 10646-12000 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane

bull 2001年 10月推出 10646 标准第 2版的第二个部分(辅助平面)的第 1版( Edition 1 ) ISOIEC 10646-22001 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 2 Supplementary Planes

bull 2003年 10月推出的 10646新标准(第 1版 Edition 1 )将老标准中的两个部分标准合并成了一个单一的标准 ISOIEC 106462003 Information technology -- Universal Multiple- Octet Coded Character Set (UCS) 后来又于 2010年 2012年和 2014年分别推出了 ISOIEC 106462010 (第 2版)ISOIEC 106462012 (第 3版)和 ISOIEC 106462014 (第 4版)

UCS 通用字符集bull 通用字符集( Universal Character Set UCS )是

ISOIEC 10646 标准所定义的字符编码方式采用 4字节编码又称为 Universal Multiple-Octet Coded Character Set (通用多八位编码字符集)

bull 通用字符集是所有包括了其他字符集它保证了与其他字符集的双向兼容即如果你将任何文本字符串翻译到 UCS 格式然后再翻译回原编码你不会丢失任何信息

bull UCS 包含了已知语言的所有字符除了拉丁语希腊语斯拉夫语希伯来语阿拉伯语亚美尼亚语格鲁吉亚语还包括中文日文韩文这样的象形文字 UCS 还包括大量的图形印刷数学科学符号

名字与组合字符bull UCS 不仅给每个字符分配一个代码而且赋予了

一个正式的名字表示一个 UCS 或 Unicode值的十六进制数通常在前面加上ldquo U+rdquo 例如ldquo U+0041rdquo代表字符ldquo Ardquo

bull UCS里有些编码点分配给了组合字符组合字符机制允许在任何字符后加上重音符或其他指示标记 这在科学符号中特别有用 比如数学方程式和国际音标字母 可能会需要在一个基本字符后组合上一个或多个指示标记

实现级别bull 并不是所有的系统都需要支持像组合字符这样的的先进

机制因此 ISO 10646 指定了如下三种实现级别ndash 级别 1不支持组合字符和韩语 Hangul Jamo 字符 ( 一种特

别的 更加复杂的韩国文的编码 使用两个或三个子字符来编码一个韩文音节 )

ndash 级别 2类似于级别 1 但在某些文字中允许一列固定的组合字符 (例如 希伯来文 阿拉伯文 Devangari 孟加拉语 果鲁穆奇语 Gujarati Oriya 泰米尔语 Telugo 印 埃纳德语 Malayalam 泰国语和老挝语 ) 因为如果没有最起码的几个组合字符 UCS就不能完整地表达这些语言

ndash 级别 3支持所有的 UCS 字符如可以在任意一个字符上加上一个箭头或 和一个 tilde(颚化符号即字母上面的~ )

编码方式bull UCS 有如下两种编码方式

ndash UCS-2与 Unicode 的 2 字节编码基本一样ndash UCS-4 4 字节编码目前是在 UCS-2 前加

上 2 个全零的字节bull UCS 还有 UTF 编码方式参见下面第 4小节ldquo 4 UTFrdquo

3 Unicode 与 ISOIEC 10646bull 关系

ndash 历史上存在两个独立的尝试创立单一字符集的组织即国际标准化组织( ISO )和多语言软件制造商组成的统一码协会组织( Unicodeorg )前者开发的 ISO 10646项目后者开发的 Unicode项目因此最初制定了不同的标准

ndash 1991年前后两个项目的参与者都认识到世界不需要两个不兼容的字符集于是它们开始合并双方的工作成果并为创立一个单一编码表而协同工作

ndash 从 Unicode20开始 Unicode采用了与 ISO 10646-1相同的字库和字码 ISO 也承诺 ISO10646 将不会替超出 U+10FFFF 的 UCS-4 编码赋值以使得两者保持一致

ndash 两个项目仍都存在并独立地公布各自的标准但 Unicode协会和 ISOIEC JTC1SC2 都同意保持两者标准的码表兼容并紧密地共同调整任何未来的扩展

异同bull Unicode协会公布的 Unicode 标准包含了 ISO 10646-1 实现级别

3 的基本多文种平面在两个标准里所有的字符都在相同的位置并且有相同的名字

bull ISO 10646 标准就像 ISO 8859 标准一样只不过是一个简单的字符集表它定义了一些编码的别名指定了一些与标准有关的术语并包括了规范说明指定了怎样使用 UCS连接其他 ISO 标准的实现等

bull Unicode 标准额外定义了许多与字符有关的语义符号学并详细说明了绘制某些语言(如阿拉伯语)表达形式的算法处理双向文字(比如拉丁文和希伯来文的混合文字)的算法排序与字符串比较所需的算法等等

bull 考虑到 Unicode 标准有一个易记的名字既便宜又包括更多的辅助信息因而它使用得更广泛然而

bull 一般认为用于打印 ISO 10646-1 标准的字体在某些方面的质量要高于用于打印 Unicode 20 的专业字体设计者总是被建议说要两个标准都实现但一些提供的样例字形有显著的区别 ISO 10646-1 标准同样使用四种不同的风格变体来显示表意文字如中文日文和韩文 (CJK) 而 Unicode 20 的表里只有中文的变体

4 UTFbull Unicode 和 UCS 都是一个字符集可以看作为内码bull UTF ( UnicodeUCS Transformation Format 统一码

通用字符集转换格式)是一种编码方式它的出现是因为 Unicode 和 UCS 不适宜在某些场合直接传输和处理

bull UCS 和 Unicode 只是分配整数给字符的编码表现在存在好几种将一串字符表示为一串字节的方法(如高或低位字节在前)

bull 最显而易见的两种方法是将 UCS 和 Unicode 文本存储为 2 个 或 4 个字节序列的串这两种方法的正式名称分别为 UCS-2 和 UCS-4

bull 常用的 UTF具体编码方式有 UTF-8 UTF-16 和 UTF-32

UTF-8

bull UTF-8 是 UTF 的一种具体编码方式在 ISO 10646-1 的附录 R 和 IETF 的 RFC 2279 里定义

bull 由于要使文档中的文字与 ASCII兼容故 UTF-8 选择了使用可变长度字节来储存 Unicode 和 UCS 例如ndash ASCII 字母继续使用 1 字节储存ndash 重音文字希腊字母或西里尔字母等使用 2 字节来储存ndash 常用的汉字就要使用 3 字节ndash 辅助平面字符则使用 4 字节ndash 即 ASCII 不作变换其他字符做变长编码每个字符 1~4 字节

bull UTF-8 通常作为外码bull 在 UTF-8 文件的开首很多时都放置一个 U+FEFF 字符

(UTF-8 以 EF BB BF 代表 ) 以显示这个文字档案是以UTF-8 编码

UTF-8 的优点bull 与 CPU 字节顺序无关可以在不同平台之间交流

bull 容错能力高任何一个字节损坏后最多只会导致一个编码码位损失不会链锁错误 ( 如 GB 码错一个字节就会整行乱码 )

UTF-8 的缺点bull UTF-8 使用可变长度字节储存使计算机程序设计变得复杂 (故此在计算机程序或操作系统内部多采用 UCS-2 编码 )

bull 在旧式的中文日文及朝鲜文编码之中每字符都使用 2 字节储存而 UTF-8 须使用 3 字节 (采用 UTF-16 编码则可只使用 2字节储存 )

bull 泰语以往使用的 ISO 8859-11 每字符只使用 1 字节储存而 UTF-8 须使用 3 字节

UTF-8储存的多字节串字符bull U-00000000 - U-0000007F 0xxxxxxx bull U-00000080 - U-000007FF 110xxxxx 10xxxxxx

bull U-00000800 - U-0000FFFF 1110xxxx 10xxxxxx

10xxxxxx bull U-00010000 - U-001FFFFF 11110xxx 10xxxxx

x 10xxxxxx 10xxxxxx bull 在多字节串中第一个字节的开头ldquo 1rdquo 的数目就

是整个串中字节的数目bull 每个使用 UTF-8储存的字符除了第一个字节外其余字节的头两个位元都是以 10 开始使文字处理器能够较快地找出每个字符的开始位置

UTF-16bull UTF-16 是 UTF 的另一种具体编码方式在 ISO 1064

6-1 的附录 Q 和 IETF 的 RFC 2781 里定义bull UTF-16 是变长码( 2 或 4 字节)大致相当于 20位编码值在 0 到 0x10FFFF 之间基本上就是 Unicode 编码的实现 UTF-16 与 CPU 字序有关但因为最省空间常作为网络传输的外码 UTF-16 是 Unicode 的完美编码

bull lt0x10000 的直接用其对应的 16位整数编码位于 0x10000 ~ 0x10FFFF 之间的用 0xD800~0xDBFF 的 16位整数后跟 0xDC00~0xDFFF 的 16位整数的 4 字节编码 gt 0x10FFFF 的不能用 UTF-16 表示

bull 在 Unicode 的 BMP 中定义的字符(无论是拉丁字母汉字或其他文字或符号)一律使用 2 字节存储而在辅助平面定义的字符则以两个 2 字节的值来存储

UTF-16 的特点bull UTF-16比起 UTF-8 的好处在于大部分字符都以固定长

度的 2 字节存储但 UTF-16却无法相容于 ASCII 编码bull UTF-16 有两种编码模式即大尾序( big Endian 高位字节在前)和小尾序( little Endian 高位字节在后)储存形式(一般來說以 Macintosh 制作和存储的文字使用大尾序格式以 Microsoft 或 Linux 制作和存储的文字使用小尾序格式)

bull 为了弄区分 UTF-16 文件的大小尾序在 UTF-16 文件的开头都会放置一个 U+FEFF 字符作为字节顺序标记 (UTF-16LE 以 FF FE代表 UTF-16BE 以 FE FF代表 ) 以显示该文档是以 UTF-16 编码的

UTF-32

bull UTF-32 仅使用了 Unicode范围 (0 到 0x10FFFF) 的 32位编码相当于 UCS-4 的子集

bull 由于 Unicode 和 ISOIEC 10646 的编码和结构与前面讲过的 GB 13000 类似或等价这里就不再做详细的介绍

5支持bull 现在 UnicodeUCS 已经获得了十分广泛的支

持ndash网络与浏览器(如 HTML 4050 XML 与 IE

Safari Netscape Firefox Chrome Opera Edge 等)

ndash操作系统(如 Windows NT2000XPVista7810 Mac OS X iOS Android和 Linux )

ndash 编程语言新版本(如 CC++JavaObjective-CC Swift 等)

Unicode 代码的浏览器显示代码 字符标准名称 (英语 )

浏览器的显示

amp65 大写拉丁字母 A A

amp223 小写拉丁字母 Sharp S szlig

amp254 小写拉丁字母 Thorn thorn

amp916 大写希腊字母 Delta Δ

amp1049 大写斯拉夫字母 Short I Й

amp1511 希伯来字母 Qof ק

amp1605 阿拉伯字母 Meem م

amp3671 泰文数字 7 ๗amp4688 埃塞俄比亚音节文字 Qha ቐ

amp12354 日语平假名 A あamp12450 日语片假名 A アamp21494 简体汉字 叶 叶amp33865 繁体汉字 葉 葉amp50685 韩国音节文字 Yeob 엽

23 文字输出bull 文字输出是指将计算机内的字符编码通过计算机的输出设备(如显示器打印机喇叭)展现出所对应字符的图形或声音供人们阅读或聆听

bull 本节主要介绍文字图示输出的字形技术bull 文字声音输出属于语音合成只在本节的末尾作简单的介绍

231 字形技术bull 文字 = 图形bull 不论是象形文字中的单字还是拼音文字

中的字母都是用图形来表示的bull 在计算机里文字的表示 输出(显示和打

印)涉及ndash 字型ndash 字体ndash 字库

1字型bull 字型指构造和生成字形的方法一般可分为

ndash 点阵字 DOS 显卡 ROM 金山 科印特点似位图显示快占空间(字库大)放大后有马赛克效应

bull 显示字母 88 汉字 1616bull 打印 2424 4848 6464

ndash 矢量字单线条用于笔式绘图仪特点字库小算法简单难看

ndash 轮廓字用曲线描绘字的轮廓输出效果好所见即所得(WYSWYG) 可无级放大易实现空心 阴影 填充 变形等各种特效功能轮廓曲线一般采用样条曲线如 TrueType (Apple 1991 Mac OS Microsoft 1992 Windows 31)用的是二次 B 样条 Bezier曲线中文之星 RichWin采用的是三次 B 样条 Bezier曲线

字型种类

2字体bull 字体指字的形状风格如

ndash 汉字的

ndash 英文的

宋体楷体黑体仿宋

行楷隶书新魏幼圆

Times New Roman Arial Narrow Courier New

常用汉字字体bull 宋体mdashmdash宋体来自于北宋时雕版刻书所采用的欧体字(唐朝欧阳询体)宋体字的横顿拉捺挑钩别具特色间架平正疏密适中字体秀丽遒劲但笔画横细竖粗适合于刀刻不宜于手写现在宋体广泛用于印刷常来表现文档的正文

bull 仿宋体mdashmdash 1920年钱塘的丁辅之与丁善之等人将明代以后盛行的方廓形字体加以改造创造出长形和方形的聚珍仿宋后来演化为现在的仿宋体仿宋体比较接近于手写体为宋体和楷体的折中是采用的宋体的结构和楷体的笔法而成现常来表现打印文件以及文档的摘要和注释等

bull 黑体mdashmdash黑体是适应工艺美术的发展而出现的一种等线体是从日本引进的黑体的结构与宋体没有什么差别只是其笔画粗细一致健实粗壮主要用于文档的标题和重点及标语广告等方面

bull 楷体mdashmdash楷体源于楷书楷体的笔画圆浑笔调灵活结构端正美观但不宜于木板雕刻所以直到清末西洋的石板印刷术传入后才开始广泛用于印刷现代的楷体创造于 20世纪的二三十年代主要用于文档的正文(多用于中小学教材)也可用于工艺美术等方面

3字库bull 字库为一种文字的某一字体的所有字符的集合一般存放在一个磁盘文件中

bull 由于象形文字中单字的数量大(成千上万)而拼音文字中字母的数量小(不到一百个)所以字库的大小有很大的差别

bull 为了使文档界面丰富多彩常见的字处理软件都支持多种字体带有众多字库

4点阵字型的国家标准bull 我国已经公布了若干字体的点阵字型之国家标准

ndash GB 50071-19852001 信息技术 汉字编码字符集(基本集) 24 点阵字型

ndash GB 50072-19852001 信息技术 汉字编码字符集(辅助集) 24 点阵字型

ndash GB 5199-19862001 信息技术 汉字编码字符集(基本集) 16 点阵字型 宋体

ndash GB 6345-19862001 信息技术 汉字编码字符集(基本集) 32 点阵字型 宋体

ndash GB 12041-2001 信息技术 汉字编码字符集(基本集) 48点阵字型 宋体

ndash GB 17698-1999 信息技术 通用多八位编码字符集( I 区) 汉字 16 点阵字型

232 语音合成bull 文字的声音输出主要使用的是语音合成的技术bull 语音合成功能是ldquo文rarr语rdquo转换bull 文语转换 TTS (Text-To-Speech) 是将文本形式的信息转换成自然语音的一种技术其最终目标是使计算机输出清晰而又自然的声音

bull 英语的语音合成在上世纪 80年代就早已成熟而中文 汉语的合成现在也趋于成熟并有了广泛的应用(如汽车导航仪智能手机等)

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 53: 第一篇  媒体

BMPbull BMP = Basic Multilingual Plane 基本多文种平面bull BMP 用作双八位编码字符集称之为 UCS-2 它被

分成四个区ndash A- 区(字位 0x0000~0x4DFF 有 19 903 个字位)用于

字母文字音节文字以及各种符号ndash I- 区(字位 0x4E00~0x9FFF 共 20 992 个字位)用于中日韩统一汉字( CJK )

ndash O- 区(字位 0xA000~0xDFFF 共 16 384 个字位)保留未来标准化用

ndash R- 区(字位 0xE000~0xFFFD 共 8 190 个字位)为 BMP 的限制使用区包括专用字符变形显现形式及兼容字符

BMP总貌

A-区

00~33 拼音文字(见下页)

34~3D 朝鲜文

3E~44 朝鲜文补充 -A

45~4D 朝鲜文补充 -B

I-区 4E~9F CJK统一汉字O-区 A0~DF

R-区

E0~F8 专用区

F9~FA CJK兼容汉字FB 拼音文字变形显现形式

FC~FD 阿拉伯文变形显现形式 -A

FE半形组合用标志

CJK兼容形式

小写变体

阿拉伯文变形显现形式 -B

FF 半形及全形字符 特殊字符

BMP 的0x00~0x33

行字母文字区

00 基本拉丁文 拉丁文-1补充

01 拉丁文扩充-A 拉丁文扩充-B

02 拉丁文扩充-B 国际音标扩充 进格修饰字符

03 组合用发音符 基本希腊文 希腊符号及哥普特文

04 西里尔文

05 美亚尼亚文 希伯来文(基本和扩充)

06 基本阿拉伯文 阿拉伯文扩充

07

08

09 梵文 孟加拉文

0A 锡克教文 古吉拉特文

0B 奥利雅文 泰米尔文

0C 泰卢固文 卡纳达文

0D 德拉维族文

0E 泰文 老挝文

0F

10 格鲁吉亚文

11 朝鲜文字母

12~1D

1E 拉丁文扩充增补

1F 希腊文扩充

20 广义标点 上下标 货币符号 符号组合用区分标志

21 类似字母的符号 数字形式 箭头

22 数学运算符

23 零杂技术用符号

24 控制图符 光学识别符 带括号的字母数字

25 制表符 方块元素 几何图形符

26 零杂符号

27 示意符等

28~2F

30 CJK符号和标点 平假名 片假名

31 注音 朝鲜文兼容字母 CJK零杂字符

32 带括号的CJK字母及月份

33 CJK兼容字符

留作将来标准化用

非图形字符

表示形式bull GB 13000提供了字符编码表示的两种替代使用的形式

ndash 双八位 BMP 形式( UCS-2 )mdashmdash允许使用 BMP 中的字符且每个字符用两个字节表示

ndash 肆八位正则形式( UCS-4 )mdashmdash允许使用 GB 13000 中的全部字符且每个字符用四个字节表示

bull 除了 UCS-24外还有另外两种变形的表示形式ndash UTF-8 (单字节 ~ 多字节)ndash UTF-16 (双字节和 4 字节与 UCS-2 等价)ndash 目前在工业上的实现均为 UTF-16 ( UCS-2 )和 UTF-8ndash UTF = Unicode UCS Transformation Format 统一码 UC

S转换格式bull 关于统一码我们会在下一小节详细介绍

7 GBK 与 GB 18030bull 由于 GB 13000 标准与 GB 2312 标准的字符编码不兼容作为过渡在国家信息技术标准化委员会的主持下制定了与 GB 2312兼容的《汉字内码扩展规范( GBK )》( K 为扩展的ldquo扩rdquo字的拼音首字母)并于 1995年 12月 15日由原国家技术监督局标准司联合原电子工业部科技与质量监督司作为指导性技术规范发布实施

bull 2000年 GBK又被国家标准 GB 18030-2000《信息技术 信息交换用汉字编码字符集 基本集的扩充》所代替该标准收汉字 2万 7千个

bull 与 GB 2312 一样 GB 18030 也为中国的强制性国家标准微软公司的 Windows XPVista78 中文版与苹果公司的 Mac OS X 和 iOS 谷歌公司的 Android (安卓)等操作系统已经全面支持 GBK

GB 18030 的码位范围分布

字节数 码位空间 码位数目

单字节 0x00~0x7F 128

双字节第 1字节 第 2字节

23 9400x81~0xFE

0x40~0x7E 0x80~0xFE

四字节第 1字节 第 2字节 第 3字节 第 4字节

1 587 6000x81~0xFE 0x30~0x39 0x81~0xFE 0x30~0x39

GB 18030的

总体结构图

收录字符bull 单字节部分mdashmdash收录了GBT 11383 的 0x00~0x7F 全部 128 个字符(似 ASCI

I )bull 双字节部分mdashmdash收录内容如下 (21 003 个汉字和 884 个符号共 21 887 个字符 )

ndash GB 130001-93 的全部 CJK 统一汉字字符 20 902 个( GB 2312 的编码汉字在双字节 2 区其他 CJK 统一汉字在双字节 34 区)

ndash GB 130001-93 的 CJK兼容区挑选出来的 21 个汉字ldquo郎凉秊helliphellip﨨﨩rdquo( 0xFD9C~0xFDA0 和 0xFE40~0xFE4F )

ndash GB 130001-93 中收录而 GB 2312未收录的台湾地区使用的图形字符 139 个ldquoˊˋ˙helliphelliprdquo( 0xA840~0xA895 和 0xA940~0XA988 )

ndash GB 130001-93收录的其他字符 31 ( 13)个(在双字节 5 区)ndash GB 2312-80 中的非汉字字符 682 个( 0xA1A1~0xA9EF )ndash GB 12345-90 的竖排标点符号 19 ( 29)个ldquo︵︶︹helliphellip︳︴rdquo( 0xA6D9~0xA6

F5 )ndash GB 2312-80未收录的 10 个小写罗马数字ldquoⅰⅱⅲhelliphellipⅸⅹrdquo( 0xA2A1~ 0xA2A

A )ndash GB 2312-80未收录的带音调的汉语拼音字母 5 ( 4)个ldquo ńňǹrdquo 以及 ɑ 和 ɡ ( 0

xA8BB~0xA8C0 )ndash 汉字数字零ldquo〇rdquo (0xA996) 和欧元符ldquoeurordquo (0xA2E3)ndash 表意文字描述符 13 个ldquohelliphelliprdquo( 0xA989~0xA995 )ndash 对 GB 130001-93增补的汉字和部首 构件 80 个ldquohelliphellip䶮rdquo( 0xFE50~ 0x

FEA0 )bull 四字节部分mdashmdash收录了上述双字节字符之外的包括 CJK 统一汉字扩充 A 在内

的 GB 130001-93 中的全部字符

GB 18030双字节部分的码位安排

类别 区名 码位范围 码位数 字符数 内容

符号区双字节 1区 A1A1~A9FE 846 718

GB 2312非汉字字符等

双字节 5区 A840~A9A0 192 166 台湾图符等

汉字区双字节 2区 B0A1~F7FE 6768 6763 GB 2312汉字双字节 3区 8140~A0FE 6080 6080 CJK统一汉字双字节 4区 AA40~FEA0 8160 8160 CJK统一汉字等

用户自定义区双字节用户区 1 AAA1~AFFE 564

用户自定义字符双字节用户区 2 F8A1~FEFE 658

双字节用户区 3 A140~A7A0 672

GB 18030双字节部分的编码空间结构图 尾字节

0x40larr――rarr0x7E 0x80larr――rarr0xA0 0xA1larr――――――――――――rarr0xFE

0x81 uarr darr

0xA0

0xA1 uarr darr

0xA7

0xA8 0xA9

首字节

0xAA uarr | | | | | | | | | | darr

0xFE

双字节 3区

汉字区6 080个码位

双字节用户区 3

用户自定义区672个码位

双字节 5区 图形符号区192个码位

双字节 4区

汉字区8 160个码位

双字节 1区

图形符号区564个码位

双字节 2区

汉字区6 768个码位

双字节用户区 1 用户自定义区564个码位

双字节用户区 2 用户自定义区658个码位

223 国际通用字符编码

bull Unicode (统一码)是由多语言软件制造商组成的统一码协会( httpwwwUnicodeorg)所制定一种国际字符的编码标准

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull 本节主要介绍这两种关系密切的主流国际字符编码标准的来历编码方案各自特点与相互关系

1 Unicode 统一码bull 发展历史

ndash 1987年施乐( Xerox )公司的 Joe Becker 与 Lee Collins 和苹果( Apple )公司的 Mark Davis 等人开始讨论统一编码 1987年 12月 Joe Becker造词 Unicode (统一码)含义为ldquo unique universal and uniform character encodingrdquo (单一通用统一的字符编码) 1989年 2月开始定期召开统一码会议 1989年 9月公布 Unicode草案

ndash 1991年 1月 3 日由 Xerox Apple Sun IBM Aldis Microsoft 等公司出资在美国加州成立了统一码协会( Unicode Consortium )并由协会设立非盈利性的统一码公司( Unicode Inc )后来 HP Adobe Borland Digital Lotus Novell 等公司也纷纷加入 1991年 1月成立统一码技术委员会 UTC 并制定了其规程

ndash 1991年 2月在 Ed Hart 的推动下进行了ldquo统一码对 10464 国际标准草案 1rdquo 的对话Unicode 与 ISOIEC 10646开始走向融合

ndash 1991年 8月发布 Unicode 标准 10版的第 1卷(体系结构非表意字符) 1992年6月发表 Unicode 10版的第 2卷(表意字符) 1993年 6月发布 Unicode 11版与 1993年 5月公布的 ISOIEC 10646-11993 实现了合并

ndash 1996年 7月发布 Unicode 20版ndash 1999年 9月发布 Unicode 30版ndash 2003年 4月发布 Unicode 40版(对应于 ISOIEC 106462003 ) 2004年 3月 31日发布 Unicode 401版 2005年 3月 31日发布 Unicode 410版

ndash 2006年 7月 14日发布 Unicode 50版 2008年 4月 4日发布 Unicode 51版 2009年 12月 22日发布 Unicode 52版

ndash 2010年 10月发布 Unicode 60版 2012年 1月发布 Unicode 61版(对应于 ISOIEC 106462012 ) 2012年 9月推出 Unicode 62版 2013年 9月推出 Unicode 63版

ndash 2014年 6月 16日发布 Unicode 70版 ndash 2015年 6月 17日发布 Unicode 80版

字符集bull Unicode 字符集的空间分成双字节的基本多语言平面 (Basic Multilingual Pla

ne BMP) 和 4 字节的辅助多语言平面 (Supplementary Multilingual Plane SMP) 两种

bull BMPndash Unicode 的基本平面或基本多语言平面 BMP 对应于 ISOIEC 10646-1 的第 00组的 00 平面( BMP )即 Unicode 与 ISOIEC 10646 的 BMP 中的字符编码完全一致

bull SMPndash 鉴于 Unicode 原有的 16位元空间不足以应用从 Unicode 31版本开始设立了 16 个辅助平面使 Unicode 的可使用空间由六万多字增至约一百万字

ndash 原有的 Unicode双字节空间称为基本平面或基本多语言平面 BMP 辅助多语言平面 SMP 字符要用 4 字节来储存

ndash 第一辅助平面摆放拼音文字(主要为现时已不再使用的文字)及符号范围在 U+10000 - U+1FFFD

ndash 第二辅助平面又称为表意文字补充平面 (Supplementary Ideographic Plane 简称 SIP) 现时摆放ldquo中日韩统汉字扩展 B 区rdquo共 43253 个汉字范围在 U+20000 - U+2FFFD

ndash 第三至十三辅助平面尚未使用ndash 第十四辅助平面又称为特殊用途补充平面 (Supplementary Special-purpose Pl

ane 简称 SSP) 摆放 Language tags 和 Variation Selectors 它们都是控制字符范围在 U+E0000 - U+E01FF

ndash 第十五至十六辅助平面都是私人使用区它们的范围是 U+F0000 - U+FFFFD 及 U+100000 - U+1000FD

bull Unicode 字符集的具体编码方式参加第 4小节ldquo 4 UTFrdquo

2 ISOIEC 10646

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull ISOIEC 10646 标准由 ISO 与 IEC 联合成立的 ISOIEC JTC1SC2WG2 制定ndash JTC 1 ( Joint Technical Committee 1 on Information

technology ISOIEC信息技术联合技术委员会 1 )负责信息技术方面标准的制定工作

ndash SC 2 ( SubCommittee 2 on Coded character sets 编码字符集分会 2 )下的 WG 2 ( Working Group 2 on Universal coded character set 通用编码字符集工作组 2 )负责制定国际通用字符编码标准即后来公布的 ISOIEC 10646

发展历史bull 1984年 ISO 的一些会员国发起制定新的国际字符编码标准同年 4月 ISO

与 IEC 联合成立 ISOIEC JTC1SC2WG2 1987年 3月制定出编码架构1992年 6月投票通过第二版国际标准草案

bull 1993年 5月推出 10646 标准时将内容分成两个部分标准首先发布的是其中的第 1 个部分(体系结构与基本多文种平面)的第 1版( Edition 1 ) ISOIEC 10646-11993 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane(信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

bull 2000年 3月推出 10646 标准第一个部分的第 2版( Edition 2 ) ISOIEC 10646-12000 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane

bull 2001年 10月推出 10646 标准第 2版的第二个部分(辅助平面)的第 1版( Edition 1 ) ISOIEC 10646-22001 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 2 Supplementary Planes

bull 2003年 10月推出的 10646新标准(第 1版 Edition 1 )将老标准中的两个部分标准合并成了一个单一的标准 ISOIEC 106462003 Information technology -- Universal Multiple- Octet Coded Character Set (UCS) 后来又于 2010年 2012年和 2014年分别推出了 ISOIEC 106462010 (第 2版)ISOIEC 106462012 (第 3版)和 ISOIEC 106462014 (第 4版)

UCS 通用字符集bull 通用字符集( Universal Character Set UCS )是

ISOIEC 10646 标准所定义的字符编码方式采用 4字节编码又称为 Universal Multiple-Octet Coded Character Set (通用多八位编码字符集)

bull 通用字符集是所有包括了其他字符集它保证了与其他字符集的双向兼容即如果你将任何文本字符串翻译到 UCS 格式然后再翻译回原编码你不会丢失任何信息

bull UCS 包含了已知语言的所有字符除了拉丁语希腊语斯拉夫语希伯来语阿拉伯语亚美尼亚语格鲁吉亚语还包括中文日文韩文这样的象形文字 UCS 还包括大量的图形印刷数学科学符号

名字与组合字符bull UCS 不仅给每个字符分配一个代码而且赋予了

一个正式的名字表示一个 UCS 或 Unicode值的十六进制数通常在前面加上ldquo U+rdquo 例如ldquo U+0041rdquo代表字符ldquo Ardquo

bull UCS里有些编码点分配给了组合字符组合字符机制允许在任何字符后加上重音符或其他指示标记 这在科学符号中特别有用 比如数学方程式和国际音标字母 可能会需要在一个基本字符后组合上一个或多个指示标记

实现级别bull 并不是所有的系统都需要支持像组合字符这样的的先进

机制因此 ISO 10646 指定了如下三种实现级别ndash 级别 1不支持组合字符和韩语 Hangul Jamo 字符 ( 一种特

别的 更加复杂的韩国文的编码 使用两个或三个子字符来编码一个韩文音节 )

ndash 级别 2类似于级别 1 但在某些文字中允许一列固定的组合字符 (例如 希伯来文 阿拉伯文 Devangari 孟加拉语 果鲁穆奇语 Gujarati Oriya 泰米尔语 Telugo 印 埃纳德语 Malayalam 泰国语和老挝语 ) 因为如果没有最起码的几个组合字符 UCS就不能完整地表达这些语言

ndash 级别 3支持所有的 UCS 字符如可以在任意一个字符上加上一个箭头或 和一个 tilde(颚化符号即字母上面的~ )

编码方式bull UCS 有如下两种编码方式

ndash UCS-2与 Unicode 的 2 字节编码基本一样ndash UCS-4 4 字节编码目前是在 UCS-2 前加

上 2 个全零的字节bull UCS 还有 UTF 编码方式参见下面第 4小节ldquo 4 UTFrdquo

3 Unicode 与 ISOIEC 10646bull 关系

ndash 历史上存在两个独立的尝试创立单一字符集的组织即国际标准化组织( ISO )和多语言软件制造商组成的统一码协会组织( Unicodeorg )前者开发的 ISO 10646项目后者开发的 Unicode项目因此最初制定了不同的标准

ndash 1991年前后两个项目的参与者都认识到世界不需要两个不兼容的字符集于是它们开始合并双方的工作成果并为创立一个单一编码表而协同工作

ndash 从 Unicode20开始 Unicode采用了与 ISO 10646-1相同的字库和字码 ISO 也承诺 ISO10646 将不会替超出 U+10FFFF 的 UCS-4 编码赋值以使得两者保持一致

ndash 两个项目仍都存在并独立地公布各自的标准但 Unicode协会和 ISOIEC JTC1SC2 都同意保持两者标准的码表兼容并紧密地共同调整任何未来的扩展

异同bull Unicode协会公布的 Unicode 标准包含了 ISO 10646-1 实现级别

3 的基本多文种平面在两个标准里所有的字符都在相同的位置并且有相同的名字

bull ISO 10646 标准就像 ISO 8859 标准一样只不过是一个简单的字符集表它定义了一些编码的别名指定了一些与标准有关的术语并包括了规范说明指定了怎样使用 UCS连接其他 ISO 标准的实现等

bull Unicode 标准额外定义了许多与字符有关的语义符号学并详细说明了绘制某些语言(如阿拉伯语)表达形式的算法处理双向文字(比如拉丁文和希伯来文的混合文字)的算法排序与字符串比较所需的算法等等

bull 考虑到 Unicode 标准有一个易记的名字既便宜又包括更多的辅助信息因而它使用得更广泛然而

bull 一般认为用于打印 ISO 10646-1 标准的字体在某些方面的质量要高于用于打印 Unicode 20 的专业字体设计者总是被建议说要两个标准都实现但一些提供的样例字形有显著的区别 ISO 10646-1 标准同样使用四种不同的风格变体来显示表意文字如中文日文和韩文 (CJK) 而 Unicode 20 的表里只有中文的变体

4 UTFbull Unicode 和 UCS 都是一个字符集可以看作为内码bull UTF ( UnicodeUCS Transformation Format 统一码

通用字符集转换格式)是一种编码方式它的出现是因为 Unicode 和 UCS 不适宜在某些场合直接传输和处理

bull UCS 和 Unicode 只是分配整数给字符的编码表现在存在好几种将一串字符表示为一串字节的方法(如高或低位字节在前)

bull 最显而易见的两种方法是将 UCS 和 Unicode 文本存储为 2 个 或 4 个字节序列的串这两种方法的正式名称分别为 UCS-2 和 UCS-4

bull 常用的 UTF具体编码方式有 UTF-8 UTF-16 和 UTF-32

UTF-8

bull UTF-8 是 UTF 的一种具体编码方式在 ISO 10646-1 的附录 R 和 IETF 的 RFC 2279 里定义

bull 由于要使文档中的文字与 ASCII兼容故 UTF-8 选择了使用可变长度字节来储存 Unicode 和 UCS 例如ndash ASCII 字母继续使用 1 字节储存ndash 重音文字希腊字母或西里尔字母等使用 2 字节来储存ndash 常用的汉字就要使用 3 字节ndash 辅助平面字符则使用 4 字节ndash 即 ASCII 不作变换其他字符做变长编码每个字符 1~4 字节

bull UTF-8 通常作为外码bull 在 UTF-8 文件的开首很多时都放置一个 U+FEFF 字符

(UTF-8 以 EF BB BF 代表 ) 以显示这个文字档案是以UTF-8 编码

UTF-8 的优点bull 与 CPU 字节顺序无关可以在不同平台之间交流

bull 容错能力高任何一个字节损坏后最多只会导致一个编码码位损失不会链锁错误 ( 如 GB 码错一个字节就会整行乱码 )

UTF-8 的缺点bull UTF-8 使用可变长度字节储存使计算机程序设计变得复杂 (故此在计算机程序或操作系统内部多采用 UCS-2 编码 )

bull 在旧式的中文日文及朝鲜文编码之中每字符都使用 2 字节储存而 UTF-8 须使用 3 字节 (采用 UTF-16 编码则可只使用 2字节储存 )

bull 泰语以往使用的 ISO 8859-11 每字符只使用 1 字节储存而 UTF-8 须使用 3 字节

UTF-8储存的多字节串字符bull U-00000000 - U-0000007F 0xxxxxxx bull U-00000080 - U-000007FF 110xxxxx 10xxxxxx

bull U-00000800 - U-0000FFFF 1110xxxx 10xxxxxx

10xxxxxx bull U-00010000 - U-001FFFFF 11110xxx 10xxxxx

x 10xxxxxx 10xxxxxx bull 在多字节串中第一个字节的开头ldquo 1rdquo 的数目就

是整个串中字节的数目bull 每个使用 UTF-8储存的字符除了第一个字节外其余字节的头两个位元都是以 10 开始使文字处理器能够较快地找出每个字符的开始位置

UTF-16bull UTF-16 是 UTF 的另一种具体编码方式在 ISO 1064

6-1 的附录 Q 和 IETF 的 RFC 2781 里定义bull UTF-16 是变长码( 2 或 4 字节)大致相当于 20位编码值在 0 到 0x10FFFF 之间基本上就是 Unicode 编码的实现 UTF-16 与 CPU 字序有关但因为最省空间常作为网络传输的外码 UTF-16 是 Unicode 的完美编码

bull lt0x10000 的直接用其对应的 16位整数编码位于 0x10000 ~ 0x10FFFF 之间的用 0xD800~0xDBFF 的 16位整数后跟 0xDC00~0xDFFF 的 16位整数的 4 字节编码 gt 0x10FFFF 的不能用 UTF-16 表示

bull 在 Unicode 的 BMP 中定义的字符(无论是拉丁字母汉字或其他文字或符号)一律使用 2 字节存储而在辅助平面定义的字符则以两个 2 字节的值来存储

UTF-16 的特点bull UTF-16比起 UTF-8 的好处在于大部分字符都以固定长

度的 2 字节存储但 UTF-16却无法相容于 ASCII 编码bull UTF-16 有两种编码模式即大尾序( big Endian 高位字节在前)和小尾序( little Endian 高位字节在后)储存形式(一般來說以 Macintosh 制作和存储的文字使用大尾序格式以 Microsoft 或 Linux 制作和存储的文字使用小尾序格式)

bull 为了弄区分 UTF-16 文件的大小尾序在 UTF-16 文件的开头都会放置一个 U+FEFF 字符作为字节顺序标记 (UTF-16LE 以 FF FE代表 UTF-16BE 以 FE FF代表 ) 以显示该文档是以 UTF-16 编码的

UTF-32

bull UTF-32 仅使用了 Unicode范围 (0 到 0x10FFFF) 的 32位编码相当于 UCS-4 的子集

bull 由于 Unicode 和 ISOIEC 10646 的编码和结构与前面讲过的 GB 13000 类似或等价这里就不再做详细的介绍

5支持bull 现在 UnicodeUCS 已经获得了十分广泛的支

持ndash网络与浏览器(如 HTML 4050 XML 与 IE

Safari Netscape Firefox Chrome Opera Edge 等)

ndash操作系统(如 Windows NT2000XPVista7810 Mac OS X iOS Android和 Linux )

ndash 编程语言新版本(如 CC++JavaObjective-CC Swift 等)

Unicode 代码的浏览器显示代码 字符标准名称 (英语 )

浏览器的显示

amp65 大写拉丁字母 A A

amp223 小写拉丁字母 Sharp S szlig

amp254 小写拉丁字母 Thorn thorn

amp916 大写希腊字母 Delta Δ

amp1049 大写斯拉夫字母 Short I Й

amp1511 希伯来字母 Qof ק

amp1605 阿拉伯字母 Meem م

amp3671 泰文数字 7 ๗amp4688 埃塞俄比亚音节文字 Qha ቐ

amp12354 日语平假名 A あamp12450 日语片假名 A アamp21494 简体汉字 叶 叶amp33865 繁体汉字 葉 葉amp50685 韩国音节文字 Yeob 엽

23 文字输出bull 文字输出是指将计算机内的字符编码通过计算机的输出设备(如显示器打印机喇叭)展现出所对应字符的图形或声音供人们阅读或聆听

bull 本节主要介绍文字图示输出的字形技术bull 文字声音输出属于语音合成只在本节的末尾作简单的介绍

231 字形技术bull 文字 = 图形bull 不论是象形文字中的单字还是拼音文字

中的字母都是用图形来表示的bull 在计算机里文字的表示 输出(显示和打

印)涉及ndash 字型ndash 字体ndash 字库

1字型bull 字型指构造和生成字形的方法一般可分为

ndash 点阵字 DOS 显卡 ROM 金山 科印特点似位图显示快占空间(字库大)放大后有马赛克效应

bull 显示字母 88 汉字 1616bull 打印 2424 4848 6464

ndash 矢量字单线条用于笔式绘图仪特点字库小算法简单难看

ndash 轮廓字用曲线描绘字的轮廓输出效果好所见即所得(WYSWYG) 可无级放大易实现空心 阴影 填充 变形等各种特效功能轮廓曲线一般采用样条曲线如 TrueType (Apple 1991 Mac OS Microsoft 1992 Windows 31)用的是二次 B 样条 Bezier曲线中文之星 RichWin采用的是三次 B 样条 Bezier曲线

字型种类

2字体bull 字体指字的形状风格如

ndash 汉字的

ndash 英文的

宋体楷体黑体仿宋

行楷隶书新魏幼圆

Times New Roman Arial Narrow Courier New

常用汉字字体bull 宋体mdashmdash宋体来自于北宋时雕版刻书所采用的欧体字(唐朝欧阳询体)宋体字的横顿拉捺挑钩别具特色间架平正疏密适中字体秀丽遒劲但笔画横细竖粗适合于刀刻不宜于手写现在宋体广泛用于印刷常来表现文档的正文

bull 仿宋体mdashmdash 1920年钱塘的丁辅之与丁善之等人将明代以后盛行的方廓形字体加以改造创造出长形和方形的聚珍仿宋后来演化为现在的仿宋体仿宋体比较接近于手写体为宋体和楷体的折中是采用的宋体的结构和楷体的笔法而成现常来表现打印文件以及文档的摘要和注释等

bull 黑体mdashmdash黑体是适应工艺美术的发展而出现的一种等线体是从日本引进的黑体的结构与宋体没有什么差别只是其笔画粗细一致健实粗壮主要用于文档的标题和重点及标语广告等方面

bull 楷体mdashmdash楷体源于楷书楷体的笔画圆浑笔调灵活结构端正美观但不宜于木板雕刻所以直到清末西洋的石板印刷术传入后才开始广泛用于印刷现代的楷体创造于 20世纪的二三十年代主要用于文档的正文(多用于中小学教材)也可用于工艺美术等方面

3字库bull 字库为一种文字的某一字体的所有字符的集合一般存放在一个磁盘文件中

bull 由于象形文字中单字的数量大(成千上万)而拼音文字中字母的数量小(不到一百个)所以字库的大小有很大的差别

bull 为了使文档界面丰富多彩常见的字处理软件都支持多种字体带有众多字库

4点阵字型的国家标准bull 我国已经公布了若干字体的点阵字型之国家标准

ndash GB 50071-19852001 信息技术 汉字编码字符集(基本集) 24 点阵字型

ndash GB 50072-19852001 信息技术 汉字编码字符集(辅助集) 24 点阵字型

ndash GB 5199-19862001 信息技术 汉字编码字符集(基本集) 16 点阵字型 宋体

ndash GB 6345-19862001 信息技术 汉字编码字符集(基本集) 32 点阵字型 宋体

ndash GB 12041-2001 信息技术 汉字编码字符集(基本集) 48点阵字型 宋体

ndash GB 17698-1999 信息技术 通用多八位编码字符集( I 区) 汉字 16 点阵字型

232 语音合成bull 文字的声音输出主要使用的是语音合成的技术bull 语音合成功能是ldquo文rarr语rdquo转换bull 文语转换 TTS (Text-To-Speech) 是将文本形式的信息转换成自然语音的一种技术其最终目标是使计算机输出清晰而又自然的声音

bull 英语的语音合成在上世纪 80年代就早已成熟而中文 汉语的合成现在也趋于成熟并有了广泛的应用(如汽车导航仪智能手机等)

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 54: 第一篇  媒体

BMP总貌

A-区

00~33 拼音文字(见下页)

34~3D 朝鲜文

3E~44 朝鲜文补充 -A

45~4D 朝鲜文补充 -B

I-区 4E~9F CJK统一汉字O-区 A0~DF

R-区

E0~F8 专用区

F9~FA CJK兼容汉字FB 拼音文字变形显现形式

FC~FD 阿拉伯文变形显现形式 -A

FE半形组合用标志

CJK兼容形式

小写变体

阿拉伯文变形显现形式 -B

FF 半形及全形字符 特殊字符

BMP 的0x00~0x33

行字母文字区

00 基本拉丁文 拉丁文-1补充

01 拉丁文扩充-A 拉丁文扩充-B

02 拉丁文扩充-B 国际音标扩充 进格修饰字符

03 组合用发音符 基本希腊文 希腊符号及哥普特文

04 西里尔文

05 美亚尼亚文 希伯来文(基本和扩充)

06 基本阿拉伯文 阿拉伯文扩充

07

08

09 梵文 孟加拉文

0A 锡克教文 古吉拉特文

0B 奥利雅文 泰米尔文

0C 泰卢固文 卡纳达文

0D 德拉维族文

0E 泰文 老挝文

0F

10 格鲁吉亚文

11 朝鲜文字母

12~1D

1E 拉丁文扩充增补

1F 希腊文扩充

20 广义标点 上下标 货币符号 符号组合用区分标志

21 类似字母的符号 数字形式 箭头

22 数学运算符

23 零杂技术用符号

24 控制图符 光学识别符 带括号的字母数字

25 制表符 方块元素 几何图形符

26 零杂符号

27 示意符等

28~2F

30 CJK符号和标点 平假名 片假名

31 注音 朝鲜文兼容字母 CJK零杂字符

32 带括号的CJK字母及月份

33 CJK兼容字符

留作将来标准化用

非图形字符

表示形式bull GB 13000提供了字符编码表示的两种替代使用的形式

ndash 双八位 BMP 形式( UCS-2 )mdashmdash允许使用 BMP 中的字符且每个字符用两个字节表示

ndash 肆八位正则形式( UCS-4 )mdashmdash允许使用 GB 13000 中的全部字符且每个字符用四个字节表示

bull 除了 UCS-24外还有另外两种变形的表示形式ndash UTF-8 (单字节 ~ 多字节)ndash UTF-16 (双字节和 4 字节与 UCS-2 等价)ndash 目前在工业上的实现均为 UTF-16 ( UCS-2 )和 UTF-8ndash UTF = Unicode UCS Transformation Format 统一码 UC

S转换格式bull 关于统一码我们会在下一小节详细介绍

7 GBK 与 GB 18030bull 由于 GB 13000 标准与 GB 2312 标准的字符编码不兼容作为过渡在国家信息技术标准化委员会的主持下制定了与 GB 2312兼容的《汉字内码扩展规范( GBK )》( K 为扩展的ldquo扩rdquo字的拼音首字母)并于 1995年 12月 15日由原国家技术监督局标准司联合原电子工业部科技与质量监督司作为指导性技术规范发布实施

bull 2000年 GBK又被国家标准 GB 18030-2000《信息技术 信息交换用汉字编码字符集 基本集的扩充》所代替该标准收汉字 2万 7千个

bull 与 GB 2312 一样 GB 18030 也为中国的强制性国家标准微软公司的 Windows XPVista78 中文版与苹果公司的 Mac OS X 和 iOS 谷歌公司的 Android (安卓)等操作系统已经全面支持 GBK

GB 18030 的码位范围分布

字节数 码位空间 码位数目

单字节 0x00~0x7F 128

双字节第 1字节 第 2字节

23 9400x81~0xFE

0x40~0x7E 0x80~0xFE

四字节第 1字节 第 2字节 第 3字节 第 4字节

1 587 6000x81~0xFE 0x30~0x39 0x81~0xFE 0x30~0x39

GB 18030的

总体结构图

收录字符bull 单字节部分mdashmdash收录了GBT 11383 的 0x00~0x7F 全部 128 个字符(似 ASCI

I )bull 双字节部分mdashmdash收录内容如下 (21 003 个汉字和 884 个符号共 21 887 个字符 )

ndash GB 130001-93 的全部 CJK 统一汉字字符 20 902 个( GB 2312 的编码汉字在双字节 2 区其他 CJK 统一汉字在双字节 34 区)

ndash GB 130001-93 的 CJK兼容区挑选出来的 21 个汉字ldquo郎凉秊helliphellip﨨﨩rdquo( 0xFD9C~0xFDA0 和 0xFE40~0xFE4F )

ndash GB 130001-93 中收录而 GB 2312未收录的台湾地区使用的图形字符 139 个ldquoˊˋ˙helliphelliprdquo( 0xA840~0xA895 和 0xA940~0XA988 )

ndash GB 130001-93收录的其他字符 31 ( 13)个(在双字节 5 区)ndash GB 2312-80 中的非汉字字符 682 个( 0xA1A1~0xA9EF )ndash GB 12345-90 的竖排标点符号 19 ( 29)个ldquo︵︶︹helliphellip︳︴rdquo( 0xA6D9~0xA6

F5 )ndash GB 2312-80未收录的 10 个小写罗马数字ldquoⅰⅱⅲhelliphellipⅸⅹrdquo( 0xA2A1~ 0xA2A

A )ndash GB 2312-80未收录的带音调的汉语拼音字母 5 ( 4)个ldquo ńňǹrdquo 以及 ɑ 和 ɡ ( 0

xA8BB~0xA8C0 )ndash 汉字数字零ldquo〇rdquo (0xA996) 和欧元符ldquoeurordquo (0xA2E3)ndash 表意文字描述符 13 个ldquohelliphelliprdquo( 0xA989~0xA995 )ndash 对 GB 130001-93增补的汉字和部首 构件 80 个ldquohelliphellip䶮rdquo( 0xFE50~ 0x

FEA0 )bull 四字节部分mdashmdash收录了上述双字节字符之外的包括 CJK 统一汉字扩充 A 在内

的 GB 130001-93 中的全部字符

GB 18030双字节部分的码位安排

类别 区名 码位范围 码位数 字符数 内容

符号区双字节 1区 A1A1~A9FE 846 718

GB 2312非汉字字符等

双字节 5区 A840~A9A0 192 166 台湾图符等

汉字区双字节 2区 B0A1~F7FE 6768 6763 GB 2312汉字双字节 3区 8140~A0FE 6080 6080 CJK统一汉字双字节 4区 AA40~FEA0 8160 8160 CJK统一汉字等

用户自定义区双字节用户区 1 AAA1~AFFE 564

用户自定义字符双字节用户区 2 F8A1~FEFE 658

双字节用户区 3 A140~A7A0 672

GB 18030双字节部分的编码空间结构图 尾字节

0x40larr――rarr0x7E 0x80larr――rarr0xA0 0xA1larr――――――――――――rarr0xFE

0x81 uarr darr

0xA0

0xA1 uarr darr

0xA7

0xA8 0xA9

首字节

0xAA uarr | | | | | | | | | | darr

0xFE

双字节 3区

汉字区6 080个码位

双字节用户区 3

用户自定义区672个码位

双字节 5区 图形符号区192个码位

双字节 4区

汉字区8 160个码位

双字节 1区

图形符号区564个码位

双字节 2区

汉字区6 768个码位

双字节用户区 1 用户自定义区564个码位

双字节用户区 2 用户自定义区658个码位

223 国际通用字符编码

bull Unicode (统一码)是由多语言软件制造商组成的统一码协会( httpwwwUnicodeorg)所制定一种国际字符的编码标准

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull 本节主要介绍这两种关系密切的主流国际字符编码标准的来历编码方案各自特点与相互关系

1 Unicode 统一码bull 发展历史

ndash 1987年施乐( Xerox )公司的 Joe Becker 与 Lee Collins 和苹果( Apple )公司的 Mark Davis 等人开始讨论统一编码 1987年 12月 Joe Becker造词 Unicode (统一码)含义为ldquo unique universal and uniform character encodingrdquo (单一通用统一的字符编码) 1989年 2月开始定期召开统一码会议 1989年 9月公布 Unicode草案

ndash 1991年 1月 3 日由 Xerox Apple Sun IBM Aldis Microsoft 等公司出资在美国加州成立了统一码协会( Unicode Consortium )并由协会设立非盈利性的统一码公司( Unicode Inc )后来 HP Adobe Borland Digital Lotus Novell 等公司也纷纷加入 1991年 1月成立统一码技术委员会 UTC 并制定了其规程

ndash 1991年 2月在 Ed Hart 的推动下进行了ldquo统一码对 10464 国际标准草案 1rdquo 的对话Unicode 与 ISOIEC 10646开始走向融合

ndash 1991年 8月发布 Unicode 标准 10版的第 1卷(体系结构非表意字符) 1992年6月发表 Unicode 10版的第 2卷(表意字符) 1993年 6月发布 Unicode 11版与 1993年 5月公布的 ISOIEC 10646-11993 实现了合并

ndash 1996年 7月发布 Unicode 20版ndash 1999年 9月发布 Unicode 30版ndash 2003年 4月发布 Unicode 40版(对应于 ISOIEC 106462003 ) 2004年 3月 31日发布 Unicode 401版 2005年 3月 31日发布 Unicode 410版

ndash 2006年 7月 14日发布 Unicode 50版 2008年 4月 4日发布 Unicode 51版 2009年 12月 22日发布 Unicode 52版

ndash 2010年 10月发布 Unicode 60版 2012年 1月发布 Unicode 61版(对应于 ISOIEC 106462012 ) 2012年 9月推出 Unicode 62版 2013年 9月推出 Unicode 63版

ndash 2014年 6月 16日发布 Unicode 70版 ndash 2015年 6月 17日发布 Unicode 80版

字符集bull Unicode 字符集的空间分成双字节的基本多语言平面 (Basic Multilingual Pla

ne BMP) 和 4 字节的辅助多语言平面 (Supplementary Multilingual Plane SMP) 两种

bull BMPndash Unicode 的基本平面或基本多语言平面 BMP 对应于 ISOIEC 10646-1 的第 00组的 00 平面( BMP )即 Unicode 与 ISOIEC 10646 的 BMP 中的字符编码完全一致

bull SMPndash 鉴于 Unicode 原有的 16位元空间不足以应用从 Unicode 31版本开始设立了 16 个辅助平面使 Unicode 的可使用空间由六万多字增至约一百万字

ndash 原有的 Unicode双字节空间称为基本平面或基本多语言平面 BMP 辅助多语言平面 SMP 字符要用 4 字节来储存

ndash 第一辅助平面摆放拼音文字(主要为现时已不再使用的文字)及符号范围在 U+10000 - U+1FFFD

ndash 第二辅助平面又称为表意文字补充平面 (Supplementary Ideographic Plane 简称 SIP) 现时摆放ldquo中日韩统汉字扩展 B 区rdquo共 43253 个汉字范围在 U+20000 - U+2FFFD

ndash 第三至十三辅助平面尚未使用ndash 第十四辅助平面又称为特殊用途补充平面 (Supplementary Special-purpose Pl

ane 简称 SSP) 摆放 Language tags 和 Variation Selectors 它们都是控制字符范围在 U+E0000 - U+E01FF

ndash 第十五至十六辅助平面都是私人使用区它们的范围是 U+F0000 - U+FFFFD 及 U+100000 - U+1000FD

bull Unicode 字符集的具体编码方式参加第 4小节ldquo 4 UTFrdquo

2 ISOIEC 10646

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull ISOIEC 10646 标准由 ISO 与 IEC 联合成立的 ISOIEC JTC1SC2WG2 制定ndash JTC 1 ( Joint Technical Committee 1 on Information

technology ISOIEC信息技术联合技术委员会 1 )负责信息技术方面标准的制定工作

ndash SC 2 ( SubCommittee 2 on Coded character sets 编码字符集分会 2 )下的 WG 2 ( Working Group 2 on Universal coded character set 通用编码字符集工作组 2 )负责制定国际通用字符编码标准即后来公布的 ISOIEC 10646

发展历史bull 1984年 ISO 的一些会员国发起制定新的国际字符编码标准同年 4月 ISO

与 IEC 联合成立 ISOIEC JTC1SC2WG2 1987年 3月制定出编码架构1992年 6月投票通过第二版国际标准草案

bull 1993年 5月推出 10646 标准时将内容分成两个部分标准首先发布的是其中的第 1 个部分(体系结构与基本多文种平面)的第 1版( Edition 1 ) ISOIEC 10646-11993 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane(信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

bull 2000年 3月推出 10646 标准第一个部分的第 2版( Edition 2 ) ISOIEC 10646-12000 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane

bull 2001年 10月推出 10646 标准第 2版的第二个部分(辅助平面)的第 1版( Edition 1 ) ISOIEC 10646-22001 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 2 Supplementary Planes

bull 2003年 10月推出的 10646新标准(第 1版 Edition 1 )将老标准中的两个部分标准合并成了一个单一的标准 ISOIEC 106462003 Information technology -- Universal Multiple- Octet Coded Character Set (UCS) 后来又于 2010年 2012年和 2014年分别推出了 ISOIEC 106462010 (第 2版)ISOIEC 106462012 (第 3版)和 ISOIEC 106462014 (第 4版)

UCS 通用字符集bull 通用字符集( Universal Character Set UCS )是

ISOIEC 10646 标准所定义的字符编码方式采用 4字节编码又称为 Universal Multiple-Octet Coded Character Set (通用多八位编码字符集)

bull 通用字符集是所有包括了其他字符集它保证了与其他字符集的双向兼容即如果你将任何文本字符串翻译到 UCS 格式然后再翻译回原编码你不会丢失任何信息

bull UCS 包含了已知语言的所有字符除了拉丁语希腊语斯拉夫语希伯来语阿拉伯语亚美尼亚语格鲁吉亚语还包括中文日文韩文这样的象形文字 UCS 还包括大量的图形印刷数学科学符号

名字与组合字符bull UCS 不仅给每个字符分配一个代码而且赋予了

一个正式的名字表示一个 UCS 或 Unicode值的十六进制数通常在前面加上ldquo U+rdquo 例如ldquo U+0041rdquo代表字符ldquo Ardquo

bull UCS里有些编码点分配给了组合字符组合字符机制允许在任何字符后加上重音符或其他指示标记 这在科学符号中特别有用 比如数学方程式和国际音标字母 可能会需要在一个基本字符后组合上一个或多个指示标记

实现级别bull 并不是所有的系统都需要支持像组合字符这样的的先进

机制因此 ISO 10646 指定了如下三种实现级别ndash 级别 1不支持组合字符和韩语 Hangul Jamo 字符 ( 一种特

别的 更加复杂的韩国文的编码 使用两个或三个子字符来编码一个韩文音节 )

ndash 级别 2类似于级别 1 但在某些文字中允许一列固定的组合字符 (例如 希伯来文 阿拉伯文 Devangari 孟加拉语 果鲁穆奇语 Gujarati Oriya 泰米尔语 Telugo 印 埃纳德语 Malayalam 泰国语和老挝语 ) 因为如果没有最起码的几个组合字符 UCS就不能完整地表达这些语言

ndash 级别 3支持所有的 UCS 字符如可以在任意一个字符上加上一个箭头或 和一个 tilde(颚化符号即字母上面的~ )

编码方式bull UCS 有如下两种编码方式

ndash UCS-2与 Unicode 的 2 字节编码基本一样ndash UCS-4 4 字节编码目前是在 UCS-2 前加

上 2 个全零的字节bull UCS 还有 UTF 编码方式参见下面第 4小节ldquo 4 UTFrdquo

3 Unicode 与 ISOIEC 10646bull 关系

ndash 历史上存在两个独立的尝试创立单一字符集的组织即国际标准化组织( ISO )和多语言软件制造商组成的统一码协会组织( Unicodeorg )前者开发的 ISO 10646项目后者开发的 Unicode项目因此最初制定了不同的标准

ndash 1991年前后两个项目的参与者都认识到世界不需要两个不兼容的字符集于是它们开始合并双方的工作成果并为创立一个单一编码表而协同工作

ndash 从 Unicode20开始 Unicode采用了与 ISO 10646-1相同的字库和字码 ISO 也承诺 ISO10646 将不会替超出 U+10FFFF 的 UCS-4 编码赋值以使得两者保持一致

ndash 两个项目仍都存在并独立地公布各自的标准但 Unicode协会和 ISOIEC JTC1SC2 都同意保持两者标准的码表兼容并紧密地共同调整任何未来的扩展

异同bull Unicode协会公布的 Unicode 标准包含了 ISO 10646-1 实现级别

3 的基本多文种平面在两个标准里所有的字符都在相同的位置并且有相同的名字

bull ISO 10646 标准就像 ISO 8859 标准一样只不过是一个简单的字符集表它定义了一些编码的别名指定了一些与标准有关的术语并包括了规范说明指定了怎样使用 UCS连接其他 ISO 标准的实现等

bull Unicode 标准额外定义了许多与字符有关的语义符号学并详细说明了绘制某些语言(如阿拉伯语)表达形式的算法处理双向文字(比如拉丁文和希伯来文的混合文字)的算法排序与字符串比较所需的算法等等

bull 考虑到 Unicode 标准有一个易记的名字既便宜又包括更多的辅助信息因而它使用得更广泛然而

bull 一般认为用于打印 ISO 10646-1 标准的字体在某些方面的质量要高于用于打印 Unicode 20 的专业字体设计者总是被建议说要两个标准都实现但一些提供的样例字形有显著的区别 ISO 10646-1 标准同样使用四种不同的风格变体来显示表意文字如中文日文和韩文 (CJK) 而 Unicode 20 的表里只有中文的变体

4 UTFbull Unicode 和 UCS 都是一个字符集可以看作为内码bull UTF ( UnicodeUCS Transformation Format 统一码

通用字符集转换格式)是一种编码方式它的出现是因为 Unicode 和 UCS 不适宜在某些场合直接传输和处理

bull UCS 和 Unicode 只是分配整数给字符的编码表现在存在好几种将一串字符表示为一串字节的方法(如高或低位字节在前)

bull 最显而易见的两种方法是将 UCS 和 Unicode 文本存储为 2 个 或 4 个字节序列的串这两种方法的正式名称分别为 UCS-2 和 UCS-4

bull 常用的 UTF具体编码方式有 UTF-8 UTF-16 和 UTF-32

UTF-8

bull UTF-8 是 UTF 的一种具体编码方式在 ISO 10646-1 的附录 R 和 IETF 的 RFC 2279 里定义

bull 由于要使文档中的文字与 ASCII兼容故 UTF-8 选择了使用可变长度字节来储存 Unicode 和 UCS 例如ndash ASCII 字母继续使用 1 字节储存ndash 重音文字希腊字母或西里尔字母等使用 2 字节来储存ndash 常用的汉字就要使用 3 字节ndash 辅助平面字符则使用 4 字节ndash 即 ASCII 不作变换其他字符做变长编码每个字符 1~4 字节

bull UTF-8 通常作为外码bull 在 UTF-8 文件的开首很多时都放置一个 U+FEFF 字符

(UTF-8 以 EF BB BF 代表 ) 以显示这个文字档案是以UTF-8 编码

UTF-8 的优点bull 与 CPU 字节顺序无关可以在不同平台之间交流

bull 容错能力高任何一个字节损坏后最多只会导致一个编码码位损失不会链锁错误 ( 如 GB 码错一个字节就会整行乱码 )

UTF-8 的缺点bull UTF-8 使用可变长度字节储存使计算机程序设计变得复杂 (故此在计算机程序或操作系统内部多采用 UCS-2 编码 )

bull 在旧式的中文日文及朝鲜文编码之中每字符都使用 2 字节储存而 UTF-8 须使用 3 字节 (采用 UTF-16 编码则可只使用 2字节储存 )

bull 泰语以往使用的 ISO 8859-11 每字符只使用 1 字节储存而 UTF-8 须使用 3 字节

UTF-8储存的多字节串字符bull U-00000000 - U-0000007F 0xxxxxxx bull U-00000080 - U-000007FF 110xxxxx 10xxxxxx

bull U-00000800 - U-0000FFFF 1110xxxx 10xxxxxx

10xxxxxx bull U-00010000 - U-001FFFFF 11110xxx 10xxxxx

x 10xxxxxx 10xxxxxx bull 在多字节串中第一个字节的开头ldquo 1rdquo 的数目就

是整个串中字节的数目bull 每个使用 UTF-8储存的字符除了第一个字节外其余字节的头两个位元都是以 10 开始使文字处理器能够较快地找出每个字符的开始位置

UTF-16bull UTF-16 是 UTF 的另一种具体编码方式在 ISO 1064

6-1 的附录 Q 和 IETF 的 RFC 2781 里定义bull UTF-16 是变长码( 2 或 4 字节)大致相当于 20位编码值在 0 到 0x10FFFF 之间基本上就是 Unicode 编码的实现 UTF-16 与 CPU 字序有关但因为最省空间常作为网络传输的外码 UTF-16 是 Unicode 的完美编码

bull lt0x10000 的直接用其对应的 16位整数编码位于 0x10000 ~ 0x10FFFF 之间的用 0xD800~0xDBFF 的 16位整数后跟 0xDC00~0xDFFF 的 16位整数的 4 字节编码 gt 0x10FFFF 的不能用 UTF-16 表示

bull 在 Unicode 的 BMP 中定义的字符(无论是拉丁字母汉字或其他文字或符号)一律使用 2 字节存储而在辅助平面定义的字符则以两个 2 字节的值来存储

UTF-16 的特点bull UTF-16比起 UTF-8 的好处在于大部分字符都以固定长

度的 2 字节存储但 UTF-16却无法相容于 ASCII 编码bull UTF-16 有两种编码模式即大尾序( big Endian 高位字节在前)和小尾序( little Endian 高位字节在后)储存形式(一般來說以 Macintosh 制作和存储的文字使用大尾序格式以 Microsoft 或 Linux 制作和存储的文字使用小尾序格式)

bull 为了弄区分 UTF-16 文件的大小尾序在 UTF-16 文件的开头都会放置一个 U+FEFF 字符作为字节顺序标记 (UTF-16LE 以 FF FE代表 UTF-16BE 以 FE FF代表 ) 以显示该文档是以 UTF-16 编码的

UTF-32

bull UTF-32 仅使用了 Unicode范围 (0 到 0x10FFFF) 的 32位编码相当于 UCS-4 的子集

bull 由于 Unicode 和 ISOIEC 10646 的编码和结构与前面讲过的 GB 13000 类似或等价这里就不再做详细的介绍

5支持bull 现在 UnicodeUCS 已经获得了十分广泛的支

持ndash网络与浏览器(如 HTML 4050 XML 与 IE

Safari Netscape Firefox Chrome Opera Edge 等)

ndash操作系统(如 Windows NT2000XPVista7810 Mac OS X iOS Android和 Linux )

ndash 编程语言新版本(如 CC++JavaObjective-CC Swift 等)

Unicode 代码的浏览器显示代码 字符标准名称 (英语 )

浏览器的显示

amp65 大写拉丁字母 A A

amp223 小写拉丁字母 Sharp S szlig

amp254 小写拉丁字母 Thorn thorn

amp916 大写希腊字母 Delta Δ

amp1049 大写斯拉夫字母 Short I Й

amp1511 希伯来字母 Qof ק

amp1605 阿拉伯字母 Meem م

amp3671 泰文数字 7 ๗amp4688 埃塞俄比亚音节文字 Qha ቐ

amp12354 日语平假名 A あamp12450 日语片假名 A アamp21494 简体汉字 叶 叶amp33865 繁体汉字 葉 葉amp50685 韩国音节文字 Yeob 엽

23 文字输出bull 文字输出是指将计算机内的字符编码通过计算机的输出设备(如显示器打印机喇叭)展现出所对应字符的图形或声音供人们阅读或聆听

bull 本节主要介绍文字图示输出的字形技术bull 文字声音输出属于语音合成只在本节的末尾作简单的介绍

231 字形技术bull 文字 = 图形bull 不论是象形文字中的单字还是拼音文字

中的字母都是用图形来表示的bull 在计算机里文字的表示 输出(显示和打

印)涉及ndash 字型ndash 字体ndash 字库

1字型bull 字型指构造和生成字形的方法一般可分为

ndash 点阵字 DOS 显卡 ROM 金山 科印特点似位图显示快占空间(字库大)放大后有马赛克效应

bull 显示字母 88 汉字 1616bull 打印 2424 4848 6464

ndash 矢量字单线条用于笔式绘图仪特点字库小算法简单难看

ndash 轮廓字用曲线描绘字的轮廓输出效果好所见即所得(WYSWYG) 可无级放大易实现空心 阴影 填充 变形等各种特效功能轮廓曲线一般采用样条曲线如 TrueType (Apple 1991 Mac OS Microsoft 1992 Windows 31)用的是二次 B 样条 Bezier曲线中文之星 RichWin采用的是三次 B 样条 Bezier曲线

字型种类

2字体bull 字体指字的形状风格如

ndash 汉字的

ndash 英文的

宋体楷体黑体仿宋

行楷隶书新魏幼圆

Times New Roman Arial Narrow Courier New

常用汉字字体bull 宋体mdashmdash宋体来自于北宋时雕版刻书所采用的欧体字(唐朝欧阳询体)宋体字的横顿拉捺挑钩别具特色间架平正疏密适中字体秀丽遒劲但笔画横细竖粗适合于刀刻不宜于手写现在宋体广泛用于印刷常来表现文档的正文

bull 仿宋体mdashmdash 1920年钱塘的丁辅之与丁善之等人将明代以后盛行的方廓形字体加以改造创造出长形和方形的聚珍仿宋后来演化为现在的仿宋体仿宋体比较接近于手写体为宋体和楷体的折中是采用的宋体的结构和楷体的笔法而成现常来表现打印文件以及文档的摘要和注释等

bull 黑体mdashmdash黑体是适应工艺美术的发展而出现的一种等线体是从日本引进的黑体的结构与宋体没有什么差别只是其笔画粗细一致健实粗壮主要用于文档的标题和重点及标语广告等方面

bull 楷体mdashmdash楷体源于楷书楷体的笔画圆浑笔调灵活结构端正美观但不宜于木板雕刻所以直到清末西洋的石板印刷术传入后才开始广泛用于印刷现代的楷体创造于 20世纪的二三十年代主要用于文档的正文(多用于中小学教材)也可用于工艺美术等方面

3字库bull 字库为一种文字的某一字体的所有字符的集合一般存放在一个磁盘文件中

bull 由于象形文字中单字的数量大(成千上万)而拼音文字中字母的数量小(不到一百个)所以字库的大小有很大的差别

bull 为了使文档界面丰富多彩常见的字处理软件都支持多种字体带有众多字库

4点阵字型的国家标准bull 我国已经公布了若干字体的点阵字型之国家标准

ndash GB 50071-19852001 信息技术 汉字编码字符集(基本集) 24 点阵字型

ndash GB 50072-19852001 信息技术 汉字编码字符集(辅助集) 24 点阵字型

ndash GB 5199-19862001 信息技术 汉字编码字符集(基本集) 16 点阵字型 宋体

ndash GB 6345-19862001 信息技术 汉字编码字符集(基本集) 32 点阵字型 宋体

ndash GB 12041-2001 信息技术 汉字编码字符集(基本集) 48点阵字型 宋体

ndash GB 17698-1999 信息技术 通用多八位编码字符集( I 区) 汉字 16 点阵字型

232 语音合成bull 文字的声音输出主要使用的是语音合成的技术bull 语音合成功能是ldquo文rarr语rdquo转换bull 文语转换 TTS (Text-To-Speech) 是将文本形式的信息转换成自然语音的一种技术其最终目标是使计算机输出清晰而又自然的声音

bull 英语的语音合成在上世纪 80年代就早已成熟而中文 汉语的合成现在也趋于成熟并有了广泛的应用(如汽车导航仪智能手机等)

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 55: 第一篇  媒体

BMP 的0x00~0x33

行字母文字区

00 基本拉丁文 拉丁文-1补充

01 拉丁文扩充-A 拉丁文扩充-B

02 拉丁文扩充-B 国际音标扩充 进格修饰字符

03 组合用发音符 基本希腊文 希腊符号及哥普特文

04 西里尔文

05 美亚尼亚文 希伯来文(基本和扩充)

06 基本阿拉伯文 阿拉伯文扩充

07

08

09 梵文 孟加拉文

0A 锡克教文 古吉拉特文

0B 奥利雅文 泰米尔文

0C 泰卢固文 卡纳达文

0D 德拉维族文

0E 泰文 老挝文

0F

10 格鲁吉亚文

11 朝鲜文字母

12~1D

1E 拉丁文扩充增补

1F 希腊文扩充

20 广义标点 上下标 货币符号 符号组合用区分标志

21 类似字母的符号 数字形式 箭头

22 数学运算符

23 零杂技术用符号

24 控制图符 光学识别符 带括号的字母数字

25 制表符 方块元素 几何图形符

26 零杂符号

27 示意符等

28~2F

30 CJK符号和标点 平假名 片假名

31 注音 朝鲜文兼容字母 CJK零杂字符

32 带括号的CJK字母及月份

33 CJK兼容字符

留作将来标准化用

非图形字符

表示形式bull GB 13000提供了字符编码表示的两种替代使用的形式

ndash 双八位 BMP 形式( UCS-2 )mdashmdash允许使用 BMP 中的字符且每个字符用两个字节表示

ndash 肆八位正则形式( UCS-4 )mdashmdash允许使用 GB 13000 中的全部字符且每个字符用四个字节表示

bull 除了 UCS-24外还有另外两种变形的表示形式ndash UTF-8 (单字节 ~ 多字节)ndash UTF-16 (双字节和 4 字节与 UCS-2 等价)ndash 目前在工业上的实现均为 UTF-16 ( UCS-2 )和 UTF-8ndash UTF = Unicode UCS Transformation Format 统一码 UC

S转换格式bull 关于统一码我们会在下一小节详细介绍

7 GBK 与 GB 18030bull 由于 GB 13000 标准与 GB 2312 标准的字符编码不兼容作为过渡在国家信息技术标准化委员会的主持下制定了与 GB 2312兼容的《汉字内码扩展规范( GBK )》( K 为扩展的ldquo扩rdquo字的拼音首字母)并于 1995年 12月 15日由原国家技术监督局标准司联合原电子工业部科技与质量监督司作为指导性技术规范发布实施

bull 2000年 GBK又被国家标准 GB 18030-2000《信息技术 信息交换用汉字编码字符集 基本集的扩充》所代替该标准收汉字 2万 7千个

bull 与 GB 2312 一样 GB 18030 也为中国的强制性国家标准微软公司的 Windows XPVista78 中文版与苹果公司的 Mac OS X 和 iOS 谷歌公司的 Android (安卓)等操作系统已经全面支持 GBK

GB 18030 的码位范围分布

字节数 码位空间 码位数目

单字节 0x00~0x7F 128

双字节第 1字节 第 2字节

23 9400x81~0xFE

0x40~0x7E 0x80~0xFE

四字节第 1字节 第 2字节 第 3字节 第 4字节

1 587 6000x81~0xFE 0x30~0x39 0x81~0xFE 0x30~0x39

GB 18030的

总体结构图

收录字符bull 单字节部分mdashmdash收录了GBT 11383 的 0x00~0x7F 全部 128 个字符(似 ASCI

I )bull 双字节部分mdashmdash收录内容如下 (21 003 个汉字和 884 个符号共 21 887 个字符 )

ndash GB 130001-93 的全部 CJK 统一汉字字符 20 902 个( GB 2312 的编码汉字在双字节 2 区其他 CJK 统一汉字在双字节 34 区)

ndash GB 130001-93 的 CJK兼容区挑选出来的 21 个汉字ldquo郎凉秊helliphellip﨨﨩rdquo( 0xFD9C~0xFDA0 和 0xFE40~0xFE4F )

ndash GB 130001-93 中收录而 GB 2312未收录的台湾地区使用的图形字符 139 个ldquoˊˋ˙helliphelliprdquo( 0xA840~0xA895 和 0xA940~0XA988 )

ndash GB 130001-93收录的其他字符 31 ( 13)个(在双字节 5 区)ndash GB 2312-80 中的非汉字字符 682 个( 0xA1A1~0xA9EF )ndash GB 12345-90 的竖排标点符号 19 ( 29)个ldquo︵︶︹helliphellip︳︴rdquo( 0xA6D9~0xA6

F5 )ndash GB 2312-80未收录的 10 个小写罗马数字ldquoⅰⅱⅲhelliphellipⅸⅹrdquo( 0xA2A1~ 0xA2A

A )ndash GB 2312-80未收录的带音调的汉语拼音字母 5 ( 4)个ldquo ńňǹrdquo 以及 ɑ 和 ɡ ( 0

xA8BB~0xA8C0 )ndash 汉字数字零ldquo〇rdquo (0xA996) 和欧元符ldquoeurordquo (0xA2E3)ndash 表意文字描述符 13 个ldquohelliphelliprdquo( 0xA989~0xA995 )ndash 对 GB 130001-93增补的汉字和部首 构件 80 个ldquohelliphellip䶮rdquo( 0xFE50~ 0x

FEA0 )bull 四字节部分mdashmdash收录了上述双字节字符之外的包括 CJK 统一汉字扩充 A 在内

的 GB 130001-93 中的全部字符

GB 18030双字节部分的码位安排

类别 区名 码位范围 码位数 字符数 内容

符号区双字节 1区 A1A1~A9FE 846 718

GB 2312非汉字字符等

双字节 5区 A840~A9A0 192 166 台湾图符等

汉字区双字节 2区 B0A1~F7FE 6768 6763 GB 2312汉字双字节 3区 8140~A0FE 6080 6080 CJK统一汉字双字节 4区 AA40~FEA0 8160 8160 CJK统一汉字等

用户自定义区双字节用户区 1 AAA1~AFFE 564

用户自定义字符双字节用户区 2 F8A1~FEFE 658

双字节用户区 3 A140~A7A0 672

GB 18030双字节部分的编码空间结构图 尾字节

0x40larr――rarr0x7E 0x80larr――rarr0xA0 0xA1larr――――――――――――rarr0xFE

0x81 uarr darr

0xA0

0xA1 uarr darr

0xA7

0xA8 0xA9

首字节

0xAA uarr | | | | | | | | | | darr

0xFE

双字节 3区

汉字区6 080个码位

双字节用户区 3

用户自定义区672个码位

双字节 5区 图形符号区192个码位

双字节 4区

汉字区8 160个码位

双字节 1区

图形符号区564个码位

双字节 2区

汉字区6 768个码位

双字节用户区 1 用户自定义区564个码位

双字节用户区 2 用户自定义区658个码位

223 国际通用字符编码

bull Unicode (统一码)是由多语言软件制造商组成的统一码协会( httpwwwUnicodeorg)所制定一种国际字符的编码标准

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull 本节主要介绍这两种关系密切的主流国际字符编码标准的来历编码方案各自特点与相互关系

1 Unicode 统一码bull 发展历史

ndash 1987年施乐( Xerox )公司的 Joe Becker 与 Lee Collins 和苹果( Apple )公司的 Mark Davis 等人开始讨论统一编码 1987年 12月 Joe Becker造词 Unicode (统一码)含义为ldquo unique universal and uniform character encodingrdquo (单一通用统一的字符编码) 1989年 2月开始定期召开统一码会议 1989年 9月公布 Unicode草案

ndash 1991年 1月 3 日由 Xerox Apple Sun IBM Aldis Microsoft 等公司出资在美国加州成立了统一码协会( Unicode Consortium )并由协会设立非盈利性的统一码公司( Unicode Inc )后来 HP Adobe Borland Digital Lotus Novell 等公司也纷纷加入 1991年 1月成立统一码技术委员会 UTC 并制定了其规程

ndash 1991年 2月在 Ed Hart 的推动下进行了ldquo统一码对 10464 国际标准草案 1rdquo 的对话Unicode 与 ISOIEC 10646开始走向融合

ndash 1991年 8月发布 Unicode 标准 10版的第 1卷(体系结构非表意字符) 1992年6月发表 Unicode 10版的第 2卷(表意字符) 1993年 6月发布 Unicode 11版与 1993年 5月公布的 ISOIEC 10646-11993 实现了合并

ndash 1996年 7月发布 Unicode 20版ndash 1999年 9月发布 Unicode 30版ndash 2003年 4月发布 Unicode 40版(对应于 ISOIEC 106462003 ) 2004年 3月 31日发布 Unicode 401版 2005年 3月 31日发布 Unicode 410版

ndash 2006年 7月 14日发布 Unicode 50版 2008年 4月 4日发布 Unicode 51版 2009年 12月 22日发布 Unicode 52版

ndash 2010年 10月发布 Unicode 60版 2012年 1月发布 Unicode 61版(对应于 ISOIEC 106462012 ) 2012年 9月推出 Unicode 62版 2013年 9月推出 Unicode 63版

ndash 2014年 6月 16日发布 Unicode 70版 ndash 2015年 6月 17日发布 Unicode 80版

字符集bull Unicode 字符集的空间分成双字节的基本多语言平面 (Basic Multilingual Pla

ne BMP) 和 4 字节的辅助多语言平面 (Supplementary Multilingual Plane SMP) 两种

bull BMPndash Unicode 的基本平面或基本多语言平面 BMP 对应于 ISOIEC 10646-1 的第 00组的 00 平面( BMP )即 Unicode 与 ISOIEC 10646 的 BMP 中的字符编码完全一致

bull SMPndash 鉴于 Unicode 原有的 16位元空间不足以应用从 Unicode 31版本开始设立了 16 个辅助平面使 Unicode 的可使用空间由六万多字增至约一百万字

ndash 原有的 Unicode双字节空间称为基本平面或基本多语言平面 BMP 辅助多语言平面 SMP 字符要用 4 字节来储存

ndash 第一辅助平面摆放拼音文字(主要为现时已不再使用的文字)及符号范围在 U+10000 - U+1FFFD

ndash 第二辅助平面又称为表意文字补充平面 (Supplementary Ideographic Plane 简称 SIP) 现时摆放ldquo中日韩统汉字扩展 B 区rdquo共 43253 个汉字范围在 U+20000 - U+2FFFD

ndash 第三至十三辅助平面尚未使用ndash 第十四辅助平面又称为特殊用途补充平面 (Supplementary Special-purpose Pl

ane 简称 SSP) 摆放 Language tags 和 Variation Selectors 它们都是控制字符范围在 U+E0000 - U+E01FF

ndash 第十五至十六辅助平面都是私人使用区它们的范围是 U+F0000 - U+FFFFD 及 U+100000 - U+1000FD

bull Unicode 字符集的具体编码方式参加第 4小节ldquo 4 UTFrdquo

2 ISOIEC 10646

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull ISOIEC 10646 标准由 ISO 与 IEC 联合成立的 ISOIEC JTC1SC2WG2 制定ndash JTC 1 ( Joint Technical Committee 1 on Information

technology ISOIEC信息技术联合技术委员会 1 )负责信息技术方面标准的制定工作

ndash SC 2 ( SubCommittee 2 on Coded character sets 编码字符集分会 2 )下的 WG 2 ( Working Group 2 on Universal coded character set 通用编码字符集工作组 2 )负责制定国际通用字符编码标准即后来公布的 ISOIEC 10646

发展历史bull 1984年 ISO 的一些会员国发起制定新的国际字符编码标准同年 4月 ISO

与 IEC 联合成立 ISOIEC JTC1SC2WG2 1987年 3月制定出编码架构1992年 6月投票通过第二版国际标准草案

bull 1993年 5月推出 10646 标准时将内容分成两个部分标准首先发布的是其中的第 1 个部分(体系结构与基本多文种平面)的第 1版( Edition 1 ) ISOIEC 10646-11993 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane(信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

bull 2000年 3月推出 10646 标准第一个部分的第 2版( Edition 2 ) ISOIEC 10646-12000 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane

bull 2001年 10月推出 10646 标准第 2版的第二个部分(辅助平面)的第 1版( Edition 1 ) ISOIEC 10646-22001 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 2 Supplementary Planes

bull 2003年 10月推出的 10646新标准(第 1版 Edition 1 )将老标准中的两个部分标准合并成了一个单一的标准 ISOIEC 106462003 Information technology -- Universal Multiple- Octet Coded Character Set (UCS) 后来又于 2010年 2012年和 2014年分别推出了 ISOIEC 106462010 (第 2版)ISOIEC 106462012 (第 3版)和 ISOIEC 106462014 (第 4版)

UCS 通用字符集bull 通用字符集( Universal Character Set UCS )是

ISOIEC 10646 标准所定义的字符编码方式采用 4字节编码又称为 Universal Multiple-Octet Coded Character Set (通用多八位编码字符集)

bull 通用字符集是所有包括了其他字符集它保证了与其他字符集的双向兼容即如果你将任何文本字符串翻译到 UCS 格式然后再翻译回原编码你不会丢失任何信息

bull UCS 包含了已知语言的所有字符除了拉丁语希腊语斯拉夫语希伯来语阿拉伯语亚美尼亚语格鲁吉亚语还包括中文日文韩文这样的象形文字 UCS 还包括大量的图形印刷数学科学符号

名字与组合字符bull UCS 不仅给每个字符分配一个代码而且赋予了

一个正式的名字表示一个 UCS 或 Unicode值的十六进制数通常在前面加上ldquo U+rdquo 例如ldquo U+0041rdquo代表字符ldquo Ardquo

bull UCS里有些编码点分配给了组合字符组合字符机制允许在任何字符后加上重音符或其他指示标记 这在科学符号中特别有用 比如数学方程式和国际音标字母 可能会需要在一个基本字符后组合上一个或多个指示标记

实现级别bull 并不是所有的系统都需要支持像组合字符这样的的先进

机制因此 ISO 10646 指定了如下三种实现级别ndash 级别 1不支持组合字符和韩语 Hangul Jamo 字符 ( 一种特

别的 更加复杂的韩国文的编码 使用两个或三个子字符来编码一个韩文音节 )

ndash 级别 2类似于级别 1 但在某些文字中允许一列固定的组合字符 (例如 希伯来文 阿拉伯文 Devangari 孟加拉语 果鲁穆奇语 Gujarati Oriya 泰米尔语 Telugo 印 埃纳德语 Malayalam 泰国语和老挝语 ) 因为如果没有最起码的几个组合字符 UCS就不能完整地表达这些语言

ndash 级别 3支持所有的 UCS 字符如可以在任意一个字符上加上一个箭头或 和一个 tilde(颚化符号即字母上面的~ )

编码方式bull UCS 有如下两种编码方式

ndash UCS-2与 Unicode 的 2 字节编码基本一样ndash UCS-4 4 字节编码目前是在 UCS-2 前加

上 2 个全零的字节bull UCS 还有 UTF 编码方式参见下面第 4小节ldquo 4 UTFrdquo

3 Unicode 与 ISOIEC 10646bull 关系

ndash 历史上存在两个独立的尝试创立单一字符集的组织即国际标准化组织( ISO )和多语言软件制造商组成的统一码协会组织( Unicodeorg )前者开发的 ISO 10646项目后者开发的 Unicode项目因此最初制定了不同的标准

ndash 1991年前后两个项目的参与者都认识到世界不需要两个不兼容的字符集于是它们开始合并双方的工作成果并为创立一个单一编码表而协同工作

ndash 从 Unicode20开始 Unicode采用了与 ISO 10646-1相同的字库和字码 ISO 也承诺 ISO10646 将不会替超出 U+10FFFF 的 UCS-4 编码赋值以使得两者保持一致

ndash 两个项目仍都存在并独立地公布各自的标准但 Unicode协会和 ISOIEC JTC1SC2 都同意保持两者标准的码表兼容并紧密地共同调整任何未来的扩展

异同bull Unicode协会公布的 Unicode 标准包含了 ISO 10646-1 实现级别

3 的基本多文种平面在两个标准里所有的字符都在相同的位置并且有相同的名字

bull ISO 10646 标准就像 ISO 8859 标准一样只不过是一个简单的字符集表它定义了一些编码的别名指定了一些与标准有关的术语并包括了规范说明指定了怎样使用 UCS连接其他 ISO 标准的实现等

bull Unicode 标准额外定义了许多与字符有关的语义符号学并详细说明了绘制某些语言(如阿拉伯语)表达形式的算法处理双向文字(比如拉丁文和希伯来文的混合文字)的算法排序与字符串比较所需的算法等等

bull 考虑到 Unicode 标准有一个易记的名字既便宜又包括更多的辅助信息因而它使用得更广泛然而

bull 一般认为用于打印 ISO 10646-1 标准的字体在某些方面的质量要高于用于打印 Unicode 20 的专业字体设计者总是被建议说要两个标准都实现但一些提供的样例字形有显著的区别 ISO 10646-1 标准同样使用四种不同的风格变体来显示表意文字如中文日文和韩文 (CJK) 而 Unicode 20 的表里只有中文的变体

4 UTFbull Unicode 和 UCS 都是一个字符集可以看作为内码bull UTF ( UnicodeUCS Transformation Format 统一码

通用字符集转换格式)是一种编码方式它的出现是因为 Unicode 和 UCS 不适宜在某些场合直接传输和处理

bull UCS 和 Unicode 只是分配整数给字符的编码表现在存在好几种将一串字符表示为一串字节的方法(如高或低位字节在前)

bull 最显而易见的两种方法是将 UCS 和 Unicode 文本存储为 2 个 或 4 个字节序列的串这两种方法的正式名称分别为 UCS-2 和 UCS-4

bull 常用的 UTF具体编码方式有 UTF-8 UTF-16 和 UTF-32

UTF-8

bull UTF-8 是 UTF 的一种具体编码方式在 ISO 10646-1 的附录 R 和 IETF 的 RFC 2279 里定义

bull 由于要使文档中的文字与 ASCII兼容故 UTF-8 选择了使用可变长度字节来储存 Unicode 和 UCS 例如ndash ASCII 字母继续使用 1 字节储存ndash 重音文字希腊字母或西里尔字母等使用 2 字节来储存ndash 常用的汉字就要使用 3 字节ndash 辅助平面字符则使用 4 字节ndash 即 ASCII 不作变换其他字符做变长编码每个字符 1~4 字节

bull UTF-8 通常作为外码bull 在 UTF-8 文件的开首很多时都放置一个 U+FEFF 字符

(UTF-8 以 EF BB BF 代表 ) 以显示这个文字档案是以UTF-8 编码

UTF-8 的优点bull 与 CPU 字节顺序无关可以在不同平台之间交流

bull 容错能力高任何一个字节损坏后最多只会导致一个编码码位损失不会链锁错误 ( 如 GB 码错一个字节就会整行乱码 )

UTF-8 的缺点bull UTF-8 使用可变长度字节储存使计算机程序设计变得复杂 (故此在计算机程序或操作系统内部多采用 UCS-2 编码 )

bull 在旧式的中文日文及朝鲜文编码之中每字符都使用 2 字节储存而 UTF-8 须使用 3 字节 (采用 UTF-16 编码则可只使用 2字节储存 )

bull 泰语以往使用的 ISO 8859-11 每字符只使用 1 字节储存而 UTF-8 须使用 3 字节

UTF-8储存的多字节串字符bull U-00000000 - U-0000007F 0xxxxxxx bull U-00000080 - U-000007FF 110xxxxx 10xxxxxx

bull U-00000800 - U-0000FFFF 1110xxxx 10xxxxxx

10xxxxxx bull U-00010000 - U-001FFFFF 11110xxx 10xxxxx

x 10xxxxxx 10xxxxxx bull 在多字节串中第一个字节的开头ldquo 1rdquo 的数目就

是整个串中字节的数目bull 每个使用 UTF-8储存的字符除了第一个字节外其余字节的头两个位元都是以 10 开始使文字处理器能够较快地找出每个字符的开始位置

UTF-16bull UTF-16 是 UTF 的另一种具体编码方式在 ISO 1064

6-1 的附录 Q 和 IETF 的 RFC 2781 里定义bull UTF-16 是变长码( 2 或 4 字节)大致相当于 20位编码值在 0 到 0x10FFFF 之间基本上就是 Unicode 编码的实现 UTF-16 与 CPU 字序有关但因为最省空间常作为网络传输的外码 UTF-16 是 Unicode 的完美编码

bull lt0x10000 的直接用其对应的 16位整数编码位于 0x10000 ~ 0x10FFFF 之间的用 0xD800~0xDBFF 的 16位整数后跟 0xDC00~0xDFFF 的 16位整数的 4 字节编码 gt 0x10FFFF 的不能用 UTF-16 表示

bull 在 Unicode 的 BMP 中定义的字符(无论是拉丁字母汉字或其他文字或符号)一律使用 2 字节存储而在辅助平面定义的字符则以两个 2 字节的值来存储

UTF-16 的特点bull UTF-16比起 UTF-8 的好处在于大部分字符都以固定长

度的 2 字节存储但 UTF-16却无法相容于 ASCII 编码bull UTF-16 有两种编码模式即大尾序( big Endian 高位字节在前)和小尾序( little Endian 高位字节在后)储存形式(一般來說以 Macintosh 制作和存储的文字使用大尾序格式以 Microsoft 或 Linux 制作和存储的文字使用小尾序格式)

bull 为了弄区分 UTF-16 文件的大小尾序在 UTF-16 文件的开头都会放置一个 U+FEFF 字符作为字节顺序标记 (UTF-16LE 以 FF FE代表 UTF-16BE 以 FE FF代表 ) 以显示该文档是以 UTF-16 编码的

UTF-32

bull UTF-32 仅使用了 Unicode范围 (0 到 0x10FFFF) 的 32位编码相当于 UCS-4 的子集

bull 由于 Unicode 和 ISOIEC 10646 的编码和结构与前面讲过的 GB 13000 类似或等价这里就不再做详细的介绍

5支持bull 现在 UnicodeUCS 已经获得了十分广泛的支

持ndash网络与浏览器(如 HTML 4050 XML 与 IE

Safari Netscape Firefox Chrome Opera Edge 等)

ndash操作系统(如 Windows NT2000XPVista7810 Mac OS X iOS Android和 Linux )

ndash 编程语言新版本(如 CC++JavaObjective-CC Swift 等)

Unicode 代码的浏览器显示代码 字符标准名称 (英语 )

浏览器的显示

amp65 大写拉丁字母 A A

amp223 小写拉丁字母 Sharp S szlig

amp254 小写拉丁字母 Thorn thorn

amp916 大写希腊字母 Delta Δ

amp1049 大写斯拉夫字母 Short I Й

amp1511 希伯来字母 Qof ק

amp1605 阿拉伯字母 Meem م

amp3671 泰文数字 7 ๗amp4688 埃塞俄比亚音节文字 Qha ቐ

amp12354 日语平假名 A あamp12450 日语片假名 A アamp21494 简体汉字 叶 叶amp33865 繁体汉字 葉 葉amp50685 韩国音节文字 Yeob 엽

23 文字输出bull 文字输出是指将计算机内的字符编码通过计算机的输出设备(如显示器打印机喇叭)展现出所对应字符的图形或声音供人们阅读或聆听

bull 本节主要介绍文字图示输出的字形技术bull 文字声音输出属于语音合成只在本节的末尾作简单的介绍

231 字形技术bull 文字 = 图形bull 不论是象形文字中的单字还是拼音文字

中的字母都是用图形来表示的bull 在计算机里文字的表示 输出(显示和打

印)涉及ndash 字型ndash 字体ndash 字库

1字型bull 字型指构造和生成字形的方法一般可分为

ndash 点阵字 DOS 显卡 ROM 金山 科印特点似位图显示快占空间(字库大)放大后有马赛克效应

bull 显示字母 88 汉字 1616bull 打印 2424 4848 6464

ndash 矢量字单线条用于笔式绘图仪特点字库小算法简单难看

ndash 轮廓字用曲线描绘字的轮廓输出效果好所见即所得(WYSWYG) 可无级放大易实现空心 阴影 填充 变形等各种特效功能轮廓曲线一般采用样条曲线如 TrueType (Apple 1991 Mac OS Microsoft 1992 Windows 31)用的是二次 B 样条 Bezier曲线中文之星 RichWin采用的是三次 B 样条 Bezier曲线

字型种类

2字体bull 字体指字的形状风格如

ndash 汉字的

ndash 英文的

宋体楷体黑体仿宋

行楷隶书新魏幼圆

Times New Roman Arial Narrow Courier New

常用汉字字体bull 宋体mdashmdash宋体来自于北宋时雕版刻书所采用的欧体字(唐朝欧阳询体)宋体字的横顿拉捺挑钩别具特色间架平正疏密适中字体秀丽遒劲但笔画横细竖粗适合于刀刻不宜于手写现在宋体广泛用于印刷常来表现文档的正文

bull 仿宋体mdashmdash 1920年钱塘的丁辅之与丁善之等人将明代以后盛行的方廓形字体加以改造创造出长形和方形的聚珍仿宋后来演化为现在的仿宋体仿宋体比较接近于手写体为宋体和楷体的折中是采用的宋体的结构和楷体的笔法而成现常来表现打印文件以及文档的摘要和注释等

bull 黑体mdashmdash黑体是适应工艺美术的发展而出现的一种等线体是从日本引进的黑体的结构与宋体没有什么差别只是其笔画粗细一致健实粗壮主要用于文档的标题和重点及标语广告等方面

bull 楷体mdashmdash楷体源于楷书楷体的笔画圆浑笔调灵活结构端正美观但不宜于木板雕刻所以直到清末西洋的石板印刷术传入后才开始广泛用于印刷现代的楷体创造于 20世纪的二三十年代主要用于文档的正文(多用于中小学教材)也可用于工艺美术等方面

3字库bull 字库为一种文字的某一字体的所有字符的集合一般存放在一个磁盘文件中

bull 由于象形文字中单字的数量大(成千上万)而拼音文字中字母的数量小(不到一百个)所以字库的大小有很大的差别

bull 为了使文档界面丰富多彩常见的字处理软件都支持多种字体带有众多字库

4点阵字型的国家标准bull 我国已经公布了若干字体的点阵字型之国家标准

ndash GB 50071-19852001 信息技术 汉字编码字符集(基本集) 24 点阵字型

ndash GB 50072-19852001 信息技术 汉字编码字符集(辅助集) 24 点阵字型

ndash GB 5199-19862001 信息技术 汉字编码字符集(基本集) 16 点阵字型 宋体

ndash GB 6345-19862001 信息技术 汉字编码字符集(基本集) 32 点阵字型 宋体

ndash GB 12041-2001 信息技术 汉字编码字符集(基本集) 48点阵字型 宋体

ndash GB 17698-1999 信息技术 通用多八位编码字符集( I 区) 汉字 16 点阵字型

232 语音合成bull 文字的声音输出主要使用的是语音合成的技术bull 语音合成功能是ldquo文rarr语rdquo转换bull 文语转换 TTS (Text-To-Speech) 是将文本形式的信息转换成自然语音的一种技术其最终目标是使计算机输出清晰而又自然的声音

bull 英语的语音合成在上世纪 80年代就早已成熟而中文 汉语的合成现在也趋于成熟并有了广泛的应用(如汽车导航仪智能手机等)

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 56: 第一篇  媒体

表示形式bull GB 13000提供了字符编码表示的两种替代使用的形式

ndash 双八位 BMP 形式( UCS-2 )mdashmdash允许使用 BMP 中的字符且每个字符用两个字节表示

ndash 肆八位正则形式( UCS-4 )mdashmdash允许使用 GB 13000 中的全部字符且每个字符用四个字节表示

bull 除了 UCS-24外还有另外两种变形的表示形式ndash UTF-8 (单字节 ~ 多字节)ndash UTF-16 (双字节和 4 字节与 UCS-2 等价)ndash 目前在工业上的实现均为 UTF-16 ( UCS-2 )和 UTF-8ndash UTF = Unicode UCS Transformation Format 统一码 UC

S转换格式bull 关于统一码我们会在下一小节详细介绍

7 GBK 与 GB 18030bull 由于 GB 13000 标准与 GB 2312 标准的字符编码不兼容作为过渡在国家信息技术标准化委员会的主持下制定了与 GB 2312兼容的《汉字内码扩展规范( GBK )》( K 为扩展的ldquo扩rdquo字的拼音首字母)并于 1995年 12月 15日由原国家技术监督局标准司联合原电子工业部科技与质量监督司作为指导性技术规范发布实施

bull 2000年 GBK又被国家标准 GB 18030-2000《信息技术 信息交换用汉字编码字符集 基本集的扩充》所代替该标准收汉字 2万 7千个

bull 与 GB 2312 一样 GB 18030 也为中国的强制性国家标准微软公司的 Windows XPVista78 中文版与苹果公司的 Mac OS X 和 iOS 谷歌公司的 Android (安卓)等操作系统已经全面支持 GBK

GB 18030 的码位范围分布

字节数 码位空间 码位数目

单字节 0x00~0x7F 128

双字节第 1字节 第 2字节

23 9400x81~0xFE

0x40~0x7E 0x80~0xFE

四字节第 1字节 第 2字节 第 3字节 第 4字节

1 587 6000x81~0xFE 0x30~0x39 0x81~0xFE 0x30~0x39

GB 18030的

总体结构图

收录字符bull 单字节部分mdashmdash收录了GBT 11383 的 0x00~0x7F 全部 128 个字符(似 ASCI

I )bull 双字节部分mdashmdash收录内容如下 (21 003 个汉字和 884 个符号共 21 887 个字符 )

ndash GB 130001-93 的全部 CJK 统一汉字字符 20 902 个( GB 2312 的编码汉字在双字节 2 区其他 CJK 统一汉字在双字节 34 区)

ndash GB 130001-93 的 CJK兼容区挑选出来的 21 个汉字ldquo郎凉秊helliphellip﨨﨩rdquo( 0xFD9C~0xFDA0 和 0xFE40~0xFE4F )

ndash GB 130001-93 中收录而 GB 2312未收录的台湾地区使用的图形字符 139 个ldquoˊˋ˙helliphelliprdquo( 0xA840~0xA895 和 0xA940~0XA988 )

ndash GB 130001-93收录的其他字符 31 ( 13)个(在双字节 5 区)ndash GB 2312-80 中的非汉字字符 682 个( 0xA1A1~0xA9EF )ndash GB 12345-90 的竖排标点符号 19 ( 29)个ldquo︵︶︹helliphellip︳︴rdquo( 0xA6D9~0xA6

F5 )ndash GB 2312-80未收录的 10 个小写罗马数字ldquoⅰⅱⅲhelliphellipⅸⅹrdquo( 0xA2A1~ 0xA2A

A )ndash GB 2312-80未收录的带音调的汉语拼音字母 5 ( 4)个ldquo ńňǹrdquo 以及 ɑ 和 ɡ ( 0

xA8BB~0xA8C0 )ndash 汉字数字零ldquo〇rdquo (0xA996) 和欧元符ldquoeurordquo (0xA2E3)ndash 表意文字描述符 13 个ldquohelliphelliprdquo( 0xA989~0xA995 )ndash 对 GB 130001-93增补的汉字和部首 构件 80 个ldquohelliphellip䶮rdquo( 0xFE50~ 0x

FEA0 )bull 四字节部分mdashmdash收录了上述双字节字符之外的包括 CJK 统一汉字扩充 A 在内

的 GB 130001-93 中的全部字符

GB 18030双字节部分的码位安排

类别 区名 码位范围 码位数 字符数 内容

符号区双字节 1区 A1A1~A9FE 846 718

GB 2312非汉字字符等

双字节 5区 A840~A9A0 192 166 台湾图符等

汉字区双字节 2区 B0A1~F7FE 6768 6763 GB 2312汉字双字节 3区 8140~A0FE 6080 6080 CJK统一汉字双字节 4区 AA40~FEA0 8160 8160 CJK统一汉字等

用户自定义区双字节用户区 1 AAA1~AFFE 564

用户自定义字符双字节用户区 2 F8A1~FEFE 658

双字节用户区 3 A140~A7A0 672

GB 18030双字节部分的编码空间结构图 尾字节

0x40larr――rarr0x7E 0x80larr――rarr0xA0 0xA1larr――――――――――――rarr0xFE

0x81 uarr darr

0xA0

0xA1 uarr darr

0xA7

0xA8 0xA9

首字节

0xAA uarr | | | | | | | | | | darr

0xFE

双字节 3区

汉字区6 080个码位

双字节用户区 3

用户自定义区672个码位

双字节 5区 图形符号区192个码位

双字节 4区

汉字区8 160个码位

双字节 1区

图形符号区564个码位

双字节 2区

汉字区6 768个码位

双字节用户区 1 用户自定义区564个码位

双字节用户区 2 用户自定义区658个码位

223 国际通用字符编码

bull Unicode (统一码)是由多语言软件制造商组成的统一码协会( httpwwwUnicodeorg)所制定一种国际字符的编码标准

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull 本节主要介绍这两种关系密切的主流国际字符编码标准的来历编码方案各自特点与相互关系

1 Unicode 统一码bull 发展历史

ndash 1987年施乐( Xerox )公司的 Joe Becker 与 Lee Collins 和苹果( Apple )公司的 Mark Davis 等人开始讨论统一编码 1987年 12月 Joe Becker造词 Unicode (统一码)含义为ldquo unique universal and uniform character encodingrdquo (单一通用统一的字符编码) 1989年 2月开始定期召开统一码会议 1989年 9月公布 Unicode草案

ndash 1991年 1月 3 日由 Xerox Apple Sun IBM Aldis Microsoft 等公司出资在美国加州成立了统一码协会( Unicode Consortium )并由协会设立非盈利性的统一码公司( Unicode Inc )后来 HP Adobe Borland Digital Lotus Novell 等公司也纷纷加入 1991年 1月成立统一码技术委员会 UTC 并制定了其规程

ndash 1991年 2月在 Ed Hart 的推动下进行了ldquo统一码对 10464 国际标准草案 1rdquo 的对话Unicode 与 ISOIEC 10646开始走向融合

ndash 1991年 8月发布 Unicode 标准 10版的第 1卷(体系结构非表意字符) 1992年6月发表 Unicode 10版的第 2卷(表意字符) 1993年 6月发布 Unicode 11版与 1993年 5月公布的 ISOIEC 10646-11993 实现了合并

ndash 1996年 7月发布 Unicode 20版ndash 1999年 9月发布 Unicode 30版ndash 2003年 4月发布 Unicode 40版(对应于 ISOIEC 106462003 ) 2004年 3月 31日发布 Unicode 401版 2005年 3月 31日发布 Unicode 410版

ndash 2006年 7月 14日发布 Unicode 50版 2008年 4月 4日发布 Unicode 51版 2009年 12月 22日发布 Unicode 52版

ndash 2010年 10月发布 Unicode 60版 2012年 1月发布 Unicode 61版(对应于 ISOIEC 106462012 ) 2012年 9月推出 Unicode 62版 2013年 9月推出 Unicode 63版

ndash 2014年 6月 16日发布 Unicode 70版 ndash 2015年 6月 17日发布 Unicode 80版

字符集bull Unicode 字符集的空间分成双字节的基本多语言平面 (Basic Multilingual Pla

ne BMP) 和 4 字节的辅助多语言平面 (Supplementary Multilingual Plane SMP) 两种

bull BMPndash Unicode 的基本平面或基本多语言平面 BMP 对应于 ISOIEC 10646-1 的第 00组的 00 平面( BMP )即 Unicode 与 ISOIEC 10646 的 BMP 中的字符编码完全一致

bull SMPndash 鉴于 Unicode 原有的 16位元空间不足以应用从 Unicode 31版本开始设立了 16 个辅助平面使 Unicode 的可使用空间由六万多字增至约一百万字

ndash 原有的 Unicode双字节空间称为基本平面或基本多语言平面 BMP 辅助多语言平面 SMP 字符要用 4 字节来储存

ndash 第一辅助平面摆放拼音文字(主要为现时已不再使用的文字)及符号范围在 U+10000 - U+1FFFD

ndash 第二辅助平面又称为表意文字补充平面 (Supplementary Ideographic Plane 简称 SIP) 现时摆放ldquo中日韩统汉字扩展 B 区rdquo共 43253 个汉字范围在 U+20000 - U+2FFFD

ndash 第三至十三辅助平面尚未使用ndash 第十四辅助平面又称为特殊用途补充平面 (Supplementary Special-purpose Pl

ane 简称 SSP) 摆放 Language tags 和 Variation Selectors 它们都是控制字符范围在 U+E0000 - U+E01FF

ndash 第十五至十六辅助平面都是私人使用区它们的范围是 U+F0000 - U+FFFFD 及 U+100000 - U+1000FD

bull Unicode 字符集的具体编码方式参加第 4小节ldquo 4 UTFrdquo

2 ISOIEC 10646

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull ISOIEC 10646 标准由 ISO 与 IEC 联合成立的 ISOIEC JTC1SC2WG2 制定ndash JTC 1 ( Joint Technical Committee 1 on Information

technology ISOIEC信息技术联合技术委员会 1 )负责信息技术方面标准的制定工作

ndash SC 2 ( SubCommittee 2 on Coded character sets 编码字符集分会 2 )下的 WG 2 ( Working Group 2 on Universal coded character set 通用编码字符集工作组 2 )负责制定国际通用字符编码标准即后来公布的 ISOIEC 10646

发展历史bull 1984年 ISO 的一些会员国发起制定新的国际字符编码标准同年 4月 ISO

与 IEC 联合成立 ISOIEC JTC1SC2WG2 1987年 3月制定出编码架构1992年 6月投票通过第二版国际标准草案

bull 1993年 5月推出 10646 标准时将内容分成两个部分标准首先发布的是其中的第 1 个部分(体系结构与基本多文种平面)的第 1版( Edition 1 ) ISOIEC 10646-11993 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane(信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

bull 2000年 3月推出 10646 标准第一个部分的第 2版( Edition 2 ) ISOIEC 10646-12000 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane

bull 2001年 10月推出 10646 标准第 2版的第二个部分(辅助平面)的第 1版( Edition 1 ) ISOIEC 10646-22001 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 2 Supplementary Planes

bull 2003年 10月推出的 10646新标准(第 1版 Edition 1 )将老标准中的两个部分标准合并成了一个单一的标准 ISOIEC 106462003 Information technology -- Universal Multiple- Octet Coded Character Set (UCS) 后来又于 2010年 2012年和 2014年分别推出了 ISOIEC 106462010 (第 2版)ISOIEC 106462012 (第 3版)和 ISOIEC 106462014 (第 4版)

UCS 通用字符集bull 通用字符集( Universal Character Set UCS )是

ISOIEC 10646 标准所定义的字符编码方式采用 4字节编码又称为 Universal Multiple-Octet Coded Character Set (通用多八位编码字符集)

bull 通用字符集是所有包括了其他字符集它保证了与其他字符集的双向兼容即如果你将任何文本字符串翻译到 UCS 格式然后再翻译回原编码你不会丢失任何信息

bull UCS 包含了已知语言的所有字符除了拉丁语希腊语斯拉夫语希伯来语阿拉伯语亚美尼亚语格鲁吉亚语还包括中文日文韩文这样的象形文字 UCS 还包括大量的图形印刷数学科学符号

名字与组合字符bull UCS 不仅给每个字符分配一个代码而且赋予了

一个正式的名字表示一个 UCS 或 Unicode值的十六进制数通常在前面加上ldquo U+rdquo 例如ldquo U+0041rdquo代表字符ldquo Ardquo

bull UCS里有些编码点分配给了组合字符组合字符机制允许在任何字符后加上重音符或其他指示标记 这在科学符号中特别有用 比如数学方程式和国际音标字母 可能会需要在一个基本字符后组合上一个或多个指示标记

实现级别bull 并不是所有的系统都需要支持像组合字符这样的的先进

机制因此 ISO 10646 指定了如下三种实现级别ndash 级别 1不支持组合字符和韩语 Hangul Jamo 字符 ( 一种特

别的 更加复杂的韩国文的编码 使用两个或三个子字符来编码一个韩文音节 )

ndash 级别 2类似于级别 1 但在某些文字中允许一列固定的组合字符 (例如 希伯来文 阿拉伯文 Devangari 孟加拉语 果鲁穆奇语 Gujarati Oriya 泰米尔语 Telugo 印 埃纳德语 Malayalam 泰国语和老挝语 ) 因为如果没有最起码的几个组合字符 UCS就不能完整地表达这些语言

ndash 级别 3支持所有的 UCS 字符如可以在任意一个字符上加上一个箭头或 和一个 tilde(颚化符号即字母上面的~ )

编码方式bull UCS 有如下两种编码方式

ndash UCS-2与 Unicode 的 2 字节编码基本一样ndash UCS-4 4 字节编码目前是在 UCS-2 前加

上 2 个全零的字节bull UCS 还有 UTF 编码方式参见下面第 4小节ldquo 4 UTFrdquo

3 Unicode 与 ISOIEC 10646bull 关系

ndash 历史上存在两个独立的尝试创立单一字符集的组织即国际标准化组织( ISO )和多语言软件制造商组成的统一码协会组织( Unicodeorg )前者开发的 ISO 10646项目后者开发的 Unicode项目因此最初制定了不同的标准

ndash 1991年前后两个项目的参与者都认识到世界不需要两个不兼容的字符集于是它们开始合并双方的工作成果并为创立一个单一编码表而协同工作

ndash 从 Unicode20开始 Unicode采用了与 ISO 10646-1相同的字库和字码 ISO 也承诺 ISO10646 将不会替超出 U+10FFFF 的 UCS-4 编码赋值以使得两者保持一致

ndash 两个项目仍都存在并独立地公布各自的标准但 Unicode协会和 ISOIEC JTC1SC2 都同意保持两者标准的码表兼容并紧密地共同调整任何未来的扩展

异同bull Unicode协会公布的 Unicode 标准包含了 ISO 10646-1 实现级别

3 的基本多文种平面在两个标准里所有的字符都在相同的位置并且有相同的名字

bull ISO 10646 标准就像 ISO 8859 标准一样只不过是一个简单的字符集表它定义了一些编码的别名指定了一些与标准有关的术语并包括了规范说明指定了怎样使用 UCS连接其他 ISO 标准的实现等

bull Unicode 标准额外定义了许多与字符有关的语义符号学并详细说明了绘制某些语言(如阿拉伯语)表达形式的算法处理双向文字(比如拉丁文和希伯来文的混合文字)的算法排序与字符串比较所需的算法等等

bull 考虑到 Unicode 标准有一个易记的名字既便宜又包括更多的辅助信息因而它使用得更广泛然而

bull 一般认为用于打印 ISO 10646-1 标准的字体在某些方面的质量要高于用于打印 Unicode 20 的专业字体设计者总是被建议说要两个标准都实现但一些提供的样例字形有显著的区别 ISO 10646-1 标准同样使用四种不同的风格变体来显示表意文字如中文日文和韩文 (CJK) 而 Unicode 20 的表里只有中文的变体

4 UTFbull Unicode 和 UCS 都是一个字符集可以看作为内码bull UTF ( UnicodeUCS Transformation Format 统一码

通用字符集转换格式)是一种编码方式它的出现是因为 Unicode 和 UCS 不适宜在某些场合直接传输和处理

bull UCS 和 Unicode 只是分配整数给字符的编码表现在存在好几种将一串字符表示为一串字节的方法(如高或低位字节在前)

bull 最显而易见的两种方法是将 UCS 和 Unicode 文本存储为 2 个 或 4 个字节序列的串这两种方法的正式名称分别为 UCS-2 和 UCS-4

bull 常用的 UTF具体编码方式有 UTF-8 UTF-16 和 UTF-32

UTF-8

bull UTF-8 是 UTF 的一种具体编码方式在 ISO 10646-1 的附录 R 和 IETF 的 RFC 2279 里定义

bull 由于要使文档中的文字与 ASCII兼容故 UTF-8 选择了使用可变长度字节来储存 Unicode 和 UCS 例如ndash ASCII 字母继续使用 1 字节储存ndash 重音文字希腊字母或西里尔字母等使用 2 字节来储存ndash 常用的汉字就要使用 3 字节ndash 辅助平面字符则使用 4 字节ndash 即 ASCII 不作变换其他字符做变长编码每个字符 1~4 字节

bull UTF-8 通常作为外码bull 在 UTF-8 文件的开首很多时都放置一个 U+FEFF 字符

(UTF-8 以 EF BB BF 代表 ) 以显示这个文字档案是以UTF-8 编码

UTF-8 的优点bull 与 CPU 字节顺序无关可以在不同平台之间交流

bull 容错能力高任何一个字节损坏后最多只会导致一个编码码位损失不会链锁错误 ( 如 GB 码错一个字节就会整行乱码 )

UTF-8 的缺点bull UTF-8 使用可变长度字节储存使计算机程序设计变得复杂 (故此在计算机程序或操作系统内部多采用 UCS-2 编码 )

bull 在旧式的中文日文及朝鲜文编码之中每字符都使用 2 字节储存而 UTF-8 须使用 3 字节 (采用 UTF-16 编码则可只使用 2字节储存 )

bull 泰语以往使用的 ISO 8859-11 每字符只使用 1 字节储存而 UTF-8 须使用 3 字节

UTF-8储存的多字节串字符bull U-00000000 - U-0000007F 0xxxxxxx bull U-00000080 - U-000007FF 110xxxxx 10xxxxxx

bull U-00000800 - U-0000FFFF 1110xxxx 10xxxxxx

10xxxxxx bull U-00010000 - U-001FFFFF 11110xxx 10xxxxx

x 10xxxxxx 10xxxxxx bull 在多字节串中第一个字节的开头ldquo 1rdquo 的数目就

是整个串中字节的数目bull 每个使用 UTF-8储存的字符除了第一个字节外其余字节的头两个位元都是以 10 开始使文字处理器能够较快地找出每个字符的开始位置

UTF-16bull UTF-16 是 UTF 的另一种具体编码方式在 ISO 1064

6-1 的附录 Q 和 IETF 的 RFC 2781 里定义bull UTF-16 是变长码( 2 或 4 字节)大致相当于 20位编码值在 0 到 0x10FFFF 之间基本上就是 Unicode 编码的实现 UTF-16 与 CPU 字序有关但因为最省空间常作为网络传输的外码 UTF-16 是 Unicode 的完美编码

bull lt0x10000 的直接用其对应的 16位整数编码位于 0x10000 ~ 0x10FFFF 之间的用 0xD800~0xDBFF 的 16位整数后跟 0xDC00~0xDFFF 的 16位整数的 4 字节编码 gt 0x10FFFF 的不能用 UTF-16 表示

bull 在 Unicode 的 BMP 中定义的字符(无论是拉丁字母汉字或其他文字或符号)一律使用 2 字节存储而在辅助平面定义的字符则以两个 2 字节的值来存储

UTF-16 的特点bull UTF-16比起 UTF-8 的好处在于大部分字符都以固定长

度的 2 字节存储但 UTF-16却无法相容于 ASCII 编码bull UTF-16 有两种编码模式即大尾序( big Endian 高位字节在前)和小尾序( little Endian 高位字节在后)储存形式(一般來說以 Macintosh 制作和存储的文字使用大尾序格式以 Microsoft 或 Linux 制作和存储的文字使用小尾序格式)

bull 为了弄区分 UTF-16 文件的大小尾序在 UTF-16 文件的开头都会放置一个 U+FEFF 字符作为字节顺序标记 (UTF-16LE 以 FF FE代表 UTF-16BE 以 FE FF代表 ) 以显示该文档是以 UTF-16 编码的

UTF-32

bull UTF-32 仅使用了 Unicode范围 (0 到 0x10FFFF) 的 32位编码相当于 UCS-4 的子集

bull 由于 Unicode 和 ISOIEC 10646 的编码和结构与前面讲过的 GB 13000 类似或等价这里就不再做详细的介绍

5支持bull 现在 UnicodeUCS 已经获得了十分广泛的支

持ndash网络与浏览器(如 HTML 4050 XML 与 IE

Safari Netscape Firefox Chrome Opera Edge 等)

ndash操作系统(如 Windows NT2000XPVista7810 Mac OS X iOS Android和 Linux )

ndash 编程语言新版本(如 CC++JavaObjective-CC Swift 等)

Unicode 代码的浏览器显示代码 字符标准名称 (英语 )

浏览器的显示

amp65 大写拉丁字母 A A

amp223 小写拉丁字母 Sharp S szlig

amp254 小写拉丁字母 Thorn thorn

amp916 大写希腊字母 Delta Δ

amp1049 大写斯拉夫字母 Short I Й

amp1511 希伯来字母 Qof ק

amp1605 阿拉伯字母 Meem م

amp3671 泰文数字 7 ๗amp4688 埃塞俄比亚音节文字 Qha ቐ

amp12354 日语平假名 A あamp12450 日语片假名 A アamp21494 简体汉字 叶 叶amp33865 繁体汉字 葉 葉amp50685 韩国音节文字 Yeob 엽

23 文字输出bull 文字输出是指将计算机内的字符编码通过计算机的输出设备(如显示器打印机喇叭)展现出所对应字符的图形或声音供人们阅读或聆听

bull 本节主要介绍文字图示输出的字形技术bull 文字声音输出属于语音合成只在本节的末尾作简单的介绍

231 字形技术bull 文字 = 图形bull 不论是象形文字中的单字还是拼音文字

中的字母都是用图形来表示的bull 在计算机里文字的表示 输出(显示和打

印)涉及ndash 字型ndash 字体ndash 字库

1字型bull 字型指构造和生成字形的方法一般可分为

ndash 点阵字 DOS 显卡 ROM 金山 科印特点似位图显示快占空间(字库大)放大后有马赛克效应

bull 显示字母 88 汉字 1616bull 打印 2424 4848 6464

ndash 矢量字单线条用于笔式绘图仪特点字库小算法简单难看

ndash 轮廓字用曲线描绘字的轮廓输出效果好所见即所得(WYSWYG) 可无级放大易实现空心 阴影 填充 变形等各种特效功能轮廓曲线一般采用样条曲线如 TrueType (Apple 1991 Mac OS Microsoft 1992 Windows 31)用的是二次 B 样条 Bezier曲线中文之星 RichWin采用的是三次 B 样条 Bezier曲线

字型种类

2字体bull 字体指字的形状风格如

ndash 汉字的

ndash 英文的

宋体楷体黑体仿宋

行楷隶书新魏幼圆

Times New Roman Arial Narrow Courier New

常用汉字字体bull 宋体mdashmdash宋体来自于北宋时雕版刻书所采用的欧体字(唐朝欧阳询体)宋体字的横顿拉捺挑钩别具特色间架平正疏密适中字体秀丽遒劲但笔画横细竖粗适合于刀刻不宜于手写现在宋体广泛用于印刷常来表现文档的正文

bull 仿宋体mdashmdash 1920年钱塘的丁辅之与丁善之等人将明代以后盛行的方廓形字体加以改造创造出长形和方形的聚珍仿宋后来演化为现在的仿宋体仿宋体比较接近于手写体为宋体和楷体的折中是采用的宋体的结构和楷体的笔法而成现常来表现打印文件以及文档的摘要和注释等

bull 黑体mdashmdash黑体是适应工艺美术的发展而出现的一种等线体是从日本引进的黑体的结构与宋体没有什么差别只是其笔画粗细一致健实粗壮主要用于文档的标题和重点及标语广告等方面

bull 楷体mdashmdash楷体源于楷书楷体的笔画圆浑笔调灵活结构端正美观但不宜于木板雕刻所以直到清末西洋的石板印刷术传入后才开始广泛用于印刷现代的楷体创造于 20世纪的二三十年代主要用于文档的正文(多用于中小学教材)也可用于工艺美术等方面

3字库bull 字库为一种文字的某一字体的所有字符的集合一般存放在一个磁盘文件中

bull 由于象形文字中单字的数量大(成千上万)而拼音文字中字母的数量小(不到一百个)所以字库的大小有很大的差别

bull 为了使文档界面丰富多彩常见的字处理软件都支持多种字体带有众多字库

4点阵字型的国家标准bull 我国已经公布了若干字体的点阵字型之国家标准

ndash GB 50071-19852001 信息技术 汉字编码字符集(基本集) 24 点阵字型

ndash GB 50072-19852001 信息技术 汉字编码字符集(辅助集) 24 点阵字型

ndash GB 5199-19862001 信息技术 汉字编码字符集(基本集) 16 点阵字型 宋体

ndash GB 6345-19862001 信息技术 汉字编码字符集(基本集) 32 点阵字型 宋体

ndash GB 12041-2001 信息技术 汉字编码字符集(基本集) 48点阵字型 宋体

ndash GB 17698-1999 信息技术 通用多八位编码字符集( I 区) 汉字 16 点阵字型

232 语音合成bull 文字的声音输出主要使用的是语音合成的技术bull 语音合成功能是ldquo文rarr语rdquo转换bull 文语转换 TTS (Text-To-Speech) 是将文本形式的信息转换成自然语音的一种技术其最终目标是使计算机输出清晰而又自然的声音

bull 英语的语音合成在上世纪 80年代就早已成熟而中文 汉语的合成现在也趋于成熟并有了广泛的应用(如汽车导航仪智能手机等)

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 57: 第一篇  媒体

7 GBK 与 GB 18030bull 由于 GB 13000 标准与 GB 2312 标准的字符编码不兼容作为过渡在国家信息技术标准化委员会的主持下制定了与 GB 2312兼容的《汉字内码扩展规范( GBK )》( K 为扩展的ldquo扩rdquo字的拼音首字母)并于 1995年 12月 15日由原国家技术监督局标准司联合原电子工业部科技与质量监督司作为指导性技术规范发布实施

bull 2000年 GBK又被国家标准 GB 18030-2000《信息技术 信息交换用汉字编码字符集 基本集的扩充》所代替该标准收汉字 2万 7千个

bull 与 GB 2312 一样 GB 18030 也为中国的强制性国家标准微软公司的 Windows XPVista78 中文版与苹果公司的 Mac OS X 和 iOS 谷歌公司的 Android (安卓)等操作系统已经全面支持 GBK

GB 18030 的码位范围分布

字节数 码位空间 码位数目

单字节 0x00~0x7F 128

双字节第 1字节 第 2字节

23 9400x81~0xFE

0x40~0x7E 0x80~0xFE

四字节第 1字节 第 2字节 第 3字节 第 4字节

1 587 6000x81~0xFE 0x30~0x39 0x81~0xFE 0x30~0x39

GB 18030的

总体结构图

收录字符bull 单字节部分mdashmdash收录了GBT 11383 的 0x00~0x7F 全部 128 个字符(似 ASCI

I )bull 双字节部分mdashmdash收录内容如下 (21 003 个汉字和 884 个符号共 21 887 个字符 )

ndash GB 130001-93 的全部 CJK 统一汉字字符 20 902 个( GB 2312 的编码汉字在双字节 2 区其他 CJK 统一汉字在双字节 34 区)

ndash GB 130001-93 的 CJK兼容区挑选出来的 21 个汉字ldquo郎凉秊helliphellip﨨﨩rdquo( 0xFD9C~0xFDA0 和 0xFE40~0xFE4F )

ndash GB 130001-93 中收录而 GB 2312未收录的台湾地区使用的图形字符 139 个ldquoˊˋ˙helliphelliprdquo( 0xA840~0xA895 和 0xA940~0XA988 )

ndash GB 130001-93收录的其他字符 31 ( 13)个(在双字节 5 区)ndash GB 2312-80 中的非汉字字符 682 个( 0xA1A1~0xA9EF )ndash GB 12345-90 的竖排标点符号 19 ( 29)个ldquo︵︶︹helliphellip︳︴rdquo( 0xA6D9~0xA6

F5 )ndash GB 2312-80未收录的 10 个小写罗马数字ldquoⅰⅱⅲhelliphellipⅸⅹrdquo( 0xA2A1~ 0xA2A

A )ndash GB 2312-80未收录的带音调的汉语拼音字母 5 ( 4)个ldquo ńňǹrdquo 以及 ɑ 和 ɡ ( 0

xA8BB~0xA8C0 )ndash 汉字数字零ldquo〇rdquo (0xA996) 和欧元符ldquoeurordquo (0xA2E3)ndash 表意文字描述符 13 个ldquohelliphelliprdquo( 0xA989~0xA995 )ndash 对 GB 130001-93增补的汉字和部首 构件 80 个ldquohelliphellip䶮rdquo( 0xFE50~ 0x

FEA0 )bull 四字节部分mdashmdash收录了上述双字节字符之外的包括 CJK 统一汉字扩充 A 在内

的 GB 130001-93 中的全部字符

GB 18030双字节部分的码位安排

类别 区名 码位范围 码位数 字符数 内容

符号区双字节 1区 A1A1~A9FE 846 718

GB 2312非汉字字符等

双字节 5区 A840~A9A0 192 166 台湾图符等

汉字区双字节 2区 B0A1~F7FE 6768 6763 GB 2312汉字双字节 3区 8140~A0FE 6080 6080 CJK统一汉字双字节 4区 AA40~FEA0 8160 8160 CJK统一汉字等

用户自定义区双字节用户区 1 AAA1~AFFE 564

用户自定义字符双字节用户区 2 F8A1~FEFE 658

双字节用户区 3 A140~A7A0 672

GB 18030双字节部分的编码空间结构图 尾字节

0x40larr――rarr0x7E 0x80larr――rarr0xA0 0xA1larr――――――――――――rarr0xFE

0x81 uarr darr

0xA0

0xA1 uarr darr

0xA7

0xA8 0xA9

首字节

0xAA uarr | | | | | | | | | | darr

0xFE

双字节 3区

汉字区6 080个码位

双字节用户区 3

用户自定义区672个码位

双字节 5区 图形符号区192个码位

双字节 4区

汉字区8 160个码位

双字节 1区

图形符号区564个码位

双字节 2区

汉字区6 768个码位

双字节用户区 1 用户自定义区564个码位

双字节用户区 2 用户自定义区658个码位

223 国际通用字符编码

bull Unicode (统一码)是由多语言软件制造商组成的统一码协会( httpwwwUnicodeorg)所制定一种国际字符的编码标准

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull 本节主要介绍这两种关系密切的主流国际字符编码标准的来历编码方案各自特点与相互关系

1 Unicode 统一码bull 发展历史

ndash 1987年施乐( Xerox )公司的 Joe Becker 与 Lee Collins 和苹果( Apple )公司的 Mark Davis 等人开始讨论统一编码 1987年 12月 Joe Becker造词 Unicode (统一码)含义为ldquo unique universal and uniform character encodingrdquo (单一通用统一的字符编码) 1989年 2月开始定期召开统一码会议 1989年 9月公布 Unicode草案

ndash 1991年 1月 3 日由 Xerox Apple Sun IBM Aldis Microsoft 等公司出资在美国加州成立了统一码协会( Unicode Consortium )并由协会设立非盈利性的统一码公司( Unicode Inc )后来 HP Adobe Borland Digital Lotus Novell 等公司也纷纷加入 1991年 1月成立统一码技术委员会 UTC 并制定了其规程

ndash 1991年 2月在 Ed Hart 的推动下进行了ldquo统一码对 10464 国际标准草案 1rdquo 的对话Unicode 与 ISOIEC 10646开始走向融合

ndash 1991年 8月发布 Unicode 标准 10版的第 1卷(体系结构非表意字符) 1992年6月发表 Unicode 10版的第 2卷(表意字符) 1993年 6月发布 Unicode 11版与 1993年 5月公布的 ISOIEC 10646-11993 实现了合并

ndash 1996年 7月发布 Unicode 20版ndash 1999年 9月发布 Unicode 30版ndash 2003年 4月发布 Unicode 40版(对应于 ISOIEC 106462003 ) 2004年 3月 31日发布 Unicode 401版 2005年 3月 31日发布 Unicode 410版

ndash 2006年 7月 14日发布 Unicode 50版 2008年 4月 4日发布 Unicode 51版 2009年 12月 22日发布 Unicode 52版

ndash 2010年 10月发布 Unicode 60版 2012年 1月发布 Unicode 61版(对应于 ISOIEC 106462012 ) 2012年 9月推出 Unicode 62版 2013年 9月推出 Unicode 63版

ndash 2014年 6月 16日发布 Unicode 70版 ndash 2015年 6月 17日发布 Unicode 80版

字符集bull Unicode 字符集的空间分成双字节的基本多语言平面 (Basic Multilingual Pla

ne BMP) 和 4 字节的辅助多语言平面 (Supplementary Multilingual Plane SMP) 两种

bull BMPndash Unicode 的基本平面或基本多语言平面 BMP 对应于 ISOIEC 10646-1 的第 00组的 00 平面( BMP )即 Unicode 与 ISOIEC 10646 的 BMP 中的字符编码完全一致

bull SMPndash 鉴于 Unicode 原有的 16位元空间不足以应用从 Unicode 31版本开始设立了 16 个辅助平面使 Unicode 的可使用空间由六万多字增至约一百万字

ndash 原有的 Unicode双字节空间称为基本平面或基本多语言平面 BMP 辅助多语言平面 SMP 字符要用 4 字节来储存

ndash 第一辅助平面摆放拼音文字(主要为现时已不再使用的文字)及符号范围在 U+10000 - U+1FFFD

ndash 第二辅助平面又称为表意文字补充平面 (Supplementary Ideographic Plane 简称 SIP) 现时摆放ldquo中日韩统汉字扩展 B 区rdquo共 43253 个汉字范围在 U+20000 - U+2FFFD

ndash 第三至十三辅助平面尚未使用ndash 第十四辅助平面又称为特殊用途补充平面 (Supplementary Special-purpose Pl

ane 简称 SSP) 摆放 Language tags 和 Variation Selectors 它们都是控制字符范围在 U+E0000 - U+E01FF

ndash 第十五至十六辅助平面都是私人使用区它们的范围是 U+F0000 - U+FFFFD 及 U+100000 - U+1000FD

bull Unicode 字符集的具体编码方式参加第 4小节ldquo 4 UTFrdquo

2 ISOIEC 10646

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull ISOIEC 10646 标准由 ISO 与 IEC 联合成立的 ISOIEC JTC1SC2WG2 制定ndash JTC 1 ( Joint Technical Committee 1 on Information

technology ISOIEC信息技术联合技术委员会 1 )负责信息技术方面标准的制定工作

ndash SC 2 ( SubCommittee 2 on Coded character sets 编码字符集分会 2 )下的 WG 2 ( Working Group 2 on Universal coded character set 通用编码字符集工作组 2 )负责制定国际通用字符编码标准即后来公布的 ISOIEC 10646

发展历史bull 1984年 ISO 的一些会员国发起制定新的国际字符编码标准同年 4月 ISO

与 IEC 联合成立 ISOIEC JTC1SC2WG2 1987年 3月制定出编码架构1992年 6月投票通过第二版国际标准草案

bull 1993年 5月推出 10646 标准时将内容分成两个部分标准首先发布的是其中的第 1 个部分(体系结构与基本多文种平面)的第 1版( Edition 1 ) ISOIEC 10646-11993 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane(信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

bull 2000年 3月推出 10646 标准第一个部分的第 2版( Edition 2 ) ISOIEC 10646-12000 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane

bull 2001年 10月推出 10646 标准第 2版的第二个部分(辅助平面)的第 1版( Edition 1 ) ISOIEC 10646-22001 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 2 Supplementary Planes

bull 2003年 10月推出的 10646新标准(第 1版 Edition 1 )将老标准中的两个部分标准合并成了一个单一的标准 ISOIEC 106462003 Information technology -- Universal Multiple- Octet Coded Character Set (UCS) 后来又于 2010年 2012年和 2014年分别推出了 ISOIEC 106462010 (第 2版)ISOIEC 106462012 (第 3版)和 ISOIEC 106462014 (第 4版)

UCS 通用字符集bull 通用字符集( Universal Character Set UCS )是

ISOIEC 10646 标准所定义的字符编码方式采用 4字节编码又称为 Universal Multiple-Octet Coded Character Set (通用多八位编码字符集)

bull 通用字符集是所有包括了其他字符集它保证了与其他字符集的双向兼容即如果你将任何文本字符串翻译到 UCS 格式然后再翻译回原编码你不会丢失任何信息

bull UCS 包含了已知语言的所有字符除了拉丁语希腊语斯拉夫语希伯来语阿拉伯语亚美尼亚语格鲁吉亚语还包括中文日文韩文这样的象形文字 UCS 还包括大量的图形印刷数学科学符号

名字与组合字符bull UCS 不仅给每个字符分配一个代码而且赋予了

一个正式的名字表示一个 UCS 或 Unicode值的十六进制数通常在前面加上ldquo U+rdquo 例如ldquo U+0041rdquo代表字符ldquo Ardquo

bull UCS里有些编码点分配给了组合字符组合字符机制允许在任何字符后加上重音符或其他指示标记 这在科学符号中特别有用 比如数学方程式和国际音标字母 可能会需要在一个基本字符后组合上一个或多个指示标记

实现级别bull 并不是所有的系统都需要支持像组合字符这样的的先进

机制因此 ISO 10646 指定了如下三种实现级别ndash 级别 1不支持组合字符和韩语 Hangul Jamo 字符 ( 一种特

别的 更加复杂的韩国文的编码 使用两个或三个子字符来编码一个韩文音节 )

ndash 级别 2类似于级别 1 但在某些文字中允许一列固定的组合字符 (例如 希伯来文 阿拉伯文 Devangari 孟加拉语 果鲁穆奇语 Gujarati Oriya 泰米尔语 Telugo 印 埃纳德语 Malayalam 泰国语和老挝语 ) 因为如果没有最起码的几个组合字符 UCS就不能完整地表达这些语言

ndash 级别 3支持所有的 UCS 字符如可以在任意一个字符上加上一个箭头或 和一个 tilde(颚化符号即字母上面的~ )

编码方式bull UCS 有如下两种编码方式

ndash UCS-2与 Unicode 的 2 字节编码基本一样ndash UCS-4 4 字节编码目前是在 UCS-2 前加

上 2 个全零的字节bull UCS 还有 UTF 编码方式参见下面第 4小节ldquo 4 UTFrdquo

3 Unicode 与 ISOIEC 10646bull 关系

ndash 历史上存在两个独立的尝试创立单一字符集的组织即国际标准化组织( ISO )和多语言软件制造商组成的统一码协会组织( Unicodeorg )前者开发的 ISO 10646项目后者开发的 Unicode项目因此最初制定了不同的标准

ndash 1991年前后两个项目的参与者都认识到世界不需要两个不兼容的字符集于是它们开始合并双方的工作成果并为创立一个单一编码表而协同工作

ndash 从 Unicode20开始 Unicode采用了与 ISO 10646-1相同的字库和字码 ISO 也承诺 ISO10646 将不会替超出 U+10FFFF 的 UCS-4 编码赋值以使得两者保持一致

ndash 两个项目仍都存在并独立地公布各自的标准但 Unicode协会和 ISOIEC JTC1SC2 都同意保持两者标准的码表兼容并紧密地共同调整任何未来的扩展

异同bull Unicode协会公布的 Unicode 标准包含了 ISO 10646-1 实现级别

3 的基本多文种平面在两个标准里所有的字符都在相同的位置并且有相同的名字

bull ISO 10646 标准就像 ISO 8859 标准一样只不过是一个简单的字符集表它定义了一些编码的别名指定了一些与标准有关的术语并包括了规范说明指定了怎样使用 UCS连接其他 ISO 标准的实现等

bull Unicode 标准额外定义了许多与字符有关的语义符号学并详细说明了绘制某些语言(如阿拉伯语)表达形式的算法处理双向文字(比如拉丁文和希伯来文的混合文字)的算法排序与字符串比较所需的算法等等

bull 考虑到 Unicode 标准有一个易记的名字既便宜又包括更多的辅助信息因而它使用得更广泛然而

bull 一般认为用于打印 ISO 10646-1 标准的字体在某些方面的质量要高于用于打印 Unicode 20 的专业字体设计者总是被建议说要两个标准都实现但一些提供的样例字形有显著的区别 ISO 10646-1 标准同样使用四种不同的风格变体来显示表意文字如中文日文和韩文 (CJK) 而 Unicode 20 的表里只有中文的变体

4 UTFbull Unicode 和 UCS 都是一个字符集可以看作为内码bull UTF ( UnicodeUCS Transformation Format 统一码

通用字符集转换格式)是一种编码方式它的出现是因为 Unicode 和 UCS 不适宜在某些场合直接传输和处理

bull UCS 和 Unicode 只是分配整数给字符的编码表现在存在好几种将一串字符表示为一串字节的方法(如高或低位字节在前)

bull 最显而易见的两种方法是将 UCS 和 Unicode 文本存储为 2 个 或 4 个字节序列的串这两种方法的正式名称分别为 UCS-2 和 UCS-4

bull 常用的 UTF具体编码方式有 UTF-8 UTF-16 和 UTF-32

UTF-8

bull UTF-8 是 UTF 的一种具体编码方式在 ISO 10646-1 的附录 R 和 IETF 的 RFC 2279 里定义

bull 由于要使文档中的文字与 ASCII兼容故 UTF-8 选择了使用可变长度字节来储存 Unicode 和 UCS 例如ndash ASCII 字母继续使用 1 字节储存ndash 重音文字希腊字母或西里尔字母等使用 2 字节来储存ndash 常用的汉字就要使用 3 字节ndash 辅助平面字符则使用 4 字节ndash 即 ASCII 不作变换其他字符做变长编码每个字符 1~4 字节

bull UTF-8 通常作为外码bull 在 UTF-8 文件的开首很多时都放置一个 U+FEFF 字符

(UTF-8 以 EF BB BF 代表 ) 以显示这个文字档案是以UTF-8 编码

UTF-8 的优点bull 与 CPU 字节顺序无关可以在不同平台之间交流

bull 容错能力高任何一个字节损坏后最多只会导致一个编码码位损失不会链锁错误 ( 如 GB 码错一个字节就会整行乱码 )

UTF-8 的缺点bull UTF-8 使用可变长度字节储存使计算机程序设计变得复杂 (故此在计算机程序或操作系统内部多采用 UCS-2 编码 )

bull 在旧式的中文日文及朝鲜文编码之中每字符都使用 2 字节储存而 UTF-8 须使用 3 字节 (采用 UTF-16 编码则可只使用 2字节储存 )

bull 泰语以往使用的 ISO 8859-11 每字符只使用 1 字节储存而 UTF-8 须使用 3 字节

UTF-8储存的多字节串字符bull U-00000000 - U-0000007F 0xxxxxxx bull U-00000080 - U-000007FF 110xxxxx 10xxxxxx

bull U-00000800 - U-0000FFFF 1110xxxx 10xxxxxx

10xxxxxx bull U-00010000 - U-001FFFFF 11110xxx 10xxxxx

x 10xxxxxx 10xxxxxx bull 在多字节串中第一个字节的开头ldquo 1rdquo 的数目就

是整个串中字节的数目bull 每个使用 UTF-8储存的字符除了第一个字节外其余字节的头两个位元都是以 10 开始使文字处理器能够较快地找出每个字符的开始位置

UTF-16bull UTF-16 是 UTF 的另一种具体编码方式在 ISO 1064

6-1 的附录 Q 和 IETF 的 RFC 2781 里定义bull UTF-16 是变长码( 2 或 4 字节)大致相当于 20位编码值在 0 到 0x10FFFF 之间基本上就是 Unicode 编码的实现 UTF-16 与 CPU 字序有关但因为最省空间常作为网络传输的外码 UTF-16 是 Unicode 的完美编码

bull lt0x10000 的直接用其对应的 16位整数编码位于 0x10000 ~ 0x10FFFF 之间的用 0xD800~0xDBFF 的 16位整数后跟 0xDC00~0xDFFF 的 16位整数的 4 字节编码 gt 0x10FFFF 的不能用 UTF-16 表示

bull 在 Unicode 的 BMP 中定义的字符(无论是拉丁字母汉字或其他文字或符号)一律使用 2 字节存储而在辅助平面定义的字符则以两个 2 字节的值来存储

UTF-16 的特点bull UTF-16比起 UTF-8 的好处在于大部分字符都以固定长

度的 2 字节存储但 UTF-16却无法相容于 ASCII 编码bull UTF-16 有两种编码模式即大尾序( big Endian 高位字节在前)和小尾序( little Endian 高位字节在后)储存形式(一般來說以 Macintosh 制作和存储的文字使用大尾序格式以 Microsoft 或 Linux 制作和存储的文字使用小尾序格式)

bull 为了弄区分 UTF-16 文件的大小尾序在 UTF-16 文件的开头都会放置一个 U+FEFF 字符作为字节顺序标记 (UTF-16LE 以 FF FE代表 UTF-16BE 以 FE FF代表 ) 以显示该文档是以 UTF-16 编码的

UTF-32

bull UTF-32 仅使用了 Unicode范围 (0 到 0x10FFFF) 的 32位编码相当于 UCS-4 的子集

bull 由于 Unicode 和 ISOIEC 10646 的编码和结构与前面讲过的 GB 13000 类似或等价这里就不再做详细的介绍

5支持bull 现在 UnicodeUCS 已经获得了十分广泛的支

持ndash网络与浏览器(如 HTML 4050 XML 与 IE

Safari Netscape Firefox Chrome Opera Edge 等)

ndash操作系统(如 Windows NT2000XPVista7810 Mac OS X iOS Android和 Linux )

ndash 编程语言新版本(如 CC++JavaObjective-CC Swift 等)

Unicode 代码的浏览器显示代码 字符标准名称 (英语 )

浏览器的显示

amp65 大写拉丁字母 A A

amp223 小写拉丁字母 Sharp S szlig

amp254 小写拉丁字母 Thorn thorn

amp916 大写希腊字母 Delta Δ

amp1049 大写斯拉夫字母 Short I Й

amp1511 希伯来字母 Qof ק

amp1605 阿拉伯字母 Meem م

amp3671 泰文数字 7 ๗amp4688 埃塞俄比亚音节文字 Qha ቐ

amp12354 日语平假名 A あamp12450 日语片假名 A アamp21494 简体汉字 叶 叶amp33865 繁体汉字 葉 葉amp50685 韩国音节文字 Yeob 엽

23 文字输出bull 文字输出是指将计算机内的字符编码通过计算机的输出设备(如显示器打印机喇叭)展现出所对应字符的图形或声音供人们阅读或聆听

bull 本节主要介绍文字图示输出的字形技术bull 文字声音输出属于语音合成只在本节的末尾作简单的介绍

231 字形技术bull 文字 = 图形bull 不论是象形文字中的单字还是拼音文字

中的字母都是用图形来表示的bull 在计算机里文字的表示 输出(显示和打

印)涉及ndash 字型ndash 字体ndash 字库

1字型bull 字型指构造和生成字形的方法一般可分为

ndash 点阵字 DOS 显卡 ROM 金山 科印特点似位图显示快占空间(字库大)放大后有马赛克效应

bull 显示字母 88 汉字 1616bull 打印 2424 4848 6464

ndash 矢量字单线条用于笔式绘图仪特点字库小算法简单难看

ndash 轮廓字用曲线描绘字的轮廓输出效果好所见即所得(WYSWYG) 可无级放大易实现空心 阴影 填充 变形等各种特效功能轮廓曲线一般采用样条曲线如 TrueType (Apple 1991 Mac OS Microsoft 1992 Windows 31)用的是二次 B 样条 Bezier曲线中文之星 RichWin采用的是三次 B 样条 Bezier曲线

字型种类

2字体bull 字体指字的形状风格如

ndash 汉字的

ndash 英文的

宋体楷体黑体仿宋

行楷隶书新魏幼圆

Times New Roman Arial Narrow Courier New

常用汉字字体bull 宋体mdashmdash宋体来自于北宋时雕版刻书所采用的欧体字(唐朝欧阳询体)宋体字的横顿拉捺挑钩别具特色间架平正疏密适中字体秀丽遒劲但笔画横细竖粗适合于刀刻不宜于手写现在宋体广泛用于印刷常来表现文档的正文

bull 仿宋体mdashmdash 1920年钱塘的丁辅之与丁善之等人将明代以后盛行的方廓形字体加以改造创造出长形和方形的聚珍仿宋后来演化为现在的仿宋体仿宋体比较接近于手写体为宋体和楷体的折中是采用的宋体的结构和楷体的笔法而成现常来表现打印文件以及文档的摘要和注释等

bull 黑体mdashmdash黑体是适应工艺美术的发展而出现的一种等线体是从日本引进的黑体的结构与宋体没有什么差别只是其笔画粗细一致健实粗壮主要用于文档的标题和重点及标语广告等方面

bull 楷体mdashmdash楷体源于楷书楷体的笔画圆浑笔调灵活结构端正美观但不宜于木板雕刻所以直到清末西洋的石板印刷术传入后才开始广泛用于印刷现代的楷体创造于 20世纪的二三十年代主要用于文档的正文(多用于中小学教材)也可用于工艺美术等方面

3字库bull 字库为一种文字的某一字体的所有字符的集合一般存放在一个磁盘文件中

bull 由于象形文字中单字的数量大(成千上万)而拼音文字中字母的数量小(不到一百个)所以字库的大小有很大的差别

bull 为了使文档界面丰富多彩常见的字处理软件都支持多种字体带有众多字库

4点阵字型的国家标准bull 我国已经公布了若干字体的点阵字型之国家标准

ndash GB 50071-19852001 信息技术 汉字编码字符集(基本集) 24 点阵字型

ndash GB 50072-19852001 信息技术 汉字编码字符集(辅助集) 24 点阵字型

ndash GB 5199-19862001 信息技术 汉字编码字符集(基本集) 16 点阵字型 宋体

ndash GB 6345-19862001 信息技术 汉字编码字符集(基本集) 32 点阵字型 宋体

ndash GB 12041-2001 信息技术 汉字编码字符集(基本集) 48点阵字型 宋体

ndash GB 17698-1999 信息技术 通用多八位编码字符集( I 区) 汉字 16 点阵字型

232 语音合成bull 文字的声音输出主要使用的是语音合成的技术bull 语音合成功能是ldquo文rarr语rdquo转换bull 文语转换 TTS (Text-To-Speech) 是将文本形式的信息转换成自然语音的一种技术其最终目标是使计算机输出清晰而又自然的声音

bull 英语的语音合成在上世纪 80年代就早已成熟而中文 汉语的合成现在也趋于成熟并有了广泛的应用(如汽车导航仪智能手机等)

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 58: 第一篇  媒体

GB 18030 的码位范围分布

字节数 码位空间 码位数目

单字节 0x00~0x7F 128

双字节第 1字节 第 2字节

23 9400x81~0xFE

0x40~0x7E 0x80~0xFE

四字节第 1字节 第 2字节 第 3字节 第 4字节

1 587 6000x81~0xFE 0x30~0x39 0x81~0xFE 0x30~0x39

GB 18030的

总体结构图

收录字符bull 单字节部分mdashmdash收录了GBT 11383 的 0x00~0x7F 全部 128 个字符(似 ASCI

I )bull 双字节部分mdashmdash收录内容如下 (21 003 个汉字和 884 个符号共 21 887 个字符 )

ndash GB 130001-93 的全部 CJK 统一汉字字符 20 902 个( GB 2312 的编码汉字在双字节 2 区其他 CJK 统一汉字在双字节 34 区)

ndash GB 130001-93 的 CJK兼容区挑选出来的 21 个汉字ldquo郎凉秊helliphellip﨨﨩rdquo( 0xFD9C~0xFDA0 和 0xFE40~0xFE4F )

ndash GB 130001-93 中收录而 GB 2312未收录的台湾地区使用的图形字符 139 个ldquoˊˋ˙helliphelliprdquo( 0xA840~0xA895 和 0xA940~0XA988 )

ndash GB 130001-93收录的其他字符 31 ( 13)个(在双字节 5 区)ndash GB 2312-80 中的非汉字字符 682 个( 0xA1A1~0xA9EF )ndash GB 12345-90 的竖排标点符号 19 ( 29)个ldquo︵︶︹helliphellip︳︴rdquo( 0xA6D9~0xA6

F5 )ndash GB 2312-80未收录的 10 个小写罗马数字ldquoⅰⅱⅲhelliphellipⅸⅹrdquo( 0xA2A1~ 0xA2A

A )ndash GB 2312-80未收录的带音调的汉语拼音字母 5 ( 4)个ldquo ńňǹrdquo 以及 ɑ 和 ɡ ( 0

xA8BB~0xA8C0 )ndash 汉字数字零ldquo〇rdquo (0xA996) 和欧元符ldquoeurordquo (0xA2E3)ndash 表意文字描述符 13 个ldquohelliphelliprdquo( 0xA989~0xA995 )ndash 对 GB 130001-93增补的汉字和部首 构件 80 个ldquohelliphellip䶮rdquo( 0xFE50~ 0x

FEA0 )bull 四字节部分mdashmdash收录了上述双字节字符之外的包括 CJK 统一汉字扩充 A 在内

的 GB 130001-93 中的全部字符

GB 18030双字节部分的码位安排

类别 区名 码位范围 码位数 字符数 内容

符号区双字节 1区 A1A1~A9FE 846 718

GB 2312非汉字字符等

双字节 5区 A840~A9A0 192 166 台湾图符等

汉字区双字节 2区 B0A1~F7FE 6768 6763 GB 2312汉字双字节 3区 8140~A0FE 6080 6080 CJK统一汉字双字节 4区 AA40~FEA0 8160 8160 CJK统一汉字等

用户自定义区双字节用户区 1 AAA1~AFFE 564

用户自定义字符双字节用户区 2 F8A1~FEFE 658

双字节用户区 3 A140~A7A0 672

GB 18030双字节部分的编码空间结构图 尾字节

0x40larr――rarr0x7E 0x80larr――rarr0xA0 0xA1larr――――――――――――rarr0xFE

0x81 uarr darr

0xA0

0xA1 uarr darr

0xA7

0xA8 0xA9

首字节

0xAA uarr | | | | | | | | | | darr

0xFE

双字节 3区

汉字区6 080个码位

双字节用户区 3

用户自定义区672个码位

双字节 5区 图形符号区192个码位

双字节 4区

汉字区8 160个码位

双字节 1区

图形符号区564个码位

双字节 2区

汉字区6 768个码位

双字节用户区 1 用户自定义区564个码位

双字节用户区 2 用户自定义区658个码位

223 国际通用字符编码

bull Unicode (统一码)是由多语言软件制造商组成的统一码协会( httpwwwUnicodeorg)所制定一种国际字符的编码标准

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull 本节主要介绍这两种关系密切的主流国际字符编码标准的来历编码方案各自特点与相互关系

1 Unicode 统一码bull 发展历史

ndash 1987年施乐( Xerox )公司的 Joe Becker 与 Lee Collins 和苹果( Apple )公司的 Mark Davis 等人开始讨论统一编码 1987年 12月 Joe Becker造词 Unicode (统一码)含义为ldquo unique universal and uniform character encodingrdquo (单一通用统一的字符编码) 1989年 2月开始定期召开统一码会议 1989年 9月公布 Unicode草案

ndash 1991年 1月 3 日由 Xerox Apple Sun IBM Aldis Microsoft 等公司出资在美国加州成立了统一码协会( Unicode Consortium )并由协会设立非盈利性的统一码公司( Unicode Inc )后来 HP Adobe Borland Digital Lotus Novell 等公司也纷纷加入 1991年 1月成立统一码技术委员会 UTC 并制定了其规程

ndash 1991年 2月在 Ed Hart 的推动下进行了ldquo统一码对 10464 国际标准草案 1rdquo 的对话Unicode 与 ISOIEC 10646开始走向融合

ndash 1991年 8月发布 Unicode 标准 10版的第 1卷(体系结构非表意字符) 1992年6月发表 Unicode 10版的第 2卷(表意字符) 1993年 6月发布 Unicode 11版与 1993年 5月公布的 ISOIEC 10646-11993 实现了合并

ndash 1996年 7月发布 Unicode 20版ndash 1999年 9月发布 Unicode 30版ndash 2003年 4月发布 Unicode 40版(对应于 ISOIEC 106462003 ) 2004年 3月 31日发布 Unicode 401版 2005年 3月 31日发布 Unicode 410版

ndash 2006年 7月 14日发布 Unicode 50版 2008年 4月 4日发布 Unicode 51版 2009年 12月 22日发布 Unicode 52版

ndash 2010年 10月发布 Unicode 60版 2012年 1月发布 Unicode 61版(对应于 ISOIEC 106462012 ) 2012年 9月推出 Unicode 62版 2013年 9月推出 Unicode 63版

ndash 2014年 6月 16日发布 Unicode 70版 ndash 2015年 6月 17日发布 Unicode 80版

字符集bull Unicode 字符集的空间分成双字节的基本多语言平面 (Basic Multilingual Pla

ne BMP) 和 4 字节的辅助多语言平面 (Supplementary Multilingual Plane SMP) 两种

bull BMPndash Unicode 的基本平面或基本多语言平面 BMP 对应于 ISOIEC 10646-1 的第 00组的 00 平面( BMP )即 Unicode 与 ISOIEC 10646 的 BMP 中的字符编码完全一致

bull SMPndash 鉴于 Unicode 原有的 16位元空间不足以应用从 Unicode 31版本开始设立了 16 个辅助平面使 Unicode 的可使用空间由六万多字增至约一百万字

ndash 原有的 Unicode双字节空间称为基本平面或基本多语言平面 BMP 辅助多语言平面 SMP 字符要用 4 字节来储存

ndash 第一辅助平面摆放拼音文字(主要为现时已不再使用的文字)及符号范围在 U+10000 - U+1FFFD

ndash 第二辅助平面又称为表意文字补充平面 (Supplementary Ideographic Plane 简称 SIP) 现时摆放ldquo中日韩统汉字扩展 B 区rdquo共 43253 个汉字范围在 U+20000 - U+2FFFD

ndash 第三至十三辅助平面尚未使用ndash 第十四辅助平面又称为特殊用途补充平面 (Supplementary Special-purpose Pl

ane 简称 SSP) 摆放 Language tags 和 Variation Selectors 它们都是控制字符范围在 U+E0000 - U+E01FF

ndash 第十五至十六辅助平面都是私人使用区它们的范围是 U+F0000 - U+FFFFD 及 U+100000 - U+1000FD

bull Unicode 字符集的具体编码方式参加第 4小节ldquo 4 UTFrdquo

2 ISOIEC 10646

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull ISOIEC 10646 标准由 ISO 与 IEC 联合成立的 ISOIEC JTC1SC2WG2 制定ndash JTC 1 ( Joint Technical Committee 1 on Information

technology ISOIEC信息技术联合技术委员会 1 )负责信息技术方面标准的制定工作

ndash SC 2 ( SubCommittee 2 on Coded character sets 编码字符集分会 2 )下的 WG 2 ( Working Group 2 on Universal coded character set 通用编码字符集工作组 2 )负责制定国际通用字符编码标准即后来公布的 ISOIEC 10646

发展历史bull 1984年 ISO 的一些会员国发起制定新的国际字符编码标准同年 4月 ISO

与 IEC 联合成立 ISOIEC JTC1SC2WG2 1987年 3月制定出编码架构1992年 6月投票通过第二版国际标准草案

bull 1993年 5月推出 10646 标准时将内容分成两个部分标准首先发布的是其中的第 1 个部分(体系结构与基本多文种平面)的第 1版( Edition 1 ) ISOIEC 10646-11993 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane(信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

bull 2000年 3月推出 10646 标准第一个部分的第 2版( Edition 2 ) ISOIEC 10646-12000 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane

bull 2001年 10月推出 10646 标准第 2版的第二个部分(辅助平面)的第 1版( Edition 1 ) ISOIEC 10646-22001 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 2 Supplementary Planes

bull 2003年 10月推出的 10646新标准(第 1版 Edition 1 )将老标准中的两个部分标准合并成了一个单一的标准 ISOIEC 106462003 Information technology -- Universal Multiple- Octet Coded Character Set (UCS) 后来又于 2010年 2012年和 2014年分别推出了 ISOIEC 106462010 (第 2版)ISOIEC 106462012 (第 3版)和 ISOIEC 106462014 (第 4版)

UCS 通用字符集bull 通用字符集( Universal Character Set UCS )是

ISOIEC 10646 标准所定义的字符编码方式采用 4字节编码又称为 Universal Multiple-Octet Coded Character Set (通用多八位编码字符集)

bull 通用字符集是所有包括了其他字符集它保证了与其他字符集的双向兼容即如果你将任何文本字符串翻译到 UCS 格式然后再翻译回原编码你不会丢失任何信息

bull UCS 包含了已知语言的所有字符除了拉丁语希腊语斯拉夫语希伯来语阿拉伯语亚美尼亚语格鲁吉亚语还包括中文日文韩文这样的象形文字 UCS 还包括大量的图形印刷数学科学符号

名字与组合字符bull UCS 不仅给每个字符分配一个代码而且赋予了

一个正式的名字表示一个 UCS 或 Unicode值的十六进制数通常在前面加上ldquo U+rdquo 例如ldquo U+0041rdquo代表字符ldquo Ardquo

bull UCS里有些编码点分配给了组合字符组合字符机制允许在任何字符后加上重音符或其他指示标记 这在科学符号中特别有用 比如数学方程式和国际音标字母 可能会需要在一个基本字符后组合上一个或多个指示标记

实现级别bull 并不是所有的系统都需要支持像组合字符这样的的先进

机制因此 ISO 10646 指定了如下三种实现级别ndash 级别 1不支持组合字符和韩语 Hangul Jamo 字符 ( 一种特

别的 更加复杂的韩国文的编码 使用两个或三个子字符来编码一个韩文音节 )

ndash 级别 2类似于级别 1 但在某些文字中允许一列固定的组合字符 (例如 希伯来文 阿拉伯文 Devangari 孟加拉语 果鲁穆奇语 Gujarati Oriya 泰米尔语 Telugo 印 埃纳德语 Malayalam 泰国语和老挝语 ) 因为如果没有最起码的几个组合字符 UCS就不能完整地表达这些语言

ndash 级别 3支持所有的 UCS 字符如可以在任意一个字符上加上一个箭头或 和一个 tilde(颚化符号即字母上面的~ )

编码方式bull UCS 有如下两种编码方式

ndash UCS-2与 Unicode 的 2 字节编码基本一样ndash UCS-4 4 字节编码目前是在 UCS-2 前加

上 2 个全零的字节bull UCS 还有 UTF 编码方式参见下面第 4小节ldquo 4 UTFrdquo

3 Unicode 与 ISOIEC 10646bull 关系

ndash 历史上存在两个独立的尝试创立单一字符集的组织即国际标准化组织( ISO )和多语言软件制造商组成的统一码协会组织( Unicodeorg )前者开发的 ISO 10646项目后者开发的 Unicode项目因此最初制定了不同的标准

ndash 1991年前后两个项目的参与者都认识到世界不需要两个不兼容的字符集于是它们开始合并双方的工作成果并为创立一个单一编码表而协同工作

ndash 从 Unicode20开始 Unicode采用了与 ISO 10646-1相同的字库和字码 ISO 也承诺 ISO10646 将不会替超出 U+10FFFF 的 UCS-4 编码赋值以使得两者保持一致

ndash 两个项目仍都存在并独立地公布各自的标准但 Unicode协会和 ISOIEC JTC1SC2 都同意保持两者标准的码表兼容并紧密地共同调整任何未来的扩展

异同bull Unicode协会公布的 Unicode 标准包含了 ISO 10646-1 实现级别

3 的基本多文种平面在两个标准里所有的字符都在相同的位置并且有相同的名字

bull ISO 10646 标准就像 ISO 8859 标准一样只不过是一个简单的字符集表它定义了一些编码的别名指定了一些与标准有关的术语并包括了规范说明指定了怎样使用 UCS连接其他 ISO 标准的实现等

bull Unicode 标准额外定义了许多与字符有关的语义符号学并详细说明了绘制某些语言(如阿拉伯语)表达形式的算法处理双向文字(比如拉丁文和希伯来文的混合文字)的算法排序与字符串比较所需的算法等等

bull 考虑到 Unicode 标准有一个易记的名字既便宜又包括更多的辅助信息因而它使用得更广泛然而

bull 一般认为用于打印 ISO 10646-1 标准的字体在某些方面的质量要高于用于打印 Unicode 20 的专业字体设计者总是被建议说要两个标准都实现但一些提供的样例字形有显著的区别 ISO 10646-1 标准同样使用四种不同的风格变体来显示表意文字如中文日文和韩文 (CJK) 而 Unicode 20 的表里只有中文的变体

4 UTFbull Unicode 和 UCS 都是一个字符集可以看作为内码bull UTF ( UnicodeUCS Transformation Format 统一码

通用字符集转换格式)是一种编码方式它的出现是因为 Unicode 和 UCS 不适宜在某些场合直接传输和处理

bull UCS 和 Unicode 只是分配整数给字符的编码表现在存在好几种将一串字符表示为一串字节的方法(如高或低位字节在前)

bull 最显而易见的两种方法是将 UCS 和 Unicode 文本存储为 2 个 或 4 个字节序列的串这两种方法的正式名称分别为 UCS-2 和 UCS-4

bull 常用的 UTF具体编码方式有 UTF-8 UTF-16 和 UTF-32

UTF-8

bull UTF-8 是 UTF 的一种具体编码方式在 ISO 10646-1 的附录 R 和 IETF 的 RFC 2279 里定义

bull 由于要使文档中的文字与 ASCII兼容故 UTF-8 选择了使用可变长度字节来储存 Unicode 和 UCS 例如ndash ASCII 字母继续使用 1 字节储存ndash 重音文字希腊字母或西里尔字母等使用 2 字节来储存ndash 常用的汉字就要使用 3 字节ndash 辅助平面字符则使用 4 字节ndash 即 ASCII 不作变换其他字符做变长编码每个字符 1~4 字节

bull UTF-8 通常作为外码bull 在 UTF-8 文件的开首很多时都放置一个 U+FEFF 字符

(UTF-8 以 EF BB BF 代表 ) 以显示这个文字档案是以UTF-8 编码

UTF-8 的优点bull 与 CPU 字节顺序无关可以在不同平台之间交流

bull 容错能力高任何一个字节损坏后最多只会导致一个编码码位损失不会链锁错误 ( 如 GB 码错一个字节就会整行乱码 )

UTF-8 的缺点bull UTF-8 使用可变长度字节储存使计算机程序设计变得复杂 (故此在计算机程序或操作系统内部多采用 UCS-2 编码 )

bull 在旧式的中文日文及朝鲜文编码之中每字符都使用 2 字节储存而 UTF-8 须使用 3 字节 (采用 UTF-16 编码则可只使用 2字节储存 )

bull 泰语以往使用的 ISO 8859-11 每字符只使用 1 字节储存而 UTF-8 须使用 3 字节

UTF-8储存的多字节串字符bull U-00000000 - U-0000007F 0xxxxxxx bull U-00000080 - U-000007FF 110xxxxx 10xxxxxx

bull U-00000800 - U-0000FFFF 1110xxxx 10xxxxxx

10xxxxxx bull U-00010000 - U-001FFFFF 11110xxx 10xxxxx

x 10xxxxxx 10xxxxxx bull 在多字节串中第一个字节的开头ldquo 1rdquo 的数目就

是整个串中字节的数目bull 每个使用 UTF-8储存的字符除了第一个字节外其余字节的头两个位元都是以 10 开始使文字处理器能够较快地找出每个字符的开始位置

UTF-16bull UTF-16 是 UTF 的另一种具体编码方式在 ISO 1064

6-1 的附录 Q 和 IETF 的 RFC 2781 里定义bull UTF-16 是变长码( 2 或 4 字节)大致相当于 20位编码值在 0 到 0x10FFFF 之间基本上就是 Unicode 编码的实现 UTF-16 与 CPU 字序有关但因为最省空间常作为网络传输的外码 UTF-16 是 Unicode 的完美编码

bull lt0x10000 的直接用其对应的 16位整数编码位于 0x10000 ~ 0x10FFFF 之间的用 0xD800~0xDBFF 的 16位整数后跟 0xDC00~0xDFFF 的 16位整数的 4 字节编码 gt 0x10FFFF 的不能用 UTF-16 表示

bull 在 Unicode 的 BMP 中定义的字符(无论是拉丁字母汉字或其他文字或符号)一律使用 2 字节存储而在辅助平面定义的字符则以两个 2 字节的值来存储

UTF-16 的特点bull UTF-16比起 UTF-8 的好处在于大部分字符都以固定长

度的 2 字节存储但 UTF-16却无法相容于 ASCII 编码bull UTF-16 有两种编码模式即大尾序( big Endian 高位字节在前)和小尾序( little Endian 高位字节在后)储存形式(一般來說以 Macintosh 制作和存储的文字使用大尾序格式以 Microsoft 或 Linux 制作和存储的文字使用小尾序格式)

bull 为了弄区分 UTF-16 文件的大小尾序在 UTF-16 文件的开头都会放置一个 U+FEFF 字符作为字节顺序标记 (UTF-16LE 以 FF FE代表 UTF-16BE 以 FE FF代表 ) 以显示该文档是以 UTF-16 编码的

UTF-32

bull UTF-32 仅使用了 Unicode范围 (0 到 0x10FFFF) 的 32位编码相当于 UCS-4 的子集

bull 由于 Unicode 和 ISOIEC 10646 的编码和结构与前面讲过的 GB 13000 类似或等价这里就不再做详细的介绍

5支持bull 现在 UnicodeUCS 已经获得了十分广泛的支

持ndash网络与浏览器(如 HTML 4050 XML 与 IE

Safari Netscape Firefox Chrome Opera Edge 等)

ndash操作系统(如 Windows NT2000XPVista7810 Mac OS X iOS Android和 Linux )

ndash 编程语言新版本(如 CC++JavaObjective-CC Swift 等)

Unicode 代码的浏览器显示代码 字符标准名称 (英语 )

浏览器的显示

amp65 大写拉丁字母 A A

amp223 小写拉丁字母 Sharp S szlig

amp254 小写拉丁字母 Thorn thorn

amp916 大写希腊字母 Delta Δ

amp1049 大写斯拉夫字母 Short I Й

amp1511 希伯来字母 Qof ק

amp1605 阿拉伯字母 Meem م

amp3671 泰文数字 7 ๗amp4688 埃塞俄比亚音节文字 Qha ቐ

amp12354 日语平假名 A あamp12450 日语片假名 A アamp21494 简体汉字 叶 叶amp33865 繁体汉字 葉 葉amp50685 韩国音节文字 Yeob 엽

23 文字输出bull 文字输出是指将计算机内的字符编码通过计算机的输出设备(如显示器打印机喇叭)展现出所对应字符的图形或声音供人们阅读或聆听

bull 本节主要介绍文字图示输出的字形技术bull 文字声音输出属于语音合成只在本节的末尾作简单的介绍

231 字形技术bull 文字 = 图形bull 不论是象形文字中的单字还是拼音文字

中的字母都是用图形来表示的bull 在计算机里文字的表示 输出(显示和打

印)涉及ndash 字型ndash 字体ndash 字库

1字型bull 字型指构造和生成字形的方法一般可分为

ndash 点阵字 DOS 显卡 ROM 金山 科印特点似位图显示快占空间(字库大)放大后有马赛克效应

bull 显示字母 88 汉字 1616bull 打印 2424 4848 6464

ndash 矢量字单线条用于笔式绘图仪特点字库小算法简单难看

ndash 轮廓字用曲线描绘字的轮廓输出效果好所见即所得(WYSWYG) 可无级放大易实现空心 阴影 填充 变形等各种特效功能轮廓曲线一般采用样条曲线如 TrueType (Apple 1991 Mac OS Microsoft 1992 Windows 31)用的是二次 B 样条 Bezier曲线中文之星 RichWin采用的是三次 B 样条 Bezier曲线

字型种类

2字体bull 字体指字的形状风格如

ndash 汉字的

ndash 英文的

宋体楷体黑体仿宋

行楷隶书新魏幼圆

Times New Roman Arial Narrow Courier New

常用汉字字体bull 宋体mdashmdash宋体来自于北宋时雕版刻书所采用的欧体字(唐朝欧阳询体)宋体字的横顿拉捺挑钩别具特色间架平正疏密适中字体秀丽遒劲但笔画横细竖粗适合于刀刻不宜于手写现在宋体广泛用于印刷常来表现文档的正文

bull 仿宋体mdashmdash 1920年钱塘的丁辅之与丁善之等人将明代以后盛行的方廓形字体加以改造创造出长形和方形的聚珍仿宋后来演化为现在的仿宋体仿宋体比较接近于手写体为宋体和楷体的折中是采用的宋体的结构和楷体的笔法而成现常来表现打印文件以及文档的摘要和注释等

bull 黑体mdashmdash黑体是适应工艺美术的发展而出现的一种等线体是从日本引进的黑体的结构与宋体没有什么差别只是其笔画粗细一致健实粗壮主要用于文档的标题和重点及标语广告等方面

bull 楷体mdashmdash楷体源于楷书楷体的笔画圆浑笔调灵活结构端正美观但不宜于木板雕刻所以直到清末西洋的石板印刷术传入后才开始广泛用于印刷现代的楷体创造于 20世纪的二三十年代主要用于文档的正文(多用于中小学教材)也可用于工艺美术等方面

3字库bull 字库为一种文字的某一字体的所有字符的集合一般存放在一个磁盘文件中

bull 由于象形文字中单字的数量大(成千上万)而拼音文字中字母的数量小(不到一百个)所以字库的大小有很大的差别

bull 为了使文档界面丰富多彩常见的字处理软件都支持多种字体带有众多字库

4点阵字型的国家标准bull 我国已经公布了若干字体的点阵字型之国家标准

ndash GB 50071-19852001 信息技术 汉字编码字符集(基本集) 24 点阵字型

ndash GB 50072-19852001 信息技术 汉字编码字符集(辅助集) 24 点阵字型

ndash GB 5199-19862001 信息技术 汉字编码字符集(基本集) 16 点阵字型 宋体

ndash GB 6345-19862001 信息技术 汉字编码字符集(基本集) 32 点阵字型 宋体

ndash GB 12041-2001 信息技术 汉字编码字符集(基本集) 48点阵字型 宋体

ndash GB 17698-1999 信息技术 通用多八位编码字符集( I 区) 汉字 16 点阵字型

232 语音合成bull 文字的声音输出主要使用的是语音合成的技术bull 语音合成功能是ldquo文rarr语rdquo转换bull 文语转换 TTS (Text-To-Speech) 是将文本形式的信息转换成自然语音的一种技术其最终目标是使计算机输出清晰而又自然的声音

bull 英语的语音合成在上世纪 80年代就早已成熟而中文 汉语的合成现在也趋于成熟并有了广泛的应用(如汽车导航仪智能手机等)

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 59: 第一篇  媒体

GB 18030的

总体结构图

收录字符bull 单字节部分mdashmdash收录了GBT 11383 的 0x00~0x7F 全部 128 个字符(似 ASCI

I )bull 双字节部分mdashmdash收录内容如下 (21 003 个汉字和 884 个符号共 21 887 个字符 )

ndash GB 130001-93 的全部 CJK 统一汉字字符 20 902 个( GB 2312 的编码汉字在双字节 2 区其他 CJK 统一汉字在双字节 34 区)

ndash GB 130001-93 的 CJK兼容区挑选出来的 21 个汉字ldquo郎凉秊helliphellip﨨﨩rdquo( 0xFD9C~0xFDA0 和 0xFE40~0xFE4F )

ndash GB 130001-93 中收录而 GB 2312未收录的台湾地区使用的图形字符 139 个ldquoˊˋ˙helliphelliprdquo( 0xA840~0xA895 和 0xA940~0XA988 )

ndash GB 130001-93收录的其他字符 31 ( 13)个(在双字节 5 区)ndash GB 2312-80 中的非汉字字符 682 个( 0xA1A1~0xA9EF )ndash GB 12345-90 的竖排标点符号 19 ( 29)个ldquo︵︶︹helliphellip︳︴rdquo( 0xA6D9~0xA6

F5 )ndash GB 2312-80未收录的 10 个小写罗马数字ldquoⅰⅱⅲhelliphellipⅸⅹrdquo( 0xA2A1~ 0xA2A

A )ndash GB 2312-80未收录的带音调的汉语拼音字母 5 ( 4)个ldquo ńňǹrdquo 以及 ɑ 和 ɡ ( 0

xA8BB~0xA8C0 )ndash 汉字数字零ldquo〇rdquo (0xA996) 和欧元符ldquoeurordquo (0xA2E3)ndash 表意文字描述符 13 个ldquohelliphelliprdquo( 0xA989~0xA995 )ndash 对 GB 130001-93增补的汉字和部首 构件 80 个ldquohelliphellip䶮rdquo( 0xFE50~ 0x

FEA0 )bull 四字节部分mdashmdash收录了上述双字节字符之外的包括 CJK 统一汉字扩充 A 在内

的 GB 130001-93 中的全部字符

GB 18030双字节部分的码位安排

类别 区名 码位范围 码位数 字符数 内容

符号区双字节 1区 A1A1~A9FE 846 718

GB 2312非汉字字符等

双字节 5区 A840~A9A0 192 166 台湾图符等

汉字区双字节 2区 B0A1~F7FE 6768 6763 GB 2312汉字双字节 3区 8140~A0FE 6080 6080 CJK统一汉字双字节 4区 AA40~FEA0 8160 8160 CJK统一汉字等

用户自定义区双字节用户区 1 AAA1~AFFE 564

用户自定义字符双字节用户区 2 F8A1~FEFE 658

双字节用户区 3 A140~A7A0 672

GB 18030双字节部分的编码空间结构图 尾字节

0x40larr――rarr0x7E 0x80larr――rarr0xA0 0xA1larr――――――――――――rarr0xFE

0x81 uarr darr

0xA0

0xA1 uarr darr

0xA7

0xA8 0xA9

首字节

0xAA uarr | | | | | | | | | | darr

0xFE

双字节 3区

汉字区6 080个码位

双字节用户区 3

用户自定义区672个码位

双字节 5区 图形符号区192个码位

双字节 4区

汉字区8 160个码位

双字节 1区

图形符号区564个码位

双字节 2区

汉字区6 768个码位

双字节用户区 1 用户自定义区564个码位

双字节用户区 2 用户自定义区658个码位

223 国际通用字符编码

bull Unicode (统一码)是由多语言软件制造商组成的统一码协会( httpwwwUnicodeorg)所制定一种国际字符的编码标准

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull 本节主要介绍这两种关系密切的主流国际字符编码标准的来历编码方案各自特点与相互关系

1 Unicode 统一码bull 发展历史

ndash 1987年施乐( Xerox )公司的 Joe Becker 与 Lee Collins 和苹果( Apple )公司的 Mark Davis 等人开始讨论统一编码 1987年 12月 Joe Becker造词 Unicode (统一码)含义为ldquo unique universal and uniform character encodingrdquo (单一通用统一的字符编码) 1989年 2月开始定期召开统一码会议 1989年 9月公布 Unicode草案

ndash 1991年 1月 3 日由 Xerox Apple Sun IBM Aldis Microsoft 等公司出资在美国加州成立了统一码协会( Unicode Consortium )并由协会设立非盈利性的统一码公司( Unicode Inc )后来 HP Adobe Borland Digital Lotus Novell 等公司也纷纷加入 1991年 1月成立统一码技术委员会 UTC 并制定了其规程

ndash 1991年 2月在 Ed Hart 的推动下进行了ldquo统一码对 10464 国际标准草案 1rdquo 的对话Unicode 与 ISOIEC 10646开始走向融合

ndash 1991年 8月发布 Unicode 标准 10版的第 1卷(体系结构非表意字符) 1992年6月发表 Unicode 10版的第 2卷(表意字符) 1993年 6月发布 Unicode 11版与 1993年 5月公布的 ISOIEC 10646-11993 实现了合并

ndash 1996年 7月发布 Unicode 20版ndash 1999年 9月发布 Unicode 30版ndash 2003年 4月发布 Unicode 40版(对应于 ISOIEC 106462003 ) 2004年 3月 31日发布 Unicode 401版 2005年 3月 31日发布 Unicode 410版

ndash 2006年 7月 14日发布 Unicode 50版 2008年 4月 4日发布 Unicode 51版 2009年 12月 22日发布 Unicode 52版

ndash 2010年 10月发布 Unicode 60版 2012年 1月发布 Unicode 61版(对应于 ISOIEC 106462012 ) 2012年 9月推出 Unicode 62版 2013年 9月推出 Unicode 63版

ndash 2014年 6月 16日发布 Unicode 70版 ndash 2015年 6月 17日发布 Unicode 80版

字符集bull Unicode 字符集的空间分成双字节的基本多语言平面 (Basic Multilingual Pla

ne BMP) 和 4 字节的辅助多语言平面 (Supplementary Multilingual Plane SMP) 两种

bull BMPndash Unicode 的基本平面或基本多语言平面 BMP 对应于 ISOIEC 10646-1 的第 00组的 00 平面( BMP )即 Unicode 与 ISOIEC 10646 的 BMP 中的字符编码完全一致

bull SMPndash 鉴于 Unicode 原有的 16位元空间不足以应用从 Unicode 31版本开始设立了 16 个辅助平面使 Unicode 的可使用空间由六万多字增至约一百万字

ndash 原有的 Unicode双字节空间称为基本平面或基本多语言平面 BMP 辅助多语言平面 SMP 字符要用 4 字节来储存

ndash 第一辅助平面摆放拼音文字(主要为现时已不再使用的文字)及符号范围在 U+10000 - U+1FFFD

ndash 第二辅助平面又称为表意文字补充平面 (Supplementary Ideographic Plane 简称 SIP) 现时摆放ldquo中日韩统汉字扩展 B 区rdquo共 43253 个汉字范围在 U+20000 - U+2FFFD

ndash 第三至十三辅助平面尚未使用ndash 第十四辅助平面又称为特殊用途补充平面 (Supplementary Special-purpose Pl

ane 简称 SSP) 摆放 Language tags 和 Variation Selectors 它们都是控制字符范围在 U+E0000 - U+E01FF

ndash 第十五至十六辅助平面都是私人使用区它们的范围是 U+F0000 - U+FFFFD 及 U+100000 - U+1000FD

bull Unicode 字符集的具体编码方式参加第 4小节ldquo 4 UTFrdquo

2 ISOIEC 10646

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull ISOIEC 10646 标准由 ISO 与 IEC 联合成立的 ISOIEC JTC1SC2WG2 制定ndash JTC 1 ( Joint Technical Committee 1 on Information

technology ISOIEC信息技术联合技术委员会 1 )负责信息技术方面标准的制定工作

ndash SC 2 ( SubCommittee 2 on Coded character sets 编码字符集分会 2 )下的 WG 2 ( Working Group 2 on Universal coded character set 通用编码字符集工作组 2 )负责制定国际通用字符编码标准即后来公布的 ISOIEC 10646

发展历史bull 1984年 ISO 的一些会员国发起制定新的国际字符编码标准同年 4月 ISO

与 IEC 联合成立 ISOIEC JTC1SC2WG2 1987年 3月制定出编码架构1992年 6月投票通过第二版国际标准草案

bull 1993年 5月推出 10646 标准时将内容分成两个部分标准首先发布的是其中的第 1 个部分(体系结构与基本多文种平面)的第 1版( Edition 1 ) ISOIEC 10646-11993 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane(信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

bull 2000年 3月推出 10646 标准第一个部分的第 2版( Edition 2 ) ISOIEC 10646-12000 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane

bull 2001年 10月推出 10646 标准第 2版的第二个部分(辅助平面)的第 1版( Edition 1 ) ISOIEC 10646-22001 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 2 Supplementary Planes

bull 2003年 10月推出的 10646新标准(第 1版 Edition 1 )将老标准中的两个部分标准合并成了一个单一的标准 ISOIEC 106462003 Information technology -- Universal Multiple- Octet Coded Character Set (UCS) 后来又于 2010年 2012年和 2014年分别推出了 ISOIEC 106462010 (第 2版)ISOIEC 106462012 (第 3版)和 ISOIEC 106462014 (第 4版)

UCS 通用字符集bull 通用字符集( Universal Character Set UCS )是

ISOIEC 10646 标准所定义的字符编码方式采用 4字节编码又称为 Universal Multiple-Octet Coded Character Set (通用多八位编码字符集)

bull 通用字符集是所有包括了其他字符集它保证了与其他字符集的双向兼容即如果你将任何文本字符串翻译到 UCS 格式然后再翻译回原编码你不会丢失任何信息

bull UCS 包含了已知语言的所有字符除了拉丁语希腊语斯拉夫语希伯来语阿拉伯语亚美尼亚语格鲁吉亚语还包括中文日文韩文这样的象形文字 UCS 还包括大量的图形印刷数学科学符号

名字与组合字符bull UCS 不仅给每个字符分配一个代码而且赋予了

一个正式的名字表示一个 UCS 或 Unicode值的十六进制数通常在前面加上ldquo U+rdquo 例如ldquo U+0041rdquo代表字符ldquo Ardquo

bull UCS里有些编码点分配给了组合字符组合字符机制允许在任何字符后加上重音符或其他指示标记 这在科学符号中特别有用 比如数学方程式和国际音标字母 可能会需要在一个基本字符后组合上一个或多个指示标记

实现级别bull 并不是所有的系统都需要支持像组合字符这样的的先进

机制因此 ISO 10646 指定了如下三种实现级别ndash 级别 1不支持组合字符和韩语 Hangul Jamo 字符 ( 一种特

别的 更加复杂的韩国文的编码 使用两个或三个子字符来编码一个韩文音节 )

ndash 级别 2类似于级别 1 但在某些文字中允许一列固定的组合字符 (例如 希伯来文 阿拉伯文 Devangari 孟加拉语 果鲁穆奇语 Gujarati Oriya 泰米尔语 Telugo 印 埃纳德语 Malayalam 泰国语和老挝语 ) 因为如果没有最起码的几个组合字符 UCS就不能完整地表达这些语言

ndash 级别 3支持所有的 UCS 字符如可以在任意一个字符上加上一个箭头或 和一个 tilde(颚化符号即字母上面的~ )

编码方式bull UCS 有如下两种编码方式

ndash UCS-2与 Unicode 的 2 字节编码基本一样ndash UCS-4 4 字节编码目前是在 UCS-2 前加

上 2 个全零的字节bull UCS 还有 UTF 编码方式参见下面第 4小节ldquo 4 UTFrdquo

3 Unicode 与 ISOIEC 10646bull 关系

ndash 历史上存在两个独立的尝试创立单一字符集的组织即国际标准化组织( ISO )和多语言软件制造商组成的统一码协会组织( Unicodeorg )前者开发的 ISO 10646项目后者开发的 Unicode项目因此最初制定了不同的标准

ndash 1991年前后两个项目的参与者都认识到世界不需要两个不兼容的字符集于是它们开始合并双方的工作成果并为创立一个单一编码表而协同工作

ndash 从 Unicode20开始 Unicode采用了与 ISO 10646-1相同的字库和字码 ISO 也承诺 ISO10646 将不会替超出 U+10FFFF 的 UCS-4 编码赋值以使得两者保持一致

ndash 两个项目仍都存在并独立地公布各自的标准但 Unicode协会和 ISOIEC JTC1SC2 都同意保持两者标准的码表兼容并紧密地共同调整任何未来的扩展

异同bull Unicode协会公布的 Unicode 标准包含了 ISO 10646-1 实现级别

3 的基本多文种平面在两个标准里所有的字符都在相同的位置并且有相同的名字

bull ISO 10646 标准就像 ISO 8859 标准一样只不过是一个简单的字符集表它定义了一些编码的别名指定了一些与标准有关的术语并包括了规范说明指定了怎样使用 UCS连接其他 ISO 标准的实现等

bull Unicode 标准额外定义了许多与字符有关的语义符号学并详细说明了绘制某些语言(如阿拉伯语)表达形式的算法处理双向文字(比如拉丁文和希伯来文的混合文字)的算法排序与字符串比较所需的算法等等

bull 考虑到 Unicode 标准有一个易记的名字既便宜又包括更多的辅助信息因而它使用得更广泛然而

bull 一般认为用于打印 ISO 10646-1 标准的字体在某些方面的质量要高于用于打印 Unicode 20 的专业字体设计者总是被建议说要两个标准都实现但一些提供的样例字形有显著的区别 ISO 10646-1 标准同样使用四种不同的风格变体来显示表意文字如中文日文和韩文 (CJK) 而 Unicode 20 的表里只有中文的变体

4 UTFbull Unicode 和 UCS 都是一个字符集可以看作为内码bull UTF ( UnicodeUCS Transformation Format 统一码

通用字符集转换格式)是一种编码方式它的出现是因为 Unicode 和 UCS 不适宜在某些场合直接传输和处理

bull UCS 和 Unicode 只是分配整数给字符的编码表现在存在好几种将一串字符表示为一串字节的方法(如高或低位字节在前)

bull 最显而易见的两种方法是将 UCS 和 Unicode 文本存储为 2 个 或 4 个字节序列的串这两种方法的正式名称分别为 UCS-2 和 UCS-4

bull 常用的 UTF具体编码方式有 UTF-8 UTF-16 和 UTF-32

UTF-8

bull UTF-8 是 UTF 的一种具体编码方式在 ISO 10646-1 的附录 R 和 IETF 的 RFC 2279 里定义

bull 由于要使文档中的文字与 ASCII兼容故 UTF-8 选择了使用可变长度字节来储存 Unicode 和 UCS 例如ndash ASCII 字母继续使用 1 字节储存ndash 重音文字希腊字母或西里尔字母等使用 2 字节来储存ndash 常用的汉字就要使用 3 字节ndash 辅助平面字符则使用 4 字节ndash 即 ASCII 不作变换其他字符做变长编码每个字符 1~4 字节

bull UTF-8 通常作为外码bull 在 UTF-8 文件的开首很多时都放置一个 U+FEFF 字符

(UTF-8 以 EF BB BF 代表 ) 以显示这个文字档案是以UTF-8 编码

UTF-8 的优点bull 与 CPU 字节顺序无关可以在不同平台之间交流

bull 容错能力高任何一个字节损坏后最多只会导致一个编码码位损失不会链锁错误 ( 如 GB 码错一个字节就会整行乱码 )

UTF-8 的缺点bull UTF-8 使用可变长度字节储存使计算机程序设计变得复杂 (故此在计算机程序或操作系统内部多采用 UCS-2 编码 )

bull 在旧式的中文日文及朝鲜文编码之中每字符都使用 2 字节储存而 UTF-8 须使用 3 字节 (采用 UTF-16 编码则可只使用 2字节储存 )

bull 泰语以往使用的 ISO 8859-11 每字符只使用 1 字节储存而 UTF-8 须使用 3 字节

UTF-8储存的多字节串字符bull U-00000000 - U-0000007F 0xxxxxxx bull U-00000080 - U-000007FF 110xxxxx 10xxxxxx

bull U-00000800 - U-0000FFFF 1110xxxx 10xxxxxx

10xxxxxx bull U-00010000 - U-001FFFFF 11110xxx 10xxxxx

x 10xxxxxx 10xxxxxx bull 在多字节串中第一个字节的开头ldquo 1rdquo 的数目就

是整个串中字节的数目bull 每个使用 UTF-8储存的字符除了第一个字节外其余字节的头两个位元都是以 10 开始使文字处理器能够较快地找出每个字符的开始位置

UTF-16bull UTF-16 是 UTF 的另一种具体编码方式在 ISO 1064

6-1 的附录 Q 和 IETF 的 RFC 2781 里定义bull UTF-16 是变长码( 2 或 4 字节)大致相当于 20位编码值在 0 到 0x10FFFF 之间基本上就是 Unicode 编码的实现 UTF-16 与 CPU 字序有关但因为最省空间常作为网络传输的外码 UTF-16 是 Unicode 的完美编码

bull lt0x10000 的直接用其对应的 16位整数编码位于 0x10000 ~ 0x10FFFF 之间的用 0xD800~0xDBFF 的 16位整数后跟 0xDC00~0xDFFF 的 16位整数的 4 字节编码 gt 0x10FFFF 的不能用 UTF-16 表示

bull 在 Unicode 的 BMP 中定义的字符(无论是拉丁字母汉字或其他文字或符号)一律使用 2 字节存储而在辅助平面定义的字符则以两个 2 字节的值来存储

UTF-16 的特点bull UTF-16比起 UTF-8 的好处在于大部分字符都以固定长

度的 2 字节存储但 UTF-16却无法相容于 ASCII 编码bull UTF-16 有两种编码模式即大尾序( big Endian 高位字节在前)和小尾序( little Endian 高位字节在后)储存形式(一般來說以 Macintosh 制作和存储的文字使用大尾序格式以 Microsoft 或 Linux 制作和存储的文字使用小尾序格式)

bull 为了弄区分 UTF-16 文件的大小尾序在 UTF-16 文件的开头都会放置一个 U+FEFF 字符作为字节顺序标记 (UTF-16LE 以 FF FE代表 UTF-16BE 以 FE FF代表 ) 以显示该文档是以 UTF-16 编码的

UTF-32

bull UTF-32 仅使用了 Unicode范围 (0 到 0x10FFFF) 的 32位编码相当于 UCS-4 的子集

bull 由于 Unicode 和 ISOIEC 10646 的编码和结构与前面讲过的 GB 13000 类似或等价这里就不再做详细的介绍

5支持bull 现在 UnicodeUCS 已经获得了十分广泛的支

持ndash网络与浏览器(如 HTML 4050 XML 与 IE

Safari Netscape Firefox Chrome Opera Edge 等)

ndash操作系统(如 Windows NT2000XPVista7810 Mac OS X iOS Android和 Linux )

ndash 编程语言新版本(如 CC++JavaObjective-CC Swift 等)

Unicode 代码的浏览器显示代码 字符标准名称 (英语 )

浏览器的显示

amp65 大写拉丁字母 A A

amp223 小写拉丁字母 Sharp S szlig

amp254 小写拉丁字母 Thorn thorn

amp916 大写希腊字母 Delta Δ

amp1049 大写斯拉夫字母 Short I Й

amp1511 希伯来字母 Qof ק

amp1605 阿拉伯字母 Meem م

amp3671 泰文数字 7 ๗amp4688 埃塞俄比亚音节文字 Qha ቐ

amp12354 日语平假名 A あamp12450 日语片假名 A アamp21494 简体汉字 叶 叶amp33865 繁体汉字 葉 葉amp50685 韩国音节文字 Yeob 엽

23 文字输出bull 文字输出是指将计算机内的字符编码通过计算机的输出设备(如显示器打印机喇叭)展现出所对应字符的图形或声音供人们阅读或聆听

bull 本节主要介绍文字图示输出的字形技术bull 文字声音输出属于语音合成只在本节的末尾作简单的介绍

231 字形技术bull 文字 = 图形bull 不论是象形文字中的单字还是拼音文字

中的字母都是用图形来表示的bull 在计算机里文字的表示 输出(显示和打

印)涉及ndash 字型ndash 字体ndash 字库

1字型bull 字型指构造和生成字形的方法一般可分为

ndash 点阵字 DOS 显卡 ROM 金山 科印特点似位图显示快占空间(字库大)放大后有马赛克效应

bull 显示字母 88 汉字 1616bull 打印 2424 4848 6464

ndash 矢量字单线条用于笔式绘图仪特点字库小算法简单难看

ndash 轮廓字用曲线描绘字的轮廓输出效果好所见即所得(WYSWYG) 可无级放大易实现空心 阴影 填充 变形等各种特效功能轮廓曲线一般采用样条曲线如 TrueType (Apple 1991 Mac OS Microsoft 1992 Windows 31)用的是二次 B 样条 Bezier曲线中文之星 RichWin采用的是三次 B 样条 Bezier曲线

字型种类

2字体bull 字体指字的形状风格如

ndash 汉字的

ndash 英文的

宋体楷体黑体仿宋

行楷隶书新魏幼圆

Times New Roman Arial Narrow Courier New

常用汉字字体bull 宋体mdashmdash宋体来自于北宋时雕版刻书所采用的欧体字(唐朝欧阳询体)宋体字的横顿拉捺挑钩别具特色间架平正疏密适中字体秀丽遒劲但笔画横细竖粗适合于刀刻不宜于手写现在宋体广泛用于印刷常来表现文档的正文

bull 仿宋体mdashmdash 1920年钱塘的丁辅之与丁善之等人将明代以后盛行的方廓形字体加以改造创造出长形和方形的聚珍仿宋后来演化为现在的仿宋体仿宋体比较接近于手写体为宋体和楷体的折中是采用的宋体的结构和楷体的笔法而成现常来表现打印文件以及文档的摘要和注释等

bull 黑体mdashmdash黑体是适应工艺美术的发展而出现的一种等线体是从日本引进的黑体的结构与宋体没有什么差别只是其笔画粗细一致健实粗壮主要用于文档的标题和重点及标语广告等方面

bull 楷体mdashmdash楷体源于楷书楷体的笔画圆浑笔调灵活结构端正美观但不宜于木板雕刻所以直到清末西洋的石板印刷术传入后才开始广泛用于印刷现代的楷体创造于 20世纪的二三十年代主要用于文档的正文(多用于中小学教材)也可用于工艺美术等方面

3字库bull 字库为一种文字的某一字体的所有字符的集合一般存放在一个磁盘文件中

bull 由于象形文字中单字的数量大(成千上万)而拼音文字中字母的数量小(不到一百个)所以字库的大小有很大的差别

bull 为了使文档界面丰富多彩常见的字处理软件都支持多种字体带有众多字库

4点阵字型的国家标准bull 我国已经公布了若干字体的点阵字型之国家标准

ndash GB 50071-19852001 信息技术 汉字编码字符集(基本集) 24 点阵字型

ndash GB 50072-19852001 信息技术 汉字编码字符集(辅助集) 24 点阵字型

ndash GB 5199-19862001 信息技术 汉字编码字符集(基本集) 16 点阵字型 宋体

ndash GB 6345-19862001 信息技术 汉字编码字符集(基本集) 32 点阵字型 宋体

ndash GB 12041-2001 信息技术 汉字编码字符集(基本集) 48点阵字型 宋体

ndash GB 17698-1999 信息技术 通用多八位编码字符集( I 区) 汉字 16 点阵字型

232 语音合成bull 文字的声音输出主要使用的是语音合成的技术bull 语音合成功能是ldquo文rarr语rdquo转换bull 文语转换 TTS (Text-To-Speech) 是将文本形式的信息转换成自然语音的一种技术其最终目标是使计算机输出清晰而又自然的声音

bull 英语的语音合成在上世纪 80年代就早已成熟而中文 汉语的合成现在也趋于成熟并有了广泛的应用(如汽车导航仪智能手机等)

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 60: 第一篇  媒体

收录字符bull 单字节部分mdashmdash收录了GBT 11383 的 0x00~0x7F 全部 128 个字符(似 ASCI

I )bull 双字节部分mdashmdash收录内容如下 (21 003 个汉字和 884 个符号共 21 887 个字符 )

ndash GB 130001-93 的全部 CJK 统一汉字字符 20 902 个( GB 2312 的编码汉字在双字节 2 区其他 CJK 统一汉字在双字节 34 区)

ndash GB 130001-93 的 CJK兼容区挑选出来的 21 个汉字ldquo郎凉秊helliphellip﨨﨩rdquo( 0xFD9C~0xFDA0 和 0xFE40~0xFE4F )

ndash GB 130001-93 中收录而 GB 2312未收录的台湾地区使用的图形字符 139 个ldquoˊˋ˙helliphelliprdquo( 0xA840~0xA895 和 0xA940~0XA988 )

ndash GB 130001-93收录的其他字符 31 ( 13)个(在双字节 5 区)ndash GB 2312-80 中的非汉字字符 682 个( 0xA1A1~0xA9EF )ndash GB 12345-90 的竖排标点符号 19 ( 29)个ldquo︵︶︹helliphellip︳︴rdquo( 0xA6D9~0xA6

F5 )ndash GB 2312-80未收录的 10 个小写罗马数字ldquoⅰⅱⅲhelliphellipⅸⅹrdquo( 0xA2A1~ 0xA2A

A )ndash GB 2312-80未收录的带音调的汉语拼音字母 5 ( 4)个ldquo ńňǹrdquo 以及 ɑ 和 ɡ ( 0

xA8BB~0xA8C0 )ndash 汉字数字零ldquo〇rdquo (0xA996) 和欧元符ldquoeurordquo (0xA2E3)ndash 表意文字描述符 13 个ldquohelliphelliprdquo( 0xA989~0xA995 )ndash 对 GB 130001-93增补的汉字和部首 构件 80 个ldquohelliphellip䶮rdquo( 0xFE50~ 0x

FEA0 )bull 四字节部分mdashmdash收录了上述双字节字符之外的包括 CJK 统一汉字扩充 A 在内

的 GB 130001-93 中的全部字符

GB 18030双字节部分的码位安排

类别 区名 码位范围 码位数 字符数 内容

符号区双字节 1区 A1A1~A9FE 846 718

GB 2312非汉字字符等

双字节 5区 A840~A9A0 192 166 台湾图符等

汉字区双字节 2区 B0A1~F7FE 6768 6763 GB 2312汉字双字节 3区 8140~A0FE 6080 6080 CJK统一汉字双字节 4区 AA40~FEA0 8160 8160 CJK统一汉字等

用户自定义区双字节用户区 1 AAA1~AFFE 564

用户自定义字符双字节用户区 2 F8A1~FEFE 658

双字节用户区 3 A140~A7A0 672

GB 18030双字节部分的编码空间结构图 尾字节

0x40larr――rarr0x7E 0x80larr――rarr0xA0 0xA1larr――――――――――――rarr0xFE

0x81 uarr darr

0xA0

0xA1 uarr darr

0xA7

0xA8 0xA9

首字节

0xAA uarr | | | | | | | | | | darr

0xFE

双字节 3区

汉字区6 080个码位

双字节用户区 3

用户自定义区672个码位

双字节 5区 图形符号区192个码位

双字节 4区

汉字区8 160个码位

双字节 1区

图形符号区564个码位

双字节 2区

汉字区6 768个码位

双字节用户区 1 用户自定义区564个码位

双字节用户区 2 用户自定义区658个码位

223 国际通用字符编码

bull Unicode (统一码)是由多语言软件制造商组成的统一码协会( httpwwwUnicodeorg)所制定一种国际字符的编码标准

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull 本节主要介绍这两种关系密切的主流国际字符编码标准的来历编码方案各自特点与相互关系

1 Unicode 统一码bull 发展历史

ndash 1987年施乐( Xerox )公司的 Joe Becker 与 Lee Collins 和苹果( Apple )公司的 Mark Davis 等人开始讨论统一编码 1987年 12月 Joe Becker造词 Unicode (统一码)含义为ldquo unique universal and uniform character encodingrdquo (单一通用统一的字符编码) 1989年 2月开始定期召开统一码会议 1989年 9月公布 Unicode草案

ndash 1991年 1月 3 日由 Xerox Apple Sun IBM Aldis Microsoft 等公司出资在美国加州成立了统一码协会( Unicode Consortium )并由协会设立非盈利性的统一码公司( Unicode Inc )后来 HP Adobe Borland Digital Lotus Novell 等公司也纷纷加入 1991年 1月成立统一码技术委员会 UTC 并制定了其规程

ndash 1991年 2月在 Ed Hart 的推动下进行了ldquo统一码对 10464 国际标准草案 1rdquo 的对话Unicode 与 ISOIEC 10646开始走向融合

ndash 1991年 8月发布 Unicode 标准 10版的第 1卷(体系结构非表意字符) 1992年6月发表 Unicode 10版的第 2卷(表意字符) 1993年 6月发布 Unicode 11版与 1993年 5月公布的 ISOIEC 10646-11993 实现了合并

ndash 1996年 7月发布 Unicode 20版ndash 1999年 9月发布 Unicode 30版ndash 2003年 4月发布 Unicode 40版(对应于 ISOIEC 106462003 ) 2004年 3月 31日发布 Unicode 401版 2005年 3月 31日发布 Unicode 410版

ndash 2006年 7月 14日发布 Unicode 50版 2008年 4月 4日发布 Unicode 51版 2009年 12月 22日发布 Unicode 52版

ndash 2010年 10月发布 Unicode 60版 2012年 1月发布 Unicode 61版(对应于 ISOIEC 106462012 ) 2012年 9月推出 Unicode 62版 2013年 9月推出 Unicode 63版

ndash 2014年 6月 16日发布 Unicode 70版 ndash 2015年 6月 17日发布 Unicode 80版

字符集bull Unicode 字符集的空间分成双字节的基本多语言平面 (Basic Multilingual Pla

ne BMP) 和 4 字节的辅助多语言平面 (Supplementary Multilingual Plane SMP) 两种

bull BMPndash Unicode 的基本平面或基本多语言平面 BMP 对应于 ISOIEC 10646-1 的第 00组的 00 平面( BMP )即 Unicode 与 ISOIEC 10646 的 BMP 中的字符编码完全一致

bull SMPndash 鉴于 Unicode 原有的 16位元空间不足以应用从 Unicode 31版本开始设立了 16 个辅助平面使 Unicode 的可使用空间由六万多字增至约一百万字

ndash 原有的 Unicode双字节空间称为基本平面或基本多语言平面 BMP 辅助多语言平面 SMP 字符要用 4 字节来储存

ndash 第一辅助平面摆放拼音文字(主要为现时已不再使用的文字)及符号范围在 U+10000 - U+1FFFD

ndash 第二辅助平面又称为表意文字补充平面 (Supplementary Ideographic Plane 简称 SIP) 现时摆放ldquo中日韩统汉字扩展 B 区rdquo共 43253 个汉字范围在 U+20000 - U+2FFFD

ndash 第三至十三辅助平面尚未使用ndash 第十四辅助平面又称为特殊用途补充平面 (Supplementary Special-purpose Pl

ane 简称 SSP) 摆放 Language tags 和 Variation Selectors 它们都是控制字符范围在 U+E0000 - U+E01FF

ndash 第十五至十六辅助平面都是私人使用区它们的范围是 U+F0000 - U+FFFFD 及 U+100000 - U+1000FD

bull Unicode 字符集的具体编码方式参加第 4小节ldquo 4 UTFrdquo

2 ISOIEC 10646

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull ISOIEC 10646 标准由 ISO 与 IEC 联合成立的 ISOIEC JTC1SC2WG2 制定ndash JTC 1 ( Joint Technical Committee 1 on Information

technology ISOIEC信息技术联合技术委员会 1 )负责信息技术方面标准的制定工作

ndash SC 2 ( SubCommittee 2 on Coded character sets 编码字符集分会 2 )下的 WG 2 ( Working Group 2 on Universal coded character set 通用编码字符集工作组 2 )负责制定国际通用字符编码标准即后来公布的 ISOIEC 10646

发展历史bull 1984年 ISO 的一些会员国发起制定新的国际字符编码标准同年 4月 ISO

与 IEC 联合成立 ISOIEC JTC1SC2WG2 1987年 3月制定出编码架构1992年 6月投票通过第二版国际标准草案

bull 1993年 5月推出 10646 标准时将内容分成两个部分标准首先发布的是其中的第 1 个部分(体系结构与基本多文种平面)的第 1版( Edition 1 ) ISOIEC 10646-11993 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane(信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

bull 2000年 3月推出 10646 标准第一个部分的第 2版( Edition 2 ) ISOIEC 10646-12000 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane

bull 2001年 10月推出 10646 标准第 2版的第二个部分(辅助平面)的第 1版( Edition 1 ) ISOIEC 10646-22001 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 2 Supplementary Planes

bull 2003年 10月推出的 10646新标准(第 1版 Edition 1 )将老标准中的两个部分标准合并成了一个单一的标准 ISOIEC 106462003 Information technology -- Universal Multiple- Octet Coded Character Set (UCS) 后来又于 2010年 2012年和 2014年分别推出了 ISOIEC 106462010 (第 2版)ISOIEC 106462012 (第 3版)和 ISOIEC 106462014 (第 4版)

UCS 通用字符集bull 通用字符集( Universal Character Set UCS )是

ISOIEC 10646 标准所定义的字符编码方式采用 4字节编码又称为 Universal Multiple-Octet Coded Character Set (通用多八位编码字符集)

bull 通用字符集是所有包括了其他字符集它保证了与其他字符集的双向兼容即如果你将任何文本字符串翻译到 UCS 格式然后再翻译回原编码你不会丢失任何信息

bull UCS 包含了已知语言的所有字符除了拉丁语希腊语斯拉夫语希伯来语阿拉伯语亚美尼亚语格鲁吉亚语还包括中文日文韩文这样的象形文字 UCS 还包括大量的图形印刷数学科学符号

名字与组合字符bull UCS 不仅给每个字符分配一个代码而且赋予了

一个正式的名字表示一个 UCS 或 Unicode值的十六进制数通常在前面加上ldquo U+rdquo 例如ldquo U+0041rdquo代表字符ldquo Ardquo

bull UCS里有些编码点分配给了组合字符组合字符机制允许在任何字符后加上重音符或其他指示标记 这在科学符号中特别有用 比如数学方程式和国际音标字母 可能会需要在一个基本字符后组合上一个或多个指示标记

实现级别bull 并不是所有的系统都需要支持像组合字符这样的的先进

机制因此 ISO 10646 指定了如下三种实现级别ndash 级别 1不支持组合字符和韩语 Hangul Jamo 字符 ( 一种特

别的 更加复杂的韩国文的编码 使用两个或三个子字符来编码一个韩文音节 )

ndash 级别 2类似于级别 1 但在某些文字中允许一列固定的组合字符 (例如 希伯来文 阿拉伯文 Devangari 孟加拉语 果鲁穆奇语 Gujarati Oriya 泰米尔语 Telugo 印 埃纳德语 Malayalam 泰国语和老挝语 ) 因为如果没有最起码的几个组合字符 UCS就不能完整地表达这些语言

ndash 级别 3支持所有的 UCS 字符如可以在任意一个字符上加上一个箭头或 和一个 tilde(颚化符号即字母上面的~ )

编码方式bull UCS 有如下两种编码方式

ndash UCS-2与 Unicode 的 2 字节编码基本一样ndash UCS-4 4 字节编码目前是在 UCS-2 前加

上 2 个全零的字节bull UCS 还有 UTF 编码方式参见下面第 4小节ldquo 4 UTFrdquo

3 Unicode 与 ISOIEC 10646bull 关系

ndash 历史上存在两个独立的尝试创立单一字符集的组织即国际标准化组织( ISO )和多语言软件制造商组成的统一码协会组织( Unicodeorg )前者开发的 ISO 10646项目后者开发的 Unicode项目因此最初制定了不同的标准

ndash 1991年前后两个项目的参与者都认识到世界不需要两个不兼容的字符集于是它们开始合并双方的工作成果并为创立一个单一编码表而协同工作

ndash 从 Unicode20开始 Unicode采用了与 ISO 10646-1相同的字库和字码 ISO 也承诺 ISO10646 将不会替超出 U+10FFFF 的 UCS-4 编码赋值以使得两者保持一致

ndash 两个项目仍都存在并独立地公布各自的标准但 Unicode协会和 ISOIEC JTC1SC2 都同意保持两者标准的码表兼容并紧密地共同调整任何未来的扩展

异同bull Unicode协会公布的 Unicode 标准包含了 ISO 10646-1 实现级别

3 的基本多文种平面在两个标准里所有的字符都在相同的位置并且有相同的名字

bull ISO 10646 标准就像 ISO 8859 标准一样只不过是一个简单的字符集表它定义了一些编码的别名指定了一些与标准有关的术语并包括了规范说明指定了怎样使用 UCS连接其他 ISO 标准的实现等

bull Unicode 标准额外定义了许多与字符有关的语义符号学并详细说明了绘制某些语言(如阿拉伯语)表达形式的算法处理双向文字(比如拉丁文和希伯来文的混合文字)的算法排序与字符串比较所需的算法等等

bull 考虑到 Unicode 标准有一个易记的名字既便宜又包括更多的辅助信息因而它使用得更广泛然而

bull 一般认为用于打印 ISO 10646-1 标准的字体在某些方面的质量要高于用于打印 Unicode 20 的专业字体设计者总是被建议说要两个标准都实现但一些提供的样例字形有显著的区别 ISO 10646-1 标准同样使用四种不同的风格变体来显示表意文字如中文日文和韩文 (CJK) 而 Unicode 20 的表里只有中文的变体

4 UTFbull Unicode 和 UCS 都是一个字符集可以看作为内码bull UTF ( UnicodeUCS Transformation Format 统一码

通用字符集转换格式)是一种编码方式它的出现是因为 Unicode 和 UCS 不适宜在某些场合直接传输和处理

bull UCS 和 Unicode 只是分配整数给字符的编码表现在存在好几种将一串字符表示为一串字节的方法(如高或低位字节在前)

bull 最显而易见的两种方法是将 UCS 和 Unicode 文本存储为 2 个 或 4 个字节序列的串这两种方法的正式名称分别为 UCS-2 和 UCS-4

bull 常用的 UTF具体编码方式有 UTF-8 UTF-16 和 UTF-32

UTF-8

bull UTF-8 是 UTF 的一种具体编码方式在 ISO 10646-1 的附录 R 和 IETF 的 RFC 2279 里定义

bull 由于要使文档中的文字与 ASCII兼容故 UTF-8 选择了使用可变长度字节来储存 Unicode 和 UCS 例如ndash ASCII 字母继续使用 1 字节储存ndash 重音文字希腊字母或西里尔字母等使用 2 字节来储存ndash 常用的汉字就要使用 3 字节ndash 辅助平面字符则使用 4 字节ndash 即 ASCII 不作变换其他字符做变长编码每个字符 1~4 字节

bull UTF-8 通常作为外码bull 在 UTF-8 文件的开首很多时都放置一个 U+FEFF 字符

(UTF-8 以 EF BB BF 代表 ) 以显示这个文字档案是以UTF-8 编码

UTF-8 的优点bull 与 CPU 字节顺序无关可以在不同平台之间交流

bull 容错能力高任何一个字节损坏后最多只会导致一个编码码位损失不会链锁错误 ( 如 GB 码错一个字节就会整行乱码 )

UTF-8 的缺点bull UTF-8 使用可变长度字节储存使计算机程序设计变得复杂 (故此在计算机程序或操作系统内部多采用 UCS-2 编码 )

bull 在旧式的中文日文及朝鲜文编码之中每字符都使用 2 字节储存而 UTF-8 须使用 3 字节 (采用 UTF-16 编码则可只使用 2字节储存 )

bull 泰语以往使用的 ISO 8859-11 每字符只使用 1 字节储存而 UTF-8 须使用 3 字节

UTF-8储存的多字节串字符bull U-00000000 - U-0000007F 0xxxxxxx bull U-00000080 - U-000007FF 110xxxxx 10xxxxxx

bull U-00000800 - U-0000FFFF 1110xxxx 10xxxxxx

10xxxxxx bull U-00010000 - U-001FFFFF 11110xxx 10xxxxx

x 10xxxxxx 10xxxxxx bull 在多字节串中第一个字节的开头ldquo 1rdquo 的数目就

是整个串中字节的数目bull 每个使用 UTF-8储存的字符除了第一个字节外其余字节的头两个位元都是以 10 开始使文字处理器能够较快地找出每个字符的开始位置

UTF-16bull UTF-16 是 UTF 的另一种具体编码方式在 ISO 1064

6-1 的附录 Q 和 IETF 的 RFC 2781 里定义bull UTF-16 是变长码( 2 或 4 字节)大致相当于 20位编码值在 0 到 0x10FFFF 之间基本上就是 Unicode 编码的实现 UTF-16 与 CPU 字序有关但因为最省空间常作为网络传输的外码 UTF-16 是 Unicode 的完美编码

bull lt0x10000 的直接用其对应的 16位整数编码位于 0x10000 ~ 0x10FFFF 之间的用 0xD800~0xDBFF 的 16位整数后跟 0xDC00~0xDFFF 的 16位整数的 4 字节编码 gt 0x10FFFF 的不能用 UTF-16 表示

bull 在 Unicode 的 BMP 中定义的字符(无论是拉丁字母汉字或其他文字或符号)一律使用 2 字节存储而在辅助平面定义的字符则以两个 2 字节的值来存储

UTF-16 的特点bull UTF-16比起 UTF-8 的好处在于大部分字符都以固定长

度的 2 字节存储但 UTF-16却无法相容于 ASCII 编码bull UTF-16 有两种编码模式即大尾序( big Endian 高位字节在前)和小尾序( little Endian 高位字节在后)储存形式(一般來說以 Macintosh 制作和存储的文字使用大尾序格式以 Microsoft 或 Linux 制作和存储的文字使用小尾序格式)

bull 为了弄区分 UTF-16 文件的大小尾序在 UTF-16 文件的开头都会放置一个 U+FEFF 字符作为字节顺序标记 (UTF-16LE 以 FF FE代表 UTF-16BE 以 FE FF代表 ) 以显示该文档是以 UTF-16 编码的

UTF-32

bull UTF-32 仅使用了 Unicode范围 (0 到 0x10FFFF) 的 32位编码相当于 UCS-4 的子集

bull 由于 Unicode 和 ISOIEC 10646 的编码和结构与前面讲过的 GB 13000 类似或等价这里就不再做详细的介绍

5支持bull 现在 UnicodeUCS 已经获得了十分广泛的支

持ndash网络与浏览器(如 HTML 4050 XML 与 IE

Safari Netscape Firefox Chrome Opera Edge 等)

ndash操作系统(如 Windows NT2000XPVista7810 Mac OS X iOS Android和 Linux )

ndash 编程语言新版本(如 CC++JavaObjective-CC Swift 等)

Unicode 代码的浏览器显示代码 字符标准名称 (英语 )

浏览器的显示

amp65 大写拉丁字母 A A

amp223 小写拉丁字母 Sharp S szlig

amp254 小写拉丁字母 Thorn thorn

amp916 大写希腊字母 Delta Δ

amp1049 大写斯拉夫字母 Short I Й

amp1511 希伯来字母 Qof ק

amp1605 阿拉伯字母 Meem م

amp3671 泰文数字 7 ๗amp4688 埃塞俄比亚音节文字 Qha ቐ

amp12354 日语平假名 A あamp12450 日语片假名 A アamp21494 简体汉字 叶 叶amp33865 繁体汉字 葉 葉amp50685 韩国音节文字 Yeob 엽

23 文字输出bull 文字输出是指将计算机内的字符编码通过计算机的输出设备(如显示器打印机喇叭)展现出所对应字符的图形或声音供人们阅读或聆听

bull 本节主要介绍文字图示输出的字形技术bull 文字声音输出属于语音合成只在本节的末尾作简单的介绍

231 字形技术bull 文字 = 图形bull 不论是象形文字中的单字还是拼音文字

中的字母都是用图形来表示的bull 在计算机里文字的表示 输出(显示和打

印)涉及ndash 字型ndash 字体ndash 字库

1字型bull 字型指构造和生成字形的方法一般可分为

ndash 点阵字 DOS 显卡 ROM 金山 科印特点似位图显示快占空间(字库大)放大后有马赛克效应

bull 显示字母 88 汉字 1616bull 打印 2424 4848 6464

ndash 矢量字单线条用于笔式绘图仪特点字库小算法简单难看

ndash 轮廓字用曲线描绘字的轮廓输出效果好所见即所得(WYSWYG) 可无级放大易实现空心 阴影 填充 变形等各种特效功能轮廓曲线一般采用样条曲线如 TrueType (Apple 1991 Mac OS Microsoft 1992 Windows 31)用的是二次 B 样条 Bezier曲线中文之星 RichWin采用的是三次 B 样条 Bezier曲线

字型种类

2字体bull 字体指字的形状风格如

ndash 汉字的

ndash 英文的

宋体楷体黑体仿宋

行楷隶书新魏幼圆

Times New Roman Arial Narrow Courier New

常用汉字字体bull 宋体mdashmdash宋体来自于北宋时雕版刻书所采用的欧体字(唐朝欧阳询体)宋体字的横顿拉捺挑钩别具特色间架平正疏密适中字体秀丽遒劲但笔画横细竖粗适合于刀刻不宜于手写现在宋体广泛用于印刷常来表现文档的正文

bull 仿宋体mdashmdash 1920年钱塘的丁辅之与丁善之等人将明代以后盛行的方廓形字体加以改造创造出长形和方形的聚珍仿宋后来演化为现在的仿宋体仿宋体比较接近于手写体为宋体和楷体的折中是采用的宋体的结构和楷体的笔法而成现常来表现打印文件以及文档的摘要和注释等

bull 黑体mdashmdash黑体是适应工艺美术的发展而出现的一种等线体是从日本引进的黑体的结构与宋体没有什么差别只是其笔画粗细一致健实粗壮主要用于文档的标题和重点及标语广告等方面

bull 楷体mdashmdash楷体源于楷书楷体的笔画圆浑笔调灵活结构端正美观但不宜于木板雕刻所以直到清末西洋的石板印刷术传入后才开始广泛用于印刷现代的楷体创造于 20世纪的二三十年代主要用于文档的正文(多用于中小学教材)也可用于工艺美术等方面

3字库bull 字库为一种文字的某一字体的所有字符的集合一般存放在一个磁盘文件中

bull 由于象形文字中单字的数量大(成千上万)而拼音文字中字母的数量小(不到一百个)所以字库的大小有很大的差别

bull 为了使文档界面丰富多彩常见的字处理软件都支持多种字体带有众多字库

4点阵字型的国家标准bull 我国已经公布了若干字体的点阵字型之国家标准

ndash GB 50071-19852001 信息技术 汉字编码字符集(基本集) 24 点阵字型

ndash GB 50072-19852001 信息技术 汉字编码字符集(辅助集) 24 点阵字型

ndash GB 5199-19862001 信息技术 汉字编码字符集(基本集) 16 点阵字型 宋体

ndash GB 6345-19862001 信息技术 汉字编码字符集(基本集) 32 点阵字型 宋体

ndash GB 12041-2001 信息技术 汉字编码字符集(基本集) 48点阵字型 宋体

ndash GB 17698-1999 信息技术 通用多八位编码字符集( I 区) 汉字 16 点阵字型

232 语音合成bull 文字的声音输出主要使用的是语音合成的技术bull 语音合成功能是ldquo文rarr语rdquo转换bull 文语转换 TTS (Text-To-Speech) 是将文本形式的信息转换成自然语音的一种技术其最终目标是使计算机输出清晰而又自然的声音

bull 英语的语音合成在上世纪 80年代就早已成熟而中文 汉语的合成现在也趋于成熟并有了广泛的应用(如汽车导航仪智能手机等)

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 61: 第一篇  媒体

GB 18030双字节部分的码位安排

类别 区名 码位范围 码位数 字符数 内容

符号区双字节 1区 A1A1~A9FE 846 718

GB 2312非汉字字符等

双字节 5区 A840~A9A0 192 166 台湾图符等

汉字区双字节 2区 B0A1~F7FE 6768 6763 GB 2312汉字双字节 3区 8140~A0FE 6080 6080 CJK统一汉字双字节 4区 AA40~FEA0 8160 8160 CJK统一汉字等

用户自定义区双字节用户区 1 AAA1~AFFE 564

用户自定义字符双字节用户区 2 F8A1~FEFE 658

双字节用户区 3 A140~A7A0 672

GB 18030双字节部分的编码空间结构图 尾字节

0x40larr――rarr0x7E 0x80larr――rarr0xA0 0xA1larr――――――――――――rarr0xFE

0x81 uarr darr

0xA0

0xA1 uarr darr

0xA7

0xA8 0xA9

首字节

0xAA uarr | | | | | | | | | | darr

0xFE

双字节 3区

汉字区6 080个码位

双字节用户区 3

用户自定义区672个码位

双字节 5区 图形符号区192个码位

双字节 4区

汉字区8 160个码位

双字节 1区

图形符号区564个码位

双字节 2区

汉字区6 768个码位

双字节用户区 1 用户自定义区564个码位

双字节用户区 2 用户自定义区658个码位

223 国际通用字符编码

bull Unicode (统一码)是由多语言软件制造商组成的统一码协会( httpwwwUnicodeorg)所制定一种国际字符的编码标准

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull 本节主要介绍这两种关系密切的主流国际字符编码标准的来历编码方案各自特点与相互关系

1 Unicode 统一码bull 发展历史

ndash 1987年施乐( Xerox )公司的 Joe Becker 与 Lee Collins 和苹果( Apple )公司的 Mark Davis 等人开始讨论统一编码 1987年 12月 Joe Becker造词 Unicode (统一码)含义为ldquo unique universal and uniform character encodingrdquo (单一通用统一的字符编码) 1989年 2月开始定期召开统一码会议 1989年 9月公布 Unicode草案

ndash 1991年 1月 3 日由 Xerox Apple Sun IBM Aldis Microsoft 等公司出资在美国加州成立了统一码协会( Unicode Consortium )并由协会设立非盈利性的统一码公司( Unicode Inc )后来 HP Adobe Borland Digital Lotus Novell 等公司也纷纷加入 1991年 1月成立统一码技术委员会 UTC 并制定了其规程

ndash 1991年 2月在 Ed Hart 的推动下进行了ldquo统一码对 10464 国际标准草案 1rdquo 的对话Unicode 与 ISOIEC 10646开始走向融合

ndash 1991年 8月发布 Unicode 标准 10版的第 1卷(体系结构非表意字符) 1992年6月发表 Unicode 10版的第 2卷(表意字符) 1993年 6月发布 Unicode 11版与 1993年 5月公布的 ISOIEC 10646-11993 实现了合并

ndash 1996年 7月发布 Unicode 20版ndash 1999年 9月发布 Unicode 30版ndash 2003年 4月发布 Unicode 40版(对应于 ISOIEC 106462003 ) 2004年 3月 31日发布 Unicode 401版 2005年 3月 31日发布 Unicode 410版

ndash 2006年 7月 14日发布 Unicode 50版 2008年 4月 4日发布 Unicode 51版 2009年 12月 22日发布 Unicode 52版

ndash 2010年 10月发布 Unicode 60版 2012年 1月发布 Unicode 61版(对应于 ISOIEC 106462012 ) 2012年 9月推出 Unicode 62版 2013年 9月推出 Unicode 63版

ndash 2014年 6月 16日发布 Unicode 70版 ndash 2015年 6月 17日发布 Unicode 80版

字符集bull Unicode 字符集的空间分成双字节的基本多语言平面 (Basic Multilingual Pla

ne BMP) 和 4 字节的辅助多语言平面 (Supplementary Multilingual Plane SMP) 两种

bull BMPndash Unicode 的基本平面或基本多语言平面 BMP 对应于 ISOIEC 10646-1 的第 00组的 00 平面( BMP )即 Unicode 与 ISOIEC 10646 的 BMP 中的字符编码完全一致

bull SMPndash 鉴于 Unicode 原有的 16位元空间不足以应用从 Unicode 31版本开始设立了 16 个辅助平面使 Unicode 的可使用空间由六万多字增至约一百万字

ndash 原有的 Unicode双字节空间称为基本平面或基本多语言平面 BMP 辅助多语言平面 SMP 字符要用 4 字节来储存

ndash 第一辅助平面摆放拼音文字(主要为现时已不再使用的文字)及符号范围在 U+10000 - U+1FFFD

ndash 第二辅助平面又称为表意文字补充平面 (Supplementary Ideographic Plane 简称 SIP) 现时摆放ldquo中日韩统汉字扩展 B 区rdquo共 43253 个汉字范围在 U+20000 - U+2FFFD

ndash 第三至十三辅助平面尚未使用ndash 第十四辅助平面又称为特殊用途补充平面 (Supplementary Special-purpose Pl

ane 简称 SSP) 摆放 Language tags 和 Variation Selectors 它们都是控制字符范围在 U+E0000 - U+E01FF

ndash 第十五至十六辅助平面都是私人使用区它们的范围是 U+F0000 - U+FFFFD 及 U+100000 - U+1000FD

bull Unicode 字符集的具体编码方式参加第 4小节ldquo 4 UTFrdquo

2 ISOIEC 10646

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull ISOIEC 10646 标准由 ISO 与 IEC 联合成立的 ISOIEC JTC1SC2WG2 制定ndash JTC 1 ( Joint Technical Committee 1 on Information

technology ISOIEC信息技术联合技术委员会 1 )负责信息技术方面标准的制定工作

ndash SC 2 ( SubCommittee 2 on Coded character sets 编码字符集分会 2 )下的 WG 2 ( Working Group 2 on Universal coded character set 通用编码字符集工作组 2 )负责制定国际通用字符编码标准即后来公布的 ISOIEC 10646

发展历史bull 1984年 ISO 的一些会员国发起制定新的国际字符编码标准同年 4月 ISO

与 IEC 联合成立 ISOIEC JTC1SC2WG2 1987年 3月制定出编码架构1992年 6月投票通过第二版国际标准草案

bull 1993年 5月推出 10646 标准时将内容分成两个部分标准首先发布的是其中的第 1 个部分(体系结构与基本多文种平面)的第 1版( Edition 1 ) ISOIEC 10646-11993 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane(信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

bull 2000年 3月推出 10646 标准第一个部分的第 2版( Edition 2 ) ISOIEC 10646-12000 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane

bull 2001年 10月推出 10646 标准第 2版的第二个部分(辅助平面)的第 1版( Edition 1 ) ISOIEC 10646-22001 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 2 Supplementary Planes

bull 2003年 10月推出的 10646新标准(第 1版 Edition 1 )将老标准中的两个部分标准合并成了一个单一的标准 ISOIEC 106462003 Information technology -- Universal Multiple- Octet Coded Character Set (UCS) 后来又于 2010年 2012年和 2014年分别推出了 ISOIEC 106462010 (第 2版)ISOIEC 106462012 (第 3版)和 ISOIEC 106462014 (第 4版)

UCS 通用字符集bull 通用字符集( Universal Character Set UCS )是

ISOIEC 10646 标准所定义的字符编码方式采用 4字节编码又称为 Universal Multiple-Octet Coded Character Set (通用多八位编码字符集)

bull 通用字符集是所有包括了其他字符集它保证了与其他字符集的双向兼容即如果你将任何文本字符串翻译到 UCS 格式然后再翻译回原编码你不会丢失任何信息

bull UCS 包含了已知语言的所有字符除了拉丁语希腊语斯拉夫语希伯来语阿拉伯语亚美尼亚语格鲁吉亚语还包括中文日文韩文这样的象形文字 UCS 还包括大量的图形印刷数学科学符号

名字与组合字符bull UCS 不仅给每个字符分配一个代码而且赋予了

一个正式的名字表示一个 UCS 或 Unicode值的十六进制数通常在前面加上ldquo U+rdquo 例如ldquo U+0041rdquo代表字符ldquo Ardquo

bull UCS里有些编码点分配给了组合字符组合字符机制允许在任何字符后加上重音符或其他指示标记 这在科学符号中特别有用 比如数学方程式和国际音标字母 可能会需要在一个基本字符后组合上一个或多个指示标记

实现级别bull 并不是所有的系统都需要支持像组合字符这样的的先进

机制因此 ISO 10646 指定了如下三种实现级别ndash 级别 1不支持组合字符和韩语 Hangul Jamo 字符 ( 一种特

别的 更加复杂的韩国文的编码 使用两个或三个子字符来编码一个韩文音节 )

ndash 级别 2类似于级别 1 但在某些文字中允许一列固定的组合字符 (例如 希伯来文 阿拉伯文 Devangari 孟加拉语 果鲁穆奇语 Gujarati Oriya 泰米尔语 Telugo 印 埃纳德语 Malayalam 泰国语和老挝语 ) 因为如果没有最起码的几个组合字符 UCS就不能完整地表达这些语言

ndash 级别 3支持所有的 UCS 字符如可以在任意一个字符上加上一个箭头或 和一个 tilde(颚化符号即字母上面的~ )

编码方式bull UCS 有如下两种编码方式

ndash UCS-2与 Unicode 的 2 字节编码基本一样ndash UCS-4 4 字节编码目前是在 UCS-2 前加

上 2 个全零的字节bull UCS 还有 UTF 编码方式参见下面第 4小节ldquo 4 UTFrdquo

3 Unicode 与 ISOIEC 10646bull 关系

ndash 历史上存在两个独立的尝试创立单一字符集的组织即国际标准化组织( ISO )和多语言软件制造商组成的统一码协会组织( Unicodeorg )前者开发的 ISO 10646项目后者开发的 Unicode项目因此最初制定了不同的标准

ndash 1991年前后两个项目的参与者都认识到世界不需要两个不兼容的字符集于是它们开始合并双方的工作成果并为创立一个单一编码表而协同工作

ndash 从 Unicode20开始 Unicode采用了与 ISO 10646-1相同的字库和字码 ISO 也承诺 ISO10646 将不会替超出 U+10FFFF 的 UCS-4 编码赋值以使得两者保持一致

ndash 两个项目仍都存在并独立地公布各自的标准但 Unicode协会和 ISOIEC JTC1SC2 都同意保持两者标准的码表兼容并紧密地共同调整任何未来的扩展

异同bull Unicode协会公布的 Unicode 标准包含了 ISO 10646-1 实现级别

3 的基本多文种平面在两个标准里所有的字符都在相同的位置并且有相同的名字

bull ISO 10646 标准就像 ISO 8859 标准一样只不过是一个简单的字符集表它定义了一些编码的别名指定了一些与标准有关的术语并包括了规范说明指定了怎样使用 UCS连接其他 ISO 标准的实现等

bull Unicode 标准额外定义了许多与字符有关的语义符号学并详细说明了绘制某些语言(如阿拉伯语)表达形式的算法处理双向文字(比如拉丁文和希伯来文的混合文字)的算法排序与字符串比较所需的算法等等

bull 考虑到 Unicode 标准有一个易记的名字既便宜又包括更多的辅助信息因而它使用得更广泛然而

bull 一般认为用于打印 ISO 10646-1 标准的字体在某些方面的质量要高于用于打印 Unicode 20 的专业字体设计者总是被建议说要两个标准都实现但一些提供的样例字形有显著的区别 ISO 10646-1 标准同样使用四种不同的风格变体来显示表意文字如中文日文和韩文 (CJK) 而 Unicode 20 的表里只有中文的变体

4 UTFbull Unicode 和 UCS 都是一个字符集可以看作为内码bull UTF ( UnicodeUCS Transformation Format 统一码

通用字符集转换格式)是一种编码方式它的出现是因为 Unicode 和 UCS 不适宜在某些场合直接传输和处理

bull UCS 和 Unicode 只是分配整数给字符的编码表现在存在好几种将一串字符表示为一串字节的方法(如高或低位字节在前)

bull 最显而易见的两种方法是将 UCS 和 Unicode 文本存储为 2 个 或 4 个字节序列的串这两种方法的正式名称分别为 UCS-2 和 UCS-4

bull 常用的 UTF具体编码方式有 UTF-8 UTF-16 和 UTF-32

UTF-8

bull UTF-8 是 UTF 的一种具体编码方式在 ISO 10646-1 的附录 R 和 IETF 的 RFC 2279 里定义

bull 由于要使文档中的文字与 ASCII兼容故 UTF-8 选择了使用可变长度字节来储存 Unicode 和 UCS 例如ndash ASCII 字母继续使用 1 字节储存ndash 重音文字希腊字母或西里尔字母等使用 2 字节来储存ndash 常用的汉字就要使用 3 字节ndash 辅助平面字符则使用 4 字节ndash 即 ASCII 不作变换其他字符做变长编码每个字符 1~4 字节

bull UTF-8 通常作为外码bull 在 UTF-8 文件的开首很多时都放置一个 U+FEFF 字符

(UTF-8 以 EF BB BF 代表 ) 以显示这个文字档案是以UTF-8 编码

UTF-8 的优点bull 与 CPU 字节顺序无关可以在不同平台之间交流

bull 容错能力高任何一个字节损坏后最多只会导致一个编码码位损失不会链锁错误 ( 如 GB 码错一个字节就会整行乱码 )

UTF-8 的缺点bull UTF-8 使用可变长度字节储存使计算机程序设计变得复杂 (故此在计算机程序或操作系统内部多采用 UCS-2 编码 )

bull 在旧式的中文日文及朝鲜文编码之中每字符都使用 2 字节储存而 UTF-8 须使用 3 字节 (采用 UTF-16 编码则可只使用 2字节储存 )

bull 泰语以往使用的 ISO 8859-11 每字符只使用 1 字节储存而 UTF-8 须使用 3 字节

UTF-8储存的多字节串字符bull U-00000000 - U-0000007F 0xxxxxxx bull U-00000080 - U-000007FF 110xxxxx 10xxxxxx

bull U-00000800 - U-0000FFFF 1110xxxx 10xxxxxx

10xxxxxx bull U-00010000 - U-001FFFFF 11110xxx 10xxxxx

x 10xxxxxx 10xxxxxx bull 在多字节串中第一个字节的开头ldquo 1rdquo 的数目就

是整个串中字节的数目bull 每个使用 UTF-8储存的字符除了第一个字节外其余字节的头两个位元都是以 10 开始使文字处理器能够较快地找出每个字符的开始位置

UTF-16bull UTF-16 是 UTF 的另一种具体编码方式在 ISO 1064

6-1 的附录 Q 和 IETF 的 RFC 2781 里定义bull UTF-16 是变长码( 2 或 4 字节)大致相当于 20位编码值在 0 到 0x10FFFF 之间基本上就是 Unicode 编码的实现 UTF-16 与 CPU 字序有关但因为最省空间常作为网络传输的外码 UTF-16 是 Unicode 的完美编码

bull lt0x10000 的直接用其对应的 16位整数编码位于 0x10000 ~ 0x10FFFF 之间的用 0xD800~0xDBFF 的 16位整数后跟 0xDC00~0xDFFF 的 16位整数的 4 字节编码 gt 0x10FFFF 的不能用 UTF-16 表示

bull 在 Unicode 的 BMP 中定义的字符(无论是拉丁字母汉字或其他文字或符号)一律使用 2 字节存储而在辅助平面定义的字符则以两个 2 字节的值来存储

UTF-16 的特点bull UTF-16比起 UTF-8 的好处在于大部分字符都以固定长

度的 2 字节存储但 UTF-16却无法相容于 ASCII 编码bull UTF-16 有两种编码模式即大尾序( big Endian 高位字节在前)和小尾序( little Endian 高位字节在后)储存形式(一般來說以 Macintosh 制作和存储的文字使用大尾序格式以 Microsoft 或 Linux 制作和存储的文字使用小尾序格式)

bull 为了弄区分 UTF-16 文件的大小尾序在 UTF-16 文件的开头都会放置一个 U+FEFF 字符作为字节顺序标记 (UTF-16LE 以 FF FE代表 UTF-16BE 以 FE FF代表 ) 以显示该文档是以 UTF-16 编码的

UTF-32

bull UTF-32 仅使用了 Unicode范围 (0 到 0x10FFFF) 的 32位编码相当于 UCS-4 的子集

bull 由于 Unicode 和 ISOIEC 10646 的编码和结构与前面讲过的 GB 13000 类似或等价这里就不再做详细的介绍

5支持bull 现在 UnicodeUCS 已经获得了十分广泛的支

持ndash网络与浏览器(如 HTML 4050 XML 与 IE

Safari Netscape Firefox Chrome Opera Edge 等)

ndash操作系统(如 Windows NT2000XPVista7810 Mac OS X iOS Android和 Linux )

ndash 编程语言新版本(如 CC++JavaObjective-CC Swift 等)

Unicode 代码的浏览器显示代码 字符标准名称 (英语 )

浏览器的显示

amp65 大写拉丁字母 A A

amp223 小写拉丁字母 Sharp S szlig

amp254 小写拉丁字母 Thorn thorn

amp916 大写希腊字母 Delta Δ

amp1049 大写斯拉夫字母 Short I Й

amp1511 希伯来字母 Qof ק

amp1605 阿拉伯字母 Meem م

amp3671 泰文数字 7 ๗amp4688 埃塞俄比亚音节文字 Qha ቐ

amp12354 日语平假名 A あamp12450 日语片假名 A アamp21494 简体汉字 叶 叶amp33865 繁体汉字 葉 葉amp50685 韩国音节文字 Yeob 엽

23 文字输出bull 文字输出是指将计算机内的字符编码通过计算机的输出设备(如显示器打印机喇叭)展现出所对应字符的图形或声音供人们阅读或聆听

bull 本节主要介绍文字图示输出的字形技术bull 文字声音输出属于语音合成只在本节的末尾作简单的介绍

231 字形技术bull 文字 = 图形bull 不论是象形文字中的单字还是拼音文字

中的字母都是用图形来表示的bull 在计算机里文字的表示 输出(显示和打

印)涉及ndash 字型ndash 字体ndash 字库

1字型bull 字型指构造和生成字形的方法一般可分为

ndash 点阵字 DOS 显卡 ROM 金山 科印特点似位图显示快占空间(字库大)放大后有马赛克效应

bull 显示字母 88 汉字 1616bull 打印 2424 4848 6464

ndash 矢量字单线条用于笔式绘图仪特点字库小算法简单难看

ndash 轮廓字用曲线描绘字的轮廓输出效果好所见即所得(WYSWYG) 可无级放大易实现空心 阴影 填充 变形等各种特效功能轮廓曲线一般采用样条曲线如 TrueType (Apple 1991 Mac OS Microsoft 1992 Windows 31)用的是二次 B 样条 Bezier曲线中文之星 RichWin采用的是三次 B 样条 Bezier曲线

字型种类

2字体bull 字体指字的形状风格如

ndash 汉字的

ndash 英文的

宋体楷体黑体仿宋

行楷隶书新魏幼圆

Times New Roman Arial Narrow Courier New

常用汉字字体bull 宋体mdashmdash宋体来自于北宋时雕版刻书所采用的欧体字(唐朝欧阳询体)宋体字的横顿拉捺挑钩别具特色间架平正疏密适中字体秀丽遒劲但笔画横细竖粗适合于刀刻不宜于手写现在宋体广泛用于印刷常来表现文档的正文

bull 仿宋体mdashmdash 1920年钱塘的丁辅之与丁善之等人将明代以后盛行的方廓形字体加以改造创造出长形和方形的聚珍仿宋后来演化为现在的仿宋体仿宋体比较接近于手写体为宋体和楷体的折中是采用的宋体的结构和楷体的笔法而成现常来表现打印文件以及文档的摘要和注释等

bull 黑体mdashmdash黑体是适应工艺美术的发展而出现的一种等线体是从日本引进的黑体的结构与宋体没有什么差别只是其笔画粗细一致健实粗壮主要用于文档的标题和重点及标语广告等方面

bull 楷体mdashmdash楷体源于楷书楷体的笔画圆浑笔调灵活结构端正美观但不宜于木板雕刻所以直到清末西洋的石板印刷术传入后才开始广泛用于印刷现代的楷体创造于 20世纪的二三十年代主要用于文档的正文(多用于中小学教材)也可用于工艺美术等方面

3字库bull 字库为一种文字的某一字体的所有字符的集合一般存放在一个磁盘文件中

bull 由于象形文字中单字的数量大(成千上万)而拼音文字中字母的数量小(不到一百个)所以字库的大小有很大的差别

bull 为了使文档界面丰富多彩常见的字处理软件都支持多种字体带有众多字库

4点阵字型的国家标准bull 我国已经公布了若干字体的点阵字型之国家标准

ndash GB 50071-19852001 信息技术 汉字编码字符集(基本集) 24 点阵字型

ndash GB 50072-19852001 信息技术 汉字编码字符集(辅助集) 24 点阵字型

ndash GB 5199-19862001 信息技术 汉字编码字符集(基本集) 16 点阵字型 宋体

ndash GB 6345-19862001 信息技术 汉字编码字符集(基本集) 32 点阵字型 宋体

ndash GB 12041-2001 信息技术 汉字编码字符集(基本集) 48点阵字型 宋体

ndash GB 17698-1999 信息技术 通用多八位编码字符集( I 区) 汉字 16 点阵字型

232 语音合成bull 文字的声音输出主要使用的是语音合成的技术bull 语音合成功能是ldquo文rarr语rdquo转换bull 文语转换 TTS (Text-To-Speech) 是将文本形式的信息转换成自然语音的一种技术其最终目标是使计算机输出清晰而又自然的声音

bull 英语的语音合成在上世纪 80年代就早已成熟而中文 汉语的合成现在也趋于成熟并有了广泛的应用(如汽车导航仪智能手机等)

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 62: 第一篇  媒体

GB 18030双字节部分的编码空间结构图 尾字节

0x40larr――rarr0x7E 0x80larr――rarr0xA0 0xA1larr――――――――――――rarr0xFE

0x81 uarr darr

0xA0

0xA1 uarr darr

0xA7

0xA8 0xA9

首字节

0xAA uarr | | | | | | | | | | darr

0xFE

双字节 3区

汉字区6 080个码位

双字节用户区 3

用户自定义区672个码位

双字节 5区 图形符号区192个码位

双字节 4区

汉字区8 160个码位

双字节 1区

图形符号区564个码位

双字节 2区

汉字区6 768个码位

双字节用户区 1 用户自定义区564个码位

双字节用户区 2 用户自定义区658个码位

223 国际通用字符编码

bull Unicode (统一码)是由多语言软件制造商组成的统一码协会( httpwwwUnicodeorg)所制定一种国际字符的编码标准

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull 本节主要介绍这两种关系密切的主流国际字符编码标准的来历编码方案各自特点与相互关系

1 Unicode 统一码bull 发展历史

ndash 1987年施乐( Xerox )公司的 Joe Becker 与 Lee Collins 和苹果( Apple )公司的 Mark Davis 等人开始讨论统一编码 1987年 12月 Joe Becker造词 Unicode (统一码)含义为ldquo unique universal and uniform character encodingrdquo (单一通用统一的字符编码) 1989年 2月开始定期召开统一码会议 1989年 9月公布 Unicode草案

ndash 1991年 1月 3 日由 Xerox Apple Sun IBM Aldis Microsoft 等公司出资在美国加州成立了统一码协会( Unicode Consortium )并由协会设立非盈利性的统一码公司( Unicode Inc )后来 HP Adobe Borland Digital Lotus Novell 等公司也纷纷加入 1991年 1月成立统一码技术委员会 UTC 并制定了其规程

ndash 1991年 2月在 Ed Hart 的推动下进行了ldquo统一码对 10464 国际标准草案 1rdquo 的对话Unicode 与 ISOIEC 10646开始走向融合

ndash 1991年 8月发布 Unicode 标准 10版的第 1卷(体系结构非表意字符) 1992年6月发表 Unicode 10版的第 2卷(表意字符) 1993年 6月发布 Unicode 11版与 1993年 5月公布的 ISOIEC 10646-11993 实现了合并

ndash 1996年 7月发布 Unicode 20版ndash 1999年 9月发布 Unicode 30版ndash 2003年 4月发布 Unicode 40版(对应于 ISOIEC 106462003 ) 2004年 3月 31日发布 Unicode 401版 2005年 3月 31日发布 Unicode 410版

ndash 2006年 7月 14日发布 Unicode 50版 2008年 4月 4日发布 Unicode 51版 2009年 12月 22日发布 Unicode 52版

ndash 2010年 10月发布 Unicode 60版 2012年 1月发布 Unicode 61版(对应于 ISOIEC 106462012 ) 2012年 9月推出 Unicode 62版 2013年 9月推出 Unicode 63版

ndash 2014年 6月 16日发布 Unicode 70版 ndash 2015年 6月 17日发布 Unicode 80版

字符集bull Unicode 字符集的空间分成双字节的基本多语言平面 (Basic Multilingual Pla

ne BMP) 和 4 字节的辅助多语言平面 (Supplementary Multilingual Plane SMP) 两种

bull BMPndash Unicode 的基本平面或基本多语言平面 BMP 对应于 ISOIEC 10646-1 的第 00组的 00 平面( BMP )即 Unicode 与 ISOIEC 10646 的 BMP 中的字符编码完全一致

bull SMPndash 鉴于 Unicode 原有的 16位元空间不足以应用从 Unicode 31版本开始设立了 16 个辅助平面使 Unicode 的可使用空间由六万多字增至约一百万字

ndash 原有的 Unicode双字节空间称为基本平面或基本多语言平面 BMP 辅助多语言平面 SMP 字符要用 4 字节来储存

ndash 第一辅助平面摆放拼音文字(主要为现时已不再使用的文字)及符号范围在 U+10000 - U+1FFFD

ndash 第二辅助平面又称为表意文字补充平面 (Supplementary Ideographic Plane 简称 SIP) 现时摆放ldquo中日韩统汉字扩展 B 区rdquo共 43253 个汉字范围在 U+20000 - U+2FFFD

ndash 第三至十三辅助平面尚未使用ndash 第十四辅助平面又称为特殊用途补充平面 (Supplementary Special-purpose Pl

ane 简称 SSP) 摆放 Language tags 和 Variation Selectors 它们都是控制字符范围在 U+E0000 - U+E01FF

ndash 第十五至十六辅助平面都是私人使用区它们的范围是 U+F0000 - U+FFFFD 及 U+100000 - U+1000FD

bull Unicode 字符集的具体编码方式参加第 4小节ldquo 4 UTFrdquo

2 ISOIEC 10646

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull ISOIEC 10646 标准由 ISO 与 IEC 联合成立的 ISOIEC JTC1SC2WG2 制定ndash JTC 1 ( Joint Technical Committee 1 on Information

technology ISOIEC信息技术联合技术委员会 1 )负责信息技术方面标准的制定工作

ndash SC 2 ( SubCommittee 2 on Coded character sets 编码字符集分会 2 )下的 WG 2 ( Working Group 2 on Universal coded character set 通用编码字符集工作组 2 )负责制定国际通用字符编码标准即后来公布的 ISOIEC 10646

发展历史bull 1984年 ISO 的一些会员国发起制定新的国际字符编码标准同年 4月 ISO

与 IEC 联合成立 ISOIEC JTC1SC2WG2 1987年 3月制定出编码架构1992年 6月投票通过第二版国际标准草案

bull 1993年 5月推出 10646 标准时将内容分成两个部分标准首先发布的是其中的第 1 个部分(体系结构与基本多文种平面)的第 1版( Edition 1 ) ISOIEC 10646-11993 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane(信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

bull 2000年 3月推出 10646 标准第一个部分的第 2版( Edition 2 ) ISOIEC 10646-12000 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane

bull 2001年 10月推出 10646 标准第 2版的第二个部分(辅助平面)的第 1版( Edition 1 ) ISOIEC 10646-22001 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 2 Supplementary Planes

bull 2003年 10月推出的 10646新标准(第 1版 Edition 1 )将老标准中的两个部分标准合并成了一个单一的标准 ISOIEC 106462003 Information technology -- Universal Multiple- Octet Coded Character Set (UCS) 后来又于 2010年 2012年和 2014年分别推出了 ISOIEC 106462010 (第 2版)ISOIEC 106462012 (第 3版)和 ISOIEC 106462014 (第 4版)

UCS 通用字符集bull 通用字符集( Universal Character Set UCS )是

ISOIEC 10646 标准所定义的字符编码方式采用 4字节编码又称为 Universal Multiple-Octet Coded Character Set (通用多八位编码字符集)

bull 通用字符集是所有包括了其他字符集它保证了与其他字符集的双向兼容即如果你将任何文本字符串翻译到 UCS 格式然后再翻译回原编码你不会丢失任何信息

bull UCS 包含了已知语言的所有字符除了拉丁语希腊语斯拉夫语希伯来语阿拉伯语亚美尼亚语格鲁吉亚语还包括中文日文韩文这样的象形文字 UCS 还包括大量的图形印刷数学科学符号

名字与组合字符bull UCS 不仅给每个字符分配一个代码而且赋予了

一个正式的名字表示一个 UCS 或 Unicode值的十六进制数通常在前面加上ldquo U+rdquo 例如ldquo U+0041rdquo代表字符ldquo Ardquo

bull UCS里有些编码点分配给了组合字符组合字符机制允许在任何字符后加上重音符或其他指示标记 这在科学符号中特别有用 比如数学方程式和国际音标字母 可能会需要在一个基本字符后组合上一个或多个指示标记

实现级别bull 并不是所有的系统都需要支持像组合字符这样的的先进

机制因此 ISO 10646 指定了如下三种实现级别ndash 级别 1不支持组合字符和韩语 Hangul Jamo 字符 ( 一种特

别的 更加复杂的韩国文的编码 使用两个或三个子字符来编码一个韩文音节 )

ndash 级别 2类似于级别 1 但在某些文字中允许一列固定的组合字符 (例如 希伯来文 阿拉伯文 Devangari 孟加拉语 果鲁穆奇语 Gujarati Oriya 泰米尔语 Telugo 印 埃纳德语 Malayalam 泰国语和老挝语 ) 因为如果没有最起码的几个组合字符 UCS就不能完整地表达这些语言

ndash 级别 3支持所有的 UCS 字符如可以在任意一个字符上加上一个箭头或 和一个 tilde(颚化符号即字母上面的~ )

编码方式bull UCS 有如下两种编码方式

ndash UCS-2与 Unicode 的 2 字节编码基本一样ndash UCS-4 4 字节编码目前是在 UCS-2 前加

上 2 个全零的字节bull UCS 还有 UTF 编码方式参见下面第 4小节ldquo 4 UTFrdquo

3 Unicode 与 ISOIEC 10646bull 关系

ndash 历史上存在两个独立的尝试创立单一字符集的组织即国际标准化组织( ISO )和多语言软件制造商组成的统一码协会组织( Unicodeorg )前者开发的 ISO 10646项目后者开发的 Unicode项目因此最初制定了不同的标准

ndash 1991年前后两个项目的参与者都认识到世界不需要两个不兼容的字符集于是它们开始合并双方的工作成果并为创立一个单一编码表而协同工作

ndash 从 Unicode20开始 Unicode采用了与 ISO 10646-1相同的字库和字码 ISO 也承诺 ISO10646 将不会替超出 U+10FFFF 的 UCS-4 编码赋值以使得两者保持一致

ndash 两个项目仍都存在并独立地公布各自的标准但 Unicode协会和 ISOIEC JTC1SC2 都同意保持两者标准的码表兼容并紧密地共同调整任何未来的扩展

异同bull Unicode协会公布的 Unicode 标准包含了 ISO 10646-1 实现级别

3 的基本多文种平面在两个标准里所有的字符都在相同的位置并且有相同的名字

bull ISO 10646 标准就像 ISO 8859 标准一样只不过是一个简单的字符集表它定义了一些编码的别名指定了一些与标准有关的术语并包括了规范说明指定了怎样使用 UCS连接其他 ISO 标准的实现等

bull Unicode 标准额外定义了许多与字符有关的语义符号学并详细说明了绘制某些语言(如阿拉伯语)表达形式的算法处理双向文字(比如拉丁文和希伯来文的混合文字)的算法排序与字符串比较所需的算法等等

bull 考虑到 Unicode 标准有一个易记的名字既便宜又包括更多的辅助信息因而它使用得更广泛然而

bull 一般认为用于打印 ISO 10646-1 标准的字体在某些方面的质量要高于用于打印 Unicode 20 的专业字体设计者总是被建议说要两个标准都实现但一些提供的样例字形有显著的区别 ISO 10646-1 标准同样使用四种不同的风格变体来显示表意文字如中文日文和韩文 (CJK) 而 Unicode 20 的表里只有中文的变体

4 UTFbull Unicode 和 UCS 都是一个字符集可以看作为内码bull UTF ( UnicodeUCS Transformation Format 统一码

通用字符集转换格式)是一种编码方式它的出现是因为 Unicode 和 UCS 不适宜在某些场合直接传输和处理

bull UCS 和 Unicode 只是分配整数给字符的编码表现在存在好几种将一串字符表示为一串字节的方法(如高或低位字节在前)

bull 最显而易见的两种方法是将 UCS 和 Unicode 文本存储为 2 个 或 4 个字节序列的串这两种方法的正式名称分别为 UCS-2 和 UCS-4

bull 常用的 UTF具体编码方式有 UTF-8 UTF-16 和 UTF-32

UTF-8

bull UTF-8 是 UTF 的一种具体编码方式在 ISO 10646-1 的附录 R 和 IETF 的 RFC 2279 里定义

bull 由于要使文档中的文字与 ASCII兼容故 UTF-8 选择了使用可变长度字节来储存 Unicode 和 UCS 例如ndash ASCII 字母继续使用 1 字节储存ndash 重音文字希腊字母或西里尔字母等使用 2 字节来储存ndash 常用的汉字就要使用 3 字节ndash 辅助平面字符则使用 4 字节ndash 即 ASCII 不作变换其他字符做变长编码每个字符 1~4 字节

bull UTF-8 通常作为外码bull 在 UTF-8 文件的开首很多时都放置一个 U+FEFF 字符

(UTF-8 以 EF BB BF 代表 ) 以显示这个文字档案是以UTF-8 编码

UTF-8 的优点bull 与 CPU 字节顺序无关可以在不同平台之间交流

bull 容错能力高任何一个字节损坏后最多只会导致一个编码码位损失不会链锁错误 ( 如 GB 码错一个字节就会整行乱码 )

UTF-8 的缺点bull UTF-8 使用可变长度字节储存使计算机程序设计变得复杂 (故此在计算机程序或操作系统内部多采用 UCS-2 编码 )

bull 在旧式的中文日文及朝鲜文编码之中每字符都使用 2 字节储存而 UTF-8 须使用 3 字节 (采用 UTF-16 编码则可只使用 2字节储存 )

bull 泰语以往使用的 ISO 8859-11 每字符只使用 1 字节储存而 UTF-8 须使用 3 字节

UTF-8储存的多字节串字符bull U-00000000 - U-0000007F 0xxxxxxx bull U-00000080 - U-000007FF 110xxxxx 10xxxxxx

bull U-00000800 - U-0000FFFF 1110xxxx 10xxxxxx

10xxxxxx bull U-00010000 - U-001FFFFF 11110xxx 10xxxxx

x 10xxxxxx 10xxxxxx bull 在多字节串中第一个字节的开头ldquo 1rdquo 的数目就

是整个串中字节的数目bull 每个使用 UTF-8储存的字符除了第一个字节外其余字节的头两个位元都是以 10 开始使文字处理器能够较快地找出每个字符的开始位置

UTF-16bull UTF-16 是 UTF 的另一种具体编码方式在 ISO 1064

6-1 的附录 Q 和 IETF 的 RFC 2781 里定义bull UTF-16 是变长码( 2 或 4 字节)大致相当于 20位编码值在 0 到 0x10FFFF 之间基本上就是 Unicode 编码的实现 UTF-16 与 CPU 字序有关但因为最省空间常作为网络传输的外码 UTF-16 是 Unicode 的完美编码

bull lt0x10000 的直接用其对应的 16位整数编码位于 0x10000 ~ 0x10FFFF 之间的用 0xD800~0xDBFF 的 16位整数后跟 0xDC00~0xDFFF 的 16位整数的 4 字节编码 gt 0x10FFFF 的不能用 UTF-16 表示

bull 在 Unicode 的 BMP 中定义的字符(无论是拉丁字母汉字或其他文字或符号)一律使用 2 字节存储而在辅助平面定义的字符则以两个 2 字节的值来存储

UTF-16 的特点bull UTF-16比起 UTF-8 的好处在于大部分字符都以固定长

度的 2 字节存储但 UTF-16却无法相容于 ASCII 编码bull UTF-16 有两种编码模式即大尾序( big Endian 高位字节在前)和小尾序( little Endian 高位字节在后)储存形式(一般來說以 Macintosh 制作和存储的文字使用大尾序格式以 Microsoft 或 Linux 制作和存储的文字使用小尾序格式)

bull 为了弄区分 UTF-16 文件的大小尾序在 UTF-16 文件的开头都会放置一个 U+FEFF 字符作为字节顺序标记 (UTF-16LE 以 FF FE代表 UTF-16BE 以 FE FF代表 ) 以显示该文档是以 UTF-16 编码的

UTF-32

bull UTF-32 仅使用了 Unicode范围 (0 到 0x10FFFF) 的 32位编码相当于 UCS-4 的子集

bull 由于 Unicode 和 ISOIEC 10646 的编码和结构与前面讲过的 GB 13000 类似或等价这里就不再做详细的介绍

5支持bull 现在 UnicodeUCS 已经获得了十分广泛的支

持ndash网络与浏览器(如 HTML 4050 XML 与 IE

Safari Netscape Firefox Chrome Opera Edge 等)

ndash操作系统(如 Windows NT2000XPVista7810 Mac OS X iOS Android和 Linux )

ndash 编程语言新版本(如 CC++JavaObjective-CC Swift 等)

Unicode 代码的浏览器显示代码 字符标准名称 (英语 )

浏览器的显示

amp65 大写拉丁字母 A A

amp223 小写拉丁字母 Sharp S szlig

amp254 小写拉丁字母 Thorn thorn

amp916 大写希腊字母 Delta Δ

amp1049 大写斯拉夫字母 Short I Й

amp1511 希伯来字母 Qof ק

amp1605 阿拉伯字母 Meem م

amp3671 泰文数字 7 ๗amp4688 埃塞俄比亚音节文字 Qha ቐ

amp12354 日语平假名 A あamp12450 日语片假名 A アamp21494 简体汉字 叶 叶amp33865 繁体汉字 葉 葉amp50685 韩国音节文字 Yeob 엽

23 文字输出bull 文字输出是指将计算机内的字符编码通过计算机的输出设备(如显示器打印机喇叭)展现出所对应字符的图形或声音供人们阅读或聆听

bull 本节主要介绍文字图示输出的字形技术bull 文字声音输出属于语音合成只在本节的末尾作简单的介绍

231 字形技术bull 文字 = 图形bull 不论是象形文字中的单字还是拼音文字

中的字母都是用图形来表示的bull 在计算机里文字的表示 输出(显示和打

印)涉及ndash 字型ndash 字体ndash 字库

1字型bull 字型指构造和生成字形的方法一般可分为

ndash 点阵字 DOS 显卡 ROM 金山 科印特点似位图显示快占空间(字库大)放大后有马赛克效应

bull 显示字母 88 汉字 1616bull 打印 2424 4848 6464

ndash 矢量字单线条用于笔式绘图仪特点字库小算法简单难看

ndash 轮廓字用曲线描绘字的轮廓输出效果好所见即所得(WYSWYG) 可无级放大易实现空心 阴影 填充 变形等各种特效功能轮廓曲线一般采用样条曲线如 TrueType (Apple 1991 Mac OS Microsoft 1992 Windows 31)用的是二次 B 样条 Bezier曲线中文之星 RichWin采用的是三次 B 样条 Bezier曲线

字型种类

2字体bull 字体指字的形状风格如

ndash 汉字的

ndash 英文的

宋体楷体黑体仿宋

行楷隶书新魏幼圆

Times New Roman Arial Narrow Courier New

常用汉字字体bull 宋体mdashmdash宋体来自于北宋时雕版刻书所采用的欧体字(唐朝欧阳询体)宋体字的横顿拉捺挑钩别具特色间架平正疏密适中字体秀丽遒劲但笔画横细竖粗适合于刀刻不宜于手写现在宋体广泛用于印刷常来表现文档的正文

bull 仿宋体mdashmdash 1920年钱塘的丁辅之与丁善之等人将明代以后盛行的方廓形字体加以改造创造出长形和方形的聚珍仿宋后来演化为现在的仿宋体仿宋体比较接近于手写体为宋体和楷体的折中是采用的宋体的结构和楷体的笔法而成现常来表现打印文件以及文档的摘要和注释等

bull 黑体mdashmdash黑体是适应工艺美术的发展而出现的一种等线体是从日本引进的黑体的结构与宋体没有什么差别只是其笔画粗细一致健实粗壮主要用于文档的标题和重点及标语广告等方面

bull 楷体mdashmdash楷体源于楷书楷体的笔画圆浑笔调灵活结构端正美观但不宜于木板雕刻所以直到清末西洋的石板印刷术传入后才开始广泛用于印刷现代的楷体创造于 20世纪的二三十年代主要用于文档的正文(多用于中小学教材)也可用于工艺美术等方面

3字库bull 字库为一种文字的某一字体的所有字符的集合一般存放在一个磁盘文件中

bull 由于象形文字中单字的数量大(成千上万)而拼音文字中字母的数量小(不到一百个)所以字库的大小有很大的差别

bull 为了使文档界面丰富多彩常见的字处理软件都支持多种字体带有众多字库

4点阵字型的国家标准bull 我国已经公布了若干字体的点阵字型之国家标准

ndash GB 50071-19852001 信息技术 汉字编码字符集(基本集) 24 点阵字型

ndash GB 50072-19852001 信息技术 汉字编码字符集(辅助集) 24 点阵字型

ndash GB 5199-19862001 信息技术 汉字编码字符集(基本集) 16 点阵字型 宋体

ndash GB 6345-19862001 信息技术 汉字编码字符集(基本集) 32 点阵字型 宋体

ndash GB 12041-2001 信息技术 汉字编码字符集(基本集) 48点阵字型 宋体

ndash GB 17698-1999 信息技术 通用多八位编码字符集( I 区) 汉字 16 点阵字型

232 语音合成bull 文字的声音输出主要使用的是语音合成的技术bull 语音合成功能是ldquo文rarr语rdquo转换bull 文语转换 TTS (Text-To-Speech) 是将文本形式的信息转换成自然语音的一种技术其最终目标是使计算机输出清晰而又自然的声音

bull 英语的语音合成在上世纪 80年代就早已成熟而中文 汉语的合成现在也趋于成熟并有了广泛的应用(如汽车导航仪智能手机等)

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 63: 第一篇  媒体

223 国际通用字符编码

bull Unicode (统一码)是由多语言软件制造商组成的统一码协会( httpwwwUnicodeorg)所制定一种国际字符的编码标准

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull 本节主要介绍这两种关系密切的主流国际字符编码标准的来历编码方案各自特点与相互关系

1 Unicode 统一码bull 发展历史

ndash 1987年施乐( Xerox )公司的 Joe Becker 与 Lee Collins 和苹果( Apple )公司的 Mark Davis 等人开始讨论统一编码 1987年 12月 Joe Becker造词 Unicode (统一码)含义为ldquo unique universal and uniform character encodingrdquo (单一通用统一的字符编码) 1989年 2月开始定期召开统一码会议 1989年 9月公布 Unicode草案

ndash 1991年 1月 3 日由 Xerox Apple Sun IBM Aldis Microsoft 等公司出资在美国加州成立了统一码协会( Unicode Consortium )并由协会设立非盈利性的统一码公司( Unicode Inc )后来 HP Adobe Borland Digital Lotus Novell 等公司也纷纷加入 1991年 1月成立统一码技术委员会 UTC 并制定了其规程

ndash 1991年 2月在 Ed Hart 的推动下进行了ldquo统一码对 10464 国际标准草案 1rdquo 的对话Unicode 与 ISOIEC 10646开始走向融合

ndash 1991年 8月发布 Unicode 标准 10版的第 1卷(体系结构非表意字符) 1992年6月发表 Unicode 10版的第 2卷(表意字符) 1993年 6月发布 Unicode 11版与 1993年 5月公布的 ISOIEC 10646-11993 实现了合并

ndash 1996年 7月发布 Unicode 20版ndash 1999年 9月发布 Unicode 30版ndash 2003年 4月发布 Unicode 40版(对应于 ISOIEC 106462003 ) 2004年 3月 31日发布 Unicode 401版 2005年 3月 31日发布 Unicode 410版

ndash 2006年 7月 14日发布 Unicode 50版 2008年 4月 4日发布 Unicode 51版 2009年 12月 22日发布 Unicode 52版

ndash 2010年 10月发布 Unicode 60版 2012年 1月发布 Unicode 61版(对应于 ISOIEC 106462012 ) 2012年 9月推出 Unicode 62版 2013年 9月推出 Unicode 63版

ndash 2014年 6月 16日发布 Unicode 70版 ndash 2015年 6月 17日发布 Unicode 80版

字符集bull Unicode 字符集的空间分成双字节的基本多语言平面 (Basic Multilingual Pla

ne BMP) 和 4 字节的辅助多语言平面 (Supplementary Multilingual Plane SMP) 两种

bull BMPndash Unicode 的基本平面或基本多语言平面 BMP 对应于 ISOIEC 10646-1 的第 00组的 00 平面( BMP )即 Unicode 与 ISOIEC 10646 的 BMP 中的字符编码完全一致

bull SMPndash 鉴于 Unicode 原有的 16位元空间不足以应用从 Unicode 31版本开始设立了 16 个辅助平面使 Unicode 的可使用空间由六万多字增至约一百万字

ndash 原有的 Unicode双字节空间称为基本平面或基本多语言平面 BMP 辅助多语言平面 SMP 字符要用 4 字节来储存

ndash 第一辅助平面摆放拼音文字(主要为现时已不再使用的文字)及符号范围在 U+10000 - U+1FFFD

ndash 第二辅助平面又称为表意文字补充平面 (Supplementary Ideographic Plane 简称 SIP) 现时摆放ldquo中日韩统汉字扩展 B 区rdquo共 43253 个汉字范围在 U+20000 - U+2FFFD

ndash 第三至十三辅助平面尚未使用ndash 第十四辅助平面又称为特殊用途补充平面 (Supplementary Special-purpose Pl

ane 简称 SSP) 摆放 Language tags 和 Variation Selectors 它们都是控制字符范围在 U+E0000 - U+E01FF

ndash 第十五至十六辅助平面都是私人使用区它们的范围是 U+F0000 - U+FFFFD 及 U+100000 - U+1000FD

bull Unicode 字符集的具体编码方式参加第 4小节ldquo 4 UTFrdquo

2 ISOIEC 10646

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull ISOIEC 10646 标准由 ISO 与 IEC 联合成立的 ISOIEC JTC1SC2WG2 制定ndash JTC 1 ( Joint Technical Committee 1 on Information

technology ISOIEC信息技术联合技术委员会 1 )负责信息技术方面标准的制定工作

ndash SC 2 ( SubCommittee 2 on Coded character sets 编码字符集分会 2 )下的 WG 2 ( Working Group 2 on Universal coded character set 通用编码字符集工作组 2 )负责制定国际通用字符编码标准即后来公布的 ISOIEC 10646

发展历史bull 1984年 ISO 的一些会员国发起制定新的国际字符编码标准同年 4月 ISO

与 IEC 联合成立 ISOIEC JTC1SC2WG2 1987年 3月制定出编码架构1992年 6月投票通过第二版国际标准草案

bull 1993年 5月推出 10646 标准时将内容分成两个部分标准首先发布的是其中的第 1 个部分(体系结构与基本多文种平面)的第 1版( Edition 1 ) ISOIEC 10646-11993 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane(信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

bull 2000年 3月推出 10646 标准第一个部分的第 2版( Edition 2 ) ISOIEC 10646-12000 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane

bull 2001年 10月推出 10646 标准第 2版的第二个部分(辅助平面)的第 1版( Edition 1 ) ISOIEC 10646-22001 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 2 Supplementary Planes

bull 2003年 10月推出的 10646新标准(第 1版 Edition 1 )将老标准中的两个部分标准合并成了一个单一的标准 ISOIEC 106462003 Information technology -- Universal Multiple- Octet Coded Character Set (UCS) 后来又于 2010年 2012年和 2014年分别推出了 ISOIEC 106462010 (第 2版)ISOIEC 106462012 (第 3版)和 ISOIEC 106462014 (第 4版)

UCS 通用字符集bull 通用字符集( Universal Character Set UCS )是

ISOIEC 10646 标准所定义的字符编码方式采用 4字节编码又称为 Universal Multiple-Octet Coded Character Set (通用多八位编码字符集)

bull 通用字符集是所有包括了其他字符集它保证了与其他字符集的双向兼容即如果你将任何文本字符串翻译到 UCS 格式然后再翻译回原编码你不会丢失任何信息

bull UCS 包含了已知语言的所有字符除了拉丁语希腊语斯拉夫语希伯来语阿拉伯语亚美尼亚语格鲁吉亚语还包括中文日文韩文这样的象形文字 UCS 还包括大量的图形印刷数学科学符号

名字与组合字符bull UCS 不仅给每个字符分配一个代码而且赋予了

一个正式的名字表示一个 UCS 或 Unicode值的十六进制数通常在前面加上ldquo U+rdquo 例如ldquo U+0041rdquo代表字符ldquo Ardquo

bull UCS里有些编码点分配给了组合字符组合字符机制允许在任何字符后加上重音符或其他指示标记 这在科学符号中特别有用 比如数学方程式和国际音标字母 可能会需要在一个基本字符后组合上一个或多个指示标记

实现级别bull 并不是所有的系统都需要支持像组合字符这样的的先进

机制因此 ISO 10646 指定了如下三种实现级别ndash 级别 1不支持组合字符和韩语 Hangul Jamo 字符 ( 一种特

别的 更加复杂的韩国文的编码 使用两个或三个子字符来编码一个韩文音节 )

ndash 级别 2类似于级别 1 但在某些文字中允许一列固定的组合字符 (例如 希伯来文 阿拉伯文 Devangari 孟加拉语 果鲁穆奇语 Gujarati Oriya 泰米尔语 Telugo 印 埃纳德语 Malayalam 泰国语和老挝语 ) 因为如果没有最起码的几个组合字符 UCS就不能完整地表达这些语言

ndash 级别 3支持所有的 UCS 字符如可以在任意一个字符上加上一个箭头或 和一个 tilde(颚化符号即字母上面的~ )

编码方式bull UCS 有如下两种编码方式

ndash UCS-2与 Unicode 的 2 字节编码基本一样ndash UCS-4 4 字节编码目前是在 UCS-2 前加

上 2 个全零的字节bull UCS 还有 UTF 编码方式参见下面第 4小节ldquo 4 UTFrdquo

3 Unicode 与 ISOIEC 10646bull 关系

ndash 历史上存在两个独立的尝试创立单一字符集的组织即国际标准化组织( ISO )和多语言软件制造商组成的统一码协会组织( Unicodeorg )前者开发的 ISO 10646项目后者开发的 Unicode项目因此最初制定了不同的标准

ndash 1991年前后两个项目的参与者都认识到世界不需要两个不兼容的字符集于是它们开始合并双方的工作成果并为创立一个单一编码表而协同工作

ndash 从 Unicode20开始 Unicode采用了与 ISO 10646-1相同的字库和字码 ISO 也承诺 ISO10646 将不会替超出 U+10FFFF 的 UCS-4 编码赋值以使得两者保持一致

ndash 两个项目仍都存在并独立地公布各自的标准但 Unicode协会和 ISOIEC JTC1SC2 都同意保持两者标准的码表兼容并紧密地共同调整任何未来的扩展

异同bull Unicode协会公布的 Unicode 标准包含了 ISO 10646-1 实现级别

3 的基本多文种平面在两个标准里所有的字符都在相同的位置并且有相同的名字

bull ISO 10646 标准就像 ISO 8859 标准一样只不过是一个简单的字符集表它定义了一些编码的别名指定了一些与标准有关的术语并包括了规范说明指定了怎样使用 UCS连接其他 ISO 标准的实现等

bull Unicode 标准额外定义了许多与字符有关的语义符号学并详细说明了绘制某些语言(如阿拉伯语)表达形式的算法处理双向文字(比如拉丁文和希伯来文的混合文字)的算法排序与字符串比较所需的算法等等

bull 考虑到 Unicode 标准有一个易记的名字既便宜又包括更多的辅助信息因而它使用得更广泛然而

bull 一般认为用于打印 ISO 10646-1 标准的字体在某些方面的质量要高于用于打印 Unicode 20 的专业字体设计者总是被建议说要两个标准都实现但一些提供的样例字形有显著的区别 ISO 10646-1 标准同样使用四种不同的风格变体来显示表意文字如中文日文和韩文 (CJK) 而 Unicode 20 的表里只有中文的变体

4 UTFbull Unicode 和 UCS 都是一个字符集可以看作为内码bull UTF ( UnicodeUCS Transformation Format 统一码

通用字符集转换格式)是一种编码方式它的出现是因为 Unicode 和 UCS 不适宜在某些场合直接传输和处理

bull UCS 和 Unicode 只是分配整数给字符的编码表现在存在好几种将一串字符表示为一串字节的方法(如高或低位字节在前)

bull 最显而易见的两种方法是将 UCS 和 Unicode 文本存储为 2 个 或 4 个字节序列的串这两种方法的正式名称分别为 UCS-2 和 UCS-4

bull 常用的 UTF具体编码方式有 UTF-8 UTF-16 和 UTF-32

UTF-8

bull UTF-8 是 UTF 的一种具体编码方式在 ISO 10646-1 的附录 R 和 IETF 的 RFC 2279 里定义

bull 由于要使文档中的文字与 ASCII兼容故 UTF-8 选择了使用可变长度字节来储存 Unicode 和 UCS 例如ndash ASCII 字母继续使用 1 字节储存ndash 重音文字希腊字母或西里尔字母等使用 2 字节来储存ndash 常用的汉字就要使用 3 字节ndash 辅助平面字符则使用 4 字节ndash 即 ASCII 不作变换其他字符做变长编码每个字符 1~4 字节

bull UTF-8 通常作为外码bull 在 UTF-8 文件的开首很多时都放置一个 U+FEFF 字符

(UTF-8 以 EF BB BF 代表 ) 以显示这个文字档案是以UTF-8 编码

UTF-8 的优点bull 与 CPU 字节顺序无关可以在不同平台之间交流

bull 容错能力高任何一个字节损坏后最多只会导致一个编码码位损失不会链锁错误 ( 如 GB 码错一个字节就会整行乱码 )

UTF-8 的缺点bull UTF-8 使用可变长度字节储存使计算机程序设计变得复杂 (故此在计算机程序或操作系统内部多采用 UCS-2 编码 )

bull 在旧式的中文日文及朝鲜文编码之中每字符都使用 2 字节储存而 UTF-8 须使用 3 字节 (采用 UTF-16 编码则可只使用 2字节储存 )

bull 泰语以往使用的 ISO 8859-11 每字符只使用 1 字节储存而 UTF-8 须使用 3 字节

UTF-8储存的多字节串字符bull U-00000000 - U-0000007F 0xxxxxxx bull U-00000080 - U-000007FF 110xxxxx 10xxxxxx

bull U-00000800 - U-0000FFFF 1110xxxx 10xxxxxx

10xxxxxx bull U-00010000 - U-001FFFFF 11110xxx 10xxxxx

x 10xxxxxx 10xxxxxx bull 在多字节串中第一个字节的开头ldquo 1rdquo 的数目就

是整个串中字节的数目bull 每个使用 UTF-8储存的字符除了第一个字节外其余字节的头两个位元都是以 10 开始使文字处理器能够较快地找出每个字符的开始位置

UTF-16bull UTF-16 是 UTF 的另一种具体编码方式在 ISO 1064

6-1 的附录 Q 和 IETF 的 RFC 2781 里定义bull UTF-16 是变长码( 2 或 4 字节)大致相当于 20位编码值在 0 到 0x10FFFF 之间基本上就是 Unicode 编码的实现 UTF-16 与 CPU 字序有关但因为最省空间常作为网络传输的外码 UTF-16 是 Unicode 的完美编码

bull lt0x10000 的直接用其对应的 16位整数编码位于 0x10000 ~ 0x10FFFF 之间的用 0xD800~0xDBFF 的 16位整数后跟 0xDC00~0xDFFF 的 16位整数的 4 字节编码 gt 0x10FFFF 的不能用 UTF-16 表示

bull 在 Unicode 的 BMP 中定义的字符(无论是拉丁字母汉字或其他文字或符号)一律使用 2 字节存储而在辅助平面定义的字符则以两个 2 字节的值来存储

UTF-16 的特点bull UTF-16比起 UTF-8 的好处在于大部分字符都以固定长

度的 2 字节存储但 UTF-16却无法相容于 ASCII 编码bull UTF-16 有两种编码模式即大尾序( big Endian 高位字节在前)和小尾序( little Endian 高位字节在后)储存形式(一般來說以 Macintosh 制作和存储的文字使用大尾序格式以 Microsoft 或 Linux 制作和存储的文字使用小尾序格式)

bull 为了弄区分 UTF-16 文件的大小尾序在 UTF-16 文件的开头都会放置一个 U+FEFF 字符作为字节顺序标记 (UTF-16LE 以 FF FE代表 UTF-16BE 以 FE FF代表 ) 以显示该文档是以 UTF-16 编码的

UTF-32

bull UTF-32 仅使用了 Unicode范围 (0 到 0x10FFFF) 的 32位编码相当于 UCS-4 的子集

bull 由于 Unicode 和 ISOIEC 10646 的编码和结构与前面讲过的 GB 13000 类似或等价这里就不再做详细的介绍

5支持bull 现在 UnicodeUCS 已经获得了十分广泛的支

持ndash网络与浏览器(如 HTML 4050 XML 与 IE

Safari Netscape Firefox Chrome Opera Edge 等)

ndash操作系统(如 Windows NT2000XPVista7810 Mac OS X iOS Android和 Linux )

ndash 编程语言新版本(如 CC++JavaObjective-CC Swift 等)

Unicode 代码的浏览器显示代码 字符标准名称 (英语 )

浏览器的显示

amp65 大写拉丁字母 A A

amp223 小写拉丁字母 Sharp S szlig

amp254 小写拉丁字母 Thorn thorn

amp916 大写希腊字母 Delta Δ

amp1049 大写斯拉夫字母 Short I Й

amp1511 希伯来字母 Qof ק

amp1605 阿拉伯字母 Meem م

amp3671 泰文数字 7 ๗amp4688 埃塞俄比亚音节文字 Qha ቐ

amp12354 日语平假名 A あamp12450 日语片假名 A アamp21494 简体汉字 叶 叶amp33865 繁体汉字 葉 葉amp50685 韩国音节文字 Yeob 엽

23 文字输出bull 文字输出是指将计算机内的字符编码通过计算机的输出设备(如显示器打印机喇叭)展现出所对应字符的图形或声音供人们阅读或聆听

bull 本节主要介绍文字图示输出的字形技术bull 文字声音输出属于语音合成只在本节的末尾作简单的介绍

231 字形技术bull 文字 = 图形bull 不论是象形文字中的单字还是拼音文字

中的字母都是用图形来表示的bull 在计算机里文字的表示 输出(显示和打

印)涉及ndash 字型ndash 字体ndash 字库

1字型bull 字型指构造和生成字形的方法一般可分为

ndash 点阵字 DOS 显卡 ROM 金山 科印特点似位图显示快占空间(字库大)放大后有马赛克效应

bull 显示字母 88 汉字 1616bull 打印 2424 4848 6464

ndash 矢量字单线条用于笔式绘图仪特点字库小算法简单难看

ndash 轮廓字用曲线描绘字的轮廓输出效果好所见即所得(WYSWYG) 可无级放大易实现空心 阴影 填充 变形等各种特效功能轮廓曲线一般采用样条曲线如 TrueType (Apple 1991 Mac OS Microsoft 1992 Windows 31)用的是二次 B 样条 Bezier曲线中文之星 RichWin采用的是三次 B 样条 Bezier曲线

字型种类

2字体bull 字体指字的形状风格如

ndash 汉字的

ndash 英文的

宋体楷体黑体仿宋

行楷隶书新魏幼圆

Times New Roman Arial Narrow Courier New

常用汉字字体bull 宋体mdashmdash宋体来自于北宋时雕版刻书所采用的欧体字(唐朝欧阳询体)宋体字的横顿拉捺挑钩别具特色间架平正疏密适中字体秀丽遒劲但笔画横细竖粗适合于刀刻不宜于手写现在宋体广泛用于印刷常来表现文档的正文

bull 仿宋体mdashmdash 1920年钱塘的丁辅之与丁善之等人将明代以后盛行的方廓形字体加以改造创造出长形和方形的聚珍仿宋后来演化为现在的仿宋体仿宋体比较接近于手写体为宋体和楷体的折中是采用的宋体的结构和楷体的笔法而成现常来表现打印文件以及文档的摘要和注释等

bull 黑体mdashmdash黑体是适应工艺美术的发展而出现的一种等线体是从日本引进的黑体的结构与宋体没有什么差别只是其笔画粗细一致健实粗壮主要用于文档的标题和重点及标语广告等方面

bull 楷体mdashmdash楷体源于楷书楷体的笔画圆浑笔调灵活结构端正美观但不宜于木板雕刻所以直到清末西洋的石板印刷术传入后才开始广泛用于印刷现代的楷体创造于 20世纪的二三十年代主要用于文档的正文(多用于中小学教材)也可用于工艺美术等方面

3字库bull 字库为一种文字的某一字体的所有字符的集合一般存放在一个磁盘文件中

bull 由于象形文字中单字的数量大(成千上万)而拼音文字中字母的数量小(不到一百个)所以字库的大小有很大的差别

bull 为了使文档界面丰富多彩常见的字处理软件都支持多种字体带有众多字库

4点阵字型的国家标准bull 我国已经公布了若干字体的点阵字型之国家标准

ndash GB 50071-19852001 信息技术 汉字编码字符集(基本集) 24 点阵字型

ndash GB 50072-19852001 信息技术 汉字编码字符集(辅助集) 24 点阵字型

ndash GB 5199-19862001 信息技术 汉字编码字符集(基本集) 16 点阵字型 宋体

ndash GB 6345-19862001 信息技术 汉字编码字符集(基本集) 32 点阵字型 宋体

ndash GB 12041-2001 信息技术 汉字编码字符集(基本集) 48点阵字型 宋体

ndash GB 17698-1999 信息技术 通用多八位编码字符集( I 区) 汉字 16 点阵字型

232 语音合成bull 文字的声音输出主要使用的是语音合成的技术bull 语音合成功能是ldquo文rarr语rdquo转换bull 文语转换 TTS (Text-To-Speech) 是将文本形式的信息转换成自然语音的一种技术其最终目标是使计算机输出清晰而又自然的声音

bull 英语的语音合成在上世纪 80年代就早已成熟而中文 汉语的合成现在也趋于成熟并有了广泛的应用(如汽车导航仪智能手机等)

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 64: 第一篇  媒体

1 Unicode 统一码bull 发展历史

ndash 1987年施乐( Xerox )公司的 Joe Becker 与 Lee Collins 和苹果( Apple )公司的 Mark Davis 等人开始讨论统一编码 1987年 12月 Joe Becker造词 Unicode (统一码)含义为ldquo unique universal and uniform character encodingrdquo (单一通用统一的字符编码) 1989年 2月开始定期召开统一码会议 1989年 9月公布 Unicode草案

ndash 1991年 1月 3 日由 Xerox Apple Sun IBM Aldis Microsoft 等公司出资在美国加州成立了统一码协会( Unicode Consortium )并由协会设立非盈利性的统一码公司( Unicode Inc )后来 HP Adobe Borland Digital Lotus Novell 等公司也纷纷加入 1991年 1月成立统一码技术委员会 UTC 并制定了其规程

ndash 1991年 2月在 Ed Hart 的推动下进行了ldquo统一码对 10464 国际标准草案 1rdquo 的对话Unicode 与 ISOIEC 10646开始走向融合

ndash 1991年 8月发布 Unicode 标准 10版的第 1卷(体系结构非表意字符) 1992年6月发表 Unicode 10版的第 2卷(表意字符) 1993年 6月发布 Unicode 11版与 1993年 5月公布的 ISOIEC 10646-11993 实现了合并

ndash 1996年 7月发布 Unicode 20版ndash 1999年 9月发布 Unicode 30版ndash 2003年 4月发布 Unicode 40版(对应于 ISOIEC 106462003 ) 2004年 3月 31日发布 Unicode 401版 2005年 3月 31日发布 Unicode 410版

ndash 2006年 7月 14日发布 Unicode 50版 2008年 4月 4日发布 Unicode 51版 2009年 12月 22日发布 Unicode 52版

ndash 2010年 10月发布 Unicode 60版 2012年 1月发布 Unicode 61版(对应于 ISOIEC 106462012 ) 2012年 9月推出 Unicode 62版 2013年 9月推出 Unicode 63版

ndash 2014年 6月 16日发布 Unicode 70版 ndash 2015年 6月 17日发布 Unicode 80版

字符集bull Unicode 字符集的空间分成双字节的基本多语言平面 (Basic Multilingual Pla

ne BMP) 和 4 字节的辅助多语言平面 (Supplementary Multilingual Plane SMP) 两种

bull BMPndash Unicode 的基本平面或基本多语言平面 BMP 对应于 ISOIEC 10646-1 的第 00组的 00 平面( BMP )即 Unicode 与 ISOIEC 10646 的 BMP 中的字符编码完全一致

bull SMPndash 鉴于 Unicode 原有的 16位元空间不足以应用从 Unicode 31版本开始设立了 16 个辅助平面使 Unicode 的可使用空间由六万多字增至约一百万字

ndash 原有的 Unicode双字节空间称为基本平面或基本多语言平面 BMP 辅助多语言平面 SMP 字符要用 4 字节来储存

ndash 第一辅助平面摆放拼音文字(主要为现时已不再使用的文字)及符号范围在 U+10000 - U+1FFFD

ndash 第二辅助平面又称为表意文字补充平面 (Supplementary Ideographic Plane 简称 SIP) 现时摆放ldquo中日韩统汉字扩展 B 区rdquo共 43253 个汉字范围在 U+20000 - U+2FFFD

ndash 第三至十三辅助平面尚未使用ndash 第十四辅助平面又称为特殊用途补充平面 (Supplementary Special-purpose Pl

ane 简称 SSP) 摆放 Language tags 和 Variation Selectors 它们都是控制字符范围在 U+E0000 - U+E01FF

ndash 第十五至十六辅助平面都是私人使用区它们的范围是 U+F0000 - U+FFFFD 及 U+100000 - U+1000FD

bull Unicode 字符集的具体编码方式参加第 4小节ldquo 4 UTFrdquo

2 ISOIEC 10646

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull ISOIEC 10646 标准由 ISO 与 IEC 联合成立的 ISOIEC JTC1SC2WG2 制定ndash JTC 1 ( Joint Technical Committee 1 on Information

technology ISOIEC信息技术联合技术委员会 1 )负责信息技术方面标准的制定工作

ndash SC 2 ( SubCommittee 2 on Coded character sets 编码字符集分会 2 )下的 WG 2 ( Working Group 2 on Universal coded character set 通用编码字符集工作组 2 )负责制定国际通用字符编码标准即后来公布的 ISOIEC 10646

发展历史bull 1984年 ISO 的一些会员国发起制定新的国际字符编码标准同年 4月 ISO

与 IEC 联合成立 ISOIEC JTC1SC2WG2 1987年 3月制定出编码架构1992年 6月投票通过第二版国际标准草案

bull 1993年 5月推出 10646 标准时将内容分成两个部分标准首先发布的是其中的第 1 个部分(体系结构与基本多文种平面)的第 1版( Edition 1 ) ISOIEC 10646-11993 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane(信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

bull 2000年 3月推出 10646 标准第一个部分的第 2版( Edition 2 ) ISOIEC 10646-12000 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane

bull 2001年 10月推出 10646 标准第 2版的第二个部分(辅助平面)的第 1版( Edition 1 ) ISOIEC 10646-22001 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 2 Supplementary Planes

bull 2003年 10月推出的 10646新标准(第 1版 Edition 1 )将老标准中的两个部分标准合并成了一个单一的标准 ISOIEC 106462003 Information technology -- Universal Multiple- Octet Coded Character Set (UCS) 后来又于 2010年 2012年和 2014年分别推出了 ISOIEC 106462010 (第 2版)ISOIEC 106462012 (第 3版)和 ISOIEC 106462014 (第 4版)

UCS 通用字符集bull 通用字符集( Universal Character Set UCS )是

ISOIEC 10646 标准所定义的字符编码方式采用 4字节编码又称为 Universal Multiple-Octet Coded Character Set (通用多八位编码字符集)

bull 通用字符集是所有包括了其他字符集它保证了与其他字符集的双向兼容即如果你将任何文本字符串翻译到 UCS 格式然后再翻译回原编码你不会丢失任何信息

bull UCS 包含了已知语言的所有字符除了拉丁语希腊语斯拉夫语希伯来语阿拉伯语亚美尼亚语格鲁吉亚语还包括中文日文韩文这样的象形文字 UCS 还包括大量的图形印刷数学科学符号

名字与组合字符bull UCS 不仅给每个字符分配一个代码而且赋予了

一个正式的名字表示一个 UCS 或 Unicode值的十六进制数通常在前面加上ldquo U+rdquo 例如ldquo U+0041rdquo代表字符ldquo Ardquo

bull UCS里有些编码点分配给了组合字符组合字符机制允许在任何字符后加上重音符或其他指示标记 这在科学符号中特别有用 比如数学方程式和国际音标字母 可能会需要在一个基本字符后组合上一个或多个指示标记

实现级别bull 并不是所有的系统都需要支持像组合字符这样的的先进

机制因此 ISO 10646 指定了如下三种实现级别ndash 级别 1不支持组合字符和韩语 Hangul Jamo 字符 ( 一种特

别的 更加复杂的韩国文的编码 使用两个或三个子字符来编码一个韩文音节 )

ndash 级别 2类似于级别 1 但在某些文字中允许一列固定的组合字符 (例如 希伯来文 阿拉伯文 Devangari 孟加拉语 果鲁穆奇语 Gujarati Oriya 泰米尔语 Telugo 印 埃纳德语 Malayalam 泰国语和老挝语 ) 因为如果没有最起码的几个组合字符 UCS就不能完整地表达这些语言

ndash 级别 3支持所有的 UCS 字符如可以在任意一个字符上加上一个箭头或 和一个 tilde(颚化符号即字母上面的~ )

编码方式bull UCS 有如下两种编码方式

ndash UCS-2与 Unicode 的 2 字节编码基本一样ndash UCS-4 4 字节编码目前是在 UCS-2 前加

上 2 个全零的字节bull UCS 还有 UTF 编码方式参见下面第 4小节ldquo 4 UTFrdquo

3 Unicode 与 ISOIEC 10646bull 关系

ndash 历史上存在两个独立的尝试创立单一字符集的组织即国际标准化组织( ISO )和多语言软件制造商组成的统一码协会组织( Unicodeorg )前者开发的 ISO 10646项目后者开发的 Unicode项目因此最初制定了不同的标准

ndash 1991年前后两个项目的参与者都认识到世界不需要两个不兼容的字符集于是它们开始合并双方的工作成果并为创立一个单一编码表而协同工作

ndash 从 Unicode20开始 Unicode采用了与 ISO 10646-1相同的字库和字码 ISO 也承诺 ISO10646 将不会替超出 U+10FFFF 的 UCS-4 编码赋值以使得两者保持一致

ndash 两个项目仍都存在并独立地公布各自的标准但 Unicode协会和 ISOIEC JTC1SC2 都同意保持两者标准的码表兼容并紧密地共同调整任何未来的扩展

异同bull Unicode协会公布的 Unicode 标准包含了 ISO 10646-1 实现级别

3 的基本多文种平面在两个标准里所有的字符都在相同的位置并且有相同的名字

bull ISO 10646 标准就像 ISO 8859 标准一样只不过是一个简单的字符集表它定义了一些编码的别名指定了一些与标准有关的术语并包括了规范说明指定了怎样使用 UCS连接其他 ISO 标准的实现等

bull Unicode 标准额外定义了许多与字符有关的语义符号学并详细说明了绘制某些语言(如阿拉伯语)表达形式的算法处理双向文字(比如拉丁文和希伯来文的混合文字)的算法排序与字符串比较所需的算法等等

bull 考虑到 Unicode 标准有一个易记的名字既便宜又包括更多的辅助信息因而它使用得更广泛然而

bull 一般认为用于打印 ISO 10646-1 标准的字体在某些方面的质量要高于用于打印 Unicode 20 的专业字体设计者总是被建议说要两个标准都实现但一些提供的样例字形有显著的区别 ISO 10646-1 标准同样使用四种不同的风格变体来显示表意文字如中文日文和韩文 (CJK) 而 Unicode 20 的表里只有中文的变体

4 UTFbull Unicode 和 UCS 都是一个字符集可以看作为内码bull UTF ( UnicodeUCS Transformation Format 统一码

通用字符集转换格式)是一种编码方式它的出现是因为 Unicode 和 UCS 不适宜在某些场合直接传输和处理

bull UCS 和 Unicode 只是分配整数给字符的编码表现在存在好几种将一串字符表示为一串字节的方法(如高或低位字节在前)

bull 最显而易见的两种方法是将 UCS 和 Unicode 文本存储为 2 个 或 4 个字节序列的串这两种方法的正式名称分别为 UCS-2 和 UCS-4

bull 常用的 UTF具体编码方式有 UTF-8 UTF-16 和 UTF-32

UTF-8

bull UTF-8 是 UTF 的一种具体编码方式在 ISO 10646-1 的附录 R 和 IETF 的 RFC 2279 里定义

bull 由于要使文档中的文字与 ASCII兼容故 UTF-8 选择了使用可变长度字节来储存 Unicode 和 UCS 例如ndash ASCII 字母继续使用 1 字节储存ndash 重音文字希腊字母或西里尔字母等使用 2 字节来储存ndash 常用的汉字就要使用 3 字节ndash 辅助平面字符则使用 4 字节ndash 即 ASCII 不作变换其他字符做变长编码每个字符 1~4 字节

bull UTF-8 通常作为外码bull 在 UTF-8 文件的开首很多时都放置一个 U+FEFF 字符

(UTF-8 以 EF BB BF 代表 ) 以显示这个文字档案是以UTF-8 编码

UTF-8 的优点bull 与 CPU 字节顺序无关可以在不同平台之间交流

bull 容错能力高任何一个字节损坏后最多只会导致一个编码码位损失不会链锁错误 ( 如 GB 码错一个字节就会整行乱码 )

UTF-8 的缺点bull UTF-8 使用可变长度字节储存使计算机程序设计变得复杂 (故此在计算机程序或操作系统内部多采用 UCS-2 编码 )

bull 在旧式的中文日文及朝鲜文编码之中每字符都使用 2 字节储存而 UTF-8 须使用 3 字节 (采用 UTF-16 编码则可只使用 2字节储存 )

bull 泰语以往使用的 ISO 8859-11 每字符只使用 1 字节储存而 UTF-8 须使用 3 字节

UTF-8储存的多字节串字符bull U-00000000 - U-0000007F 0xxxxxxx bull U-00000080 - U-000007FF 110xxxxx 10xxxxxx

bull U-00000800 - U-0000FFFF 1110xxxx 10xxxxxx

10xxxxxx bull U-00010000 - U-001FFFFF 11110xxx 10xxxxx

x 10xxxxxx 10xxxxxx bull 在多字节串中第一个字节的开头ldquo 1rdquo 的数目就

是整个串中字节的数目bull 每个使用 UTF-8储存的字符除了第一个字节外其余字节的头两个位元都是以 10 开始使文字处理器能够较快地找出每个字符的开始位置

UTF-16bull UTF-16 是 UTF 的另一种具体编码方式在 ISO 1064

6-1 的附录 Q 和 IETF 的 RFC 2781 里定义bull UTF-16 是变长码( 2 或 4 字节)大致相当于 20位编码值在 0 到 0x10FFFF 之间基本上就是 Unicode 编码的实现 UTF-16 与 CPU 字序有关但因为最省空间常作为网络传输的外码 UTF-16 是 Unicode 的完美编码

bull lt0x10000 的直接用其对应的 16位整数编码位于 0x10000 ~ 0x10FFFF 之间的用 0xD800~0xDBFF 的 16位整数后跟 0xDC00~0xDFFF 的 16位整数的 4 字节编码 gt 0x10FFFF 的不能用 UTF-16 表示

bull 在 Unicode 的 BMP 中定义的字符(无论是拉丁字母汉字或其他文字或符号)一律使用 2 字节存储而在辅助平面定义的字符则以两个 2 字节的值来存储

UTF-16 的特点bull UTF-16比起 UTF-8 的好处在于大部分字符都以固定长

度的 2 字节存储但 UTF-16却无法相容于 ASCII 编码bull UTF-16 有两种编码模式即大尾序( big Endian 高位字节在前)和小尾序( little Endian 高位字节在后)储存形式(一般來說以 Macintosh 制作和存储的文字使用大尾序格式以 Microsoft 或 Linux 制作和存储的文字使用小尾序格式)

bull 为了弄区分 UTF-16 文件的大小尾序在 UTF-16 文件的开头都会放置一个 U+FEFF 字符作为字节顺序标记 (UTF-16LE 以 FF FE代表 UTF-16BE 以 FE FF代表 ) 以显示该文档是以 UTF-16 编码的

UTF-32

bull UTF-32 仅使用了 Unicode范围 (0 到 0x10FFFF) 的 32位编码相当于 UCS-4 的子集

bull 由于 Unicode 和 ISOIEC 10646 的编码和结构与前面讲过的 GB 13000 类似或等价这里就不再做详细的介绍

5支持bull 现在 UnicodeUCS 已经获得了十分广泛的支

持ndash网络与浏览器(如 HTML 4050 XML 与 IE

Safari Netscape Firefox Chrome Opera Edge 等)

ndash操作系统(如 Windows NT2000XPVista7810 Mac OS X iOS Android和 Linux )

ndash 编程语言新版本(如 CC++JavaObjective-CC Swift 等)

Unicode 代码的浏览器显示代码 字符标准名称 (英语 )

浏览器的显示

amp65 大写拉丁字母 A A

amp223 小写拉丁字母 Sharp S szlig

amp254 小写拉丁字母 Thorn thorn

amp916 大写希腊字母 Delta Δ

amp1049 大写斯拉夫字母 Short I Й

amp1511 希伯来字母 Qof ק

amp1605 阿拉伯字母 Meem م

amp3671 泰文数字 7 ๗amp4688 埃塞俄比亚音节文字 Qha ቐ

amp12354 日语平假名 A あamp12450 日语片假名 A アamp21494 简体汉字 叶 叶amp33865 繁体汉字 葉 葉amp50685 韩国音节文字 Yeob 엽

23 文字输出bull 文字输出是指将计算机内的字符编码通过计算机的输出设备(如显示器打印机喇叭)展现出所对应字符的图形或声音供人们阅读或聆听

bull 本节主要介绍文字图示输出的字形技术bull 文字声音输出属于语音合成只在本节的末尾作简单的介绍

231 字形技术bull 文字 = 图形bull 不论是象形文字中的单字还是拼音文字

中的字母都是用图形来表示的bull 在计算机里文字的表示 输出(显示和打

印)涉及ndash 字型ndash 字体ndash 字库

1字型bull 字型指构造和生成字形的方法一般可分为

ndash 点阵字 DOS 显卡 ROM 金山 科印特点似位图显示快占空间(字库大)放大后有马赛克效应

bull 显示字母 88 汉字 1616bull 打印 2424 4848 6464

ndash 矢量字单线条用于笔式绘图仪特点字库小算法简单难看

ndash 轮廓字用曲线描绘字的轮廓输出效果好所见即所得(WYSWYG) 可无级放大易实现空心 阴影 填充 变形等各种特效功能轮廓曲线一般采用样条曲线如 TrueType (Apple 1991 Mac OS Microsoft 1992 Windows 31)用的是二次 B 样条 Bezier曲线中文之星 RichWin采用的是三次 B 样条 Bezier曲线

字型种类

2字体bull 字体指字的形状风格如

ndash 汉字的

ndash 英文的

宋体楷体黑体仿宋

行楷隶书新魏幼圆

Times New Roman Arial Narrow Courier New

常用汉字字体bull 宋体mdashmdash宋体来自于北宋时雕版刻书所采用的欧体字(唐朝欧阳询体)宋体字的横顿拉捺挑钩别具特色间架平正疏密适中字体秀丽遒劲但笔画横细竖粗适合于刀刻不宜于手写现在宋体广泛用于印刷常来表现文档的正文

bull 仿宋体mdashmdash 1920年钱塘的丁辅之与丁善之等人将明代以后盛行的方廓形字体加以改造创造出长形和方形的聚珍仿宋后来演化为现在的仿宋体仿宋体比较接近于手写体为宋体和楷体的折中是采用的宋体的结构和楷体的笔法而成现常来表现打印文件以及文档的摘要和注释等

bull 黑体mdashmdash黑体是适应工艺美术的发展而出现的一种等线体是从日本引进的黑体的结构与宋体没有什么差别只是其笔画粗细一致健实粗壮主要用于文档的标题和重点及标语广告等方面

bull 楷体mdashmdash楷体源于楷书楷体的笔画圆浑笔调灵活结构端正美观但不宜于木板雕刻所以直到清末西洋的石板印刷术传入后才开始广泛用于印刷现代的楷体创造于 20世纪的二三十年代主要用于文档的正文(多用于中小学教材)也可用于工艺美术等方面

3字库bull 字库为一种文字的某一字体的所有字符的集合一般存放在一个磁盘文件中

bull 由于象形文字中单字的数量大(成千上万)而拼音文字中字母的数量小(不到一百个)所以字库的大小有很大的差别

bull 为了使文档界面丰富多彩常见的字处理软件都支持多种字体带有众多字库

4点阵字型的国家标准bull 我国已经公布了若干字体的点阵字型之国家标准

ndash GB 50071-19852001 信息技术 汉字编码字符集(基本集) 24 点阵字型

ndash GB 50072-19852001 信息技术 汉字编码字符集(辅助集) 24 点阵字型

ndash GB 5199-19862001 信息技术 汉字编码字符集(基本集) 16 点阵字型 宋体

ndash GB 6345-19862001 信息技术 汉字编码字符集(基本集) 32 点阵字型 宋体

ndash GB 12041-2001 信息技术 汉字编码字符集(基本集) 48点阵字型 宋体

ndash GB 17698-1999 信息技术 通用多八位编码字符集( I 区) 汉字 16 点阵字型

232 语音合成bull 文字的声音输出主要使用的是语音合成的技术bull 语音合成功能是ldquo文rarr语rdquo转换bull 文语转换 TTS (Text-To-Speech) 是将文本形式的信息转换成自然语音的一种技术其最终目标是使计算机输出清晰而又自然的声音

bull 英语的语音合成在上世纪 80年代就早已成熟而中文 汉语的合成现在也趋于成熟并有了广泛的应用(如汽车导航仪智能手机等)

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 65: 第一篇  媒体

字符集bull Unicode 字符集的空间分成双字节的基本多语言平面 (Basic Multilingual Pla

ne BMP) 和 4 字节的辅助多语言平面 (Supplementary Multilingual Plane SMP) 两种

bull BMPndash Unicode 的基本平面或基本多语言平面 BMP 对应于 ISOIEC 10646-1 的第 00组的 00 平面( BMP )即 Unicode 与 ISOIEC 10646 的 BMP 中的字符编码完全一致

bull SMPndash 鉴于 Unicode 原有的 16位元空间不足以应用从 Unicode 31版本开始设立了 16 个辅助平面使 Unicode 的可使用空间由六万多字增至约一百万字

ndash 原有的 Unicode双字节空间称为基本平面或基本多语言平面 BMP 辅助多语言平面 SMP 字符要用 4 字节来储存

ndash 第一辅助平面摆放拼音文字(主要为现时已不再使用的文字)及符号范围在 U+10000 - U+1FFFD

ndash 第二辅助平面又称为表意文字补充平面 (Supplementary Ideographic Plane 简称 SIP) 现时摆放ldquo中日韩统汉字扩展 B 区rdquo共 43253 个汉字范围在 U+20000 - U+2FFFD

ndash 第三至十三辅助平面尚未使用ndash 第十四辅助平面又称为特殊用途补充平面 (Supplementary Special-purpose Pl

ane 简称 SSP) 摆放 Language tags 和 Variation Selectors 它们都是控制字符范围在 U+E0000 - U+E01FF

ndash 第十五至十六辅助平面都是私人使用区它们的范围是 U+F0000 - U+FFFFD 及 U+100000 - U+1000FD

bull Unicode 字符集的具体编码方式参加第 4小节ldquo 4 UTFrdquo

2 ISOIEC 10646

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull ISOIEC 10646 标准由 ISO 与 IEC 联合成立的 ISOIEC JTC1SC2WG2 制定ndash JTC 1 ( Joint Technical Committee 1 on Information

technology ISOIEC信息技术联合技术委员会 1 )负责信息技术方面标准的制定工作

ndash SC 2 ( SubCommittee 2 on Coded character sets 编码字符集分会 2 )下的 WG 2 ( Working Group 2 on Universal coded character set 通用编码字符集工作组 2 )负责制定国际通用字符编码标准即后来公布的 ISOIEC 10646

发展历史bull 1984年 ISO 的一些会员国发起制定新的国际字符编码标准同年 4月 ISO

与 IEC 联合成立 ISOIEC JTC1SC2WG2 1987年 3月制定出编码架构1992年 6月投票通过第二版国际标准草案

bull 1993年 5月推出 10646 标准时将内容分成两个部分标准首先发布的是其中的第 1 个部分(体系结构与基本多文种平面)的第 1版( Edition 1 ) ISOIEC 10646-11993 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane(信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

bull 2000年 3月推出 10646 标准第一个部分的第 2版( Edition 2 ) ISOIEC 10646-12000 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane

bull 2001年 10月推出 10646 标准第 2版的第二个部分(辅助平面)的第 1版( Edition 1 ) ISOIEC 10646-22001 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 2 Supplementary Planes

bull 2003年 10月推出的 10646新标准(第 1版 Edition 1 )将老标准中的两个部分标准合并成了一个单一的标准 ISOIEC 106462003 Information technology -- Universal Multiple- Octet Coded Character Set (UCS) 后来又于 2010年 2012年和 2014年分别推出了 ISOIEC 106462010 (第 2版)ISOIEC 106462012 (第 3版)和 ISOIEC 106462014 (第 4版)

UCS 通用字符集bull 通用字符集( Universal Character Set UCS )是

ISOIEC 10646 标准所定义的字符编码方式采用 4字节编码又称为 Universal Multiple-Octet Coded Character Set (通用多八位编码字符集)

bull 通用字符集是所有包括了其他字符集它保证了与其他字符集的双向兼容即如果你将任何文本字符串翻译到 UCS 格式然后再翻译回原编码你不会丢失任何信息

bull UCS 包含了已知语言的所有字符除了拉丁语希腊语斯拉夫语希伯来语阿拉伯语亚美尼亚语格鲁吉亚语还包括中文日文韩文这样的象形文字 UCS 还包括大量的图形印刷数学科学符号

名字与组合字符bull UCS 不仅给每个字符分配一个代码而且赋予了

一个正式的名字表示一个 UCS 或 Unicode值的十六进制数通常在前面加上ldquo U+rdquo 例如ldquo U+0041rdquo代表字符ldquo Ardquo

bull UCS里有些编码点分配给了组合字符组合字符机制允许在任何字符后加上重音符或其他指示标记 这在科学符号中特别有用 比如数学方程式和国际音标字母 可能会需要在一个基本字符后组合上一个或多个指示标记

实现级别bull 并不是所有的系统都需要支持像组合字符这样的的先进

机制因此 ISO 10646 指定了如下三种实现级别ndash 级别 1不支持组合字符和韩语 Hangul Jamo 字符 ( 一种特

别的 更加复杂的韩国文的编码 使用两个或三个子字符来编码一个韩文音节 )

ndash 级别 2类似于级别 1 但在某些文字中允许一列固定的组合字符 (例如 希伯来文 阿拉伯文 Devangari 孟加拉语 果鲁穆奇语 Gujarati Oriya 泰米尔语 Telugo 印 埃纳德语 Malayalam 泰国语和老挝语 ) 因为如果没有最起码的几个组合字符 UCS就不能完整地表达这些语言

ndash 级别 3支持所有的 UCS 字符如可以在任意一个字符上加上一个箭头或 和一个 tilde(颚化符号即字母上面的~ )

编码方式bull UCS 有如下两种编码方式

ndash UCS-2与 Unicode 的 2 字节编码基本一样ndash UCS-4 4 字节编码目前是在 UCS-2 前加

上 2 个全零的字节bull UCS 还有 UTF 编码方式参见下面第 4小节ldquo 4 UTFrdquo

3 Unicode 与 ISOIEC 10646bull 关系

ndash 历史上存在两个独立的尝试创立单一字符集的组织即国际标准化组织( ISO )和多语言软件制造商组成的统一码协会组织( Unicodeorg )前者开发的 ISO 10646项目后者开发的 Unicode项目因此最初制定了不同的标准

ndash 1991年前后两个项目的参与者都认识到世界不需要两个不兼容的字符集于是它们开始合并双方的工作成果并为创立一个单一编码表而协同工作

ndash 从 Unicode20开始 Unicode采用了与 ISO 10646-1相同的字库和字码 ISO 也承诺 ISO10646 将不会替超出 U+10FFFF 的 UCS-4 编码赋值以使得两者保持一致

ndash 两个项目仍都存在并独立地公布各自的标准但 Unicode协会和 ISOIEC JTC1SC2 都同意保持两者标准的码表兼容并紧密地共同调整任何未来的扩展

异同bull Unicode协会公布的 Unicode 标准包含了 ISO 10646-1 实现级别

3 的基本多文种平面在两个标准里所有的字符都在相同的位置并且有相同的名字

bull ISO 10646 标准就像 ISO 8859 标准一样只不过是一个简单的字符集表它定义了一些编码的别名指定了一些与标准有关的术语并包括了规范说明指定了怎样使用 UCS连接其他 ISO 标准的实现等

bull Unicode 标准额外定义了许多与字符有关的语义符号学并详细说明了绘制某些语言(如阿拉伯语)表达形式的算法处理双向文字(比如拉丁文和希伯来文的混合文字)的算法排序与字符串比较所需的算法等等

bull 考虑到 Unicode 标准有一个易记的名字既便宜又包括更多的辅助信息因而它使用得更广泛然而

bull 一般认为用于打印 ISO 10646-1 标准的字体在某些方面的质量要高于用于打印 Unicode 20 的专业字体设计者总是被建议说要两个标准都实现但一些提供的样例字形有显著的区别 ISO 10646-1 标准同样使用四种不同的风格变体来显示表意文字如中文日文和韩文 (CJK) 而 Unicode 20 的表里只有中文的变体

4 UTFbull Unicode 和 UCS 都是一个字符集可以看作为内码bull UTF ( UnicodeUCS Transformation Format 统一码

通用字符集转换格式)是一种编码方式它的出现是因为 Unicode 和 UCS 不适宜在某些场合直接传输和处理

bull UCS 和 Unicode 只是分配整数给字符的编码表现在存在好几种将一串字符表示为一串字节的方法(如高或低位字节在前)

bull 最显而易见的两种方法是将 UCS 和 Unicode 文本存储为 2 个 或 4 个字节序列的串这两种方法的正式名称分别为 UCS-2 和 UCS-4

bull 常用的 UTF具体编码方式有 UTF-8 UTF-16 和 UTF-32

UTF-8

bull UTF-8 是 UTF 的一种具体编码方式在 ISO 10646-1 的附录 R 和 IETF 的 RFC 2279 里定义

bull 由于要使文档中的文字与 ASCII兼容故 UTF-8 选择了使用可变长度字节来储存 Unicode 和 UCS 例如ndash ASCII 字母继续使用 1 字节储存ndash 重音文字希腊字母或西里尔字母等使用 2 字节来储存ndash 常用的汉字就要使用 3 字节ndash 辅助平面字符则使用 4 字节ndash 即 ASCII 不作变换其他字符做变长编码每个字符 1~4 字节

bull UTF-8 通常作为外码bull 在 UTF-8 文件的开首很多时都放置一个 U+FEFF 字符

(UTF-8 以 EF BB BF 代表 ) 以显示这个文字档案是以UTF-8 编码

UTF-8 的优点bull 与 CPU 字节顺序无关可以在不同平台之间交流

bull 容错能力高任何一个字节损坏后最多只会导致一个编码码位损失不会链锁错误 ( 如 GB 码错一个字节就会整行乱码 )

UTF-8 的缺点bull UTF-8 使用可变长度字节储存使计算机程序设计变得复杂 (故此在计算机程序或操作系统内部多采用 UCS-2 编码 )

bull 在旧式的中文日文及朝鲜文编码之中每字符都使用 2 字节储存而 UTF-8 须使用 3 字节 (采用 UTF-16 编码则可只使用 2字节储存 )

bull 泰语以往使用的 ISO 8859-11 每字符只使用 1 字节储存而 UTF-8 须使用 3 字节

UTF-8储存的多字节串字符bull U-00000000 - U-0000007F 0xxxxxxx bull U-00000080 - U-000007FF 110xxxxx 10xxxxxx

bull U-00000800 - U-0000FFFF 1110xxxx 10xxxxxx

10xxxxxx bull U-00010000 - U-001FFFFF 11110xxx 10xxxxx

x 10xxxxxx 10xxxxxx bull 在多字节串中第一个字节的开头ldquo 1rdquo 的数目就

是整个串中字节的数目bull 每个使用 UTF-8储存的字符除了第一个字节外其余字节的头两个位元都是以 10 开始使文字处理器能够较快地找出每个字符的开始位置

UTF-16bull UTF-16 是 UTF 的另一种具体编码方式在 ISO 1064

6-1 的附录 Q 和 IETF 的 RFC 2781 里定义bull UTF-16 是变长码( 2 或 4 字节)大致相当于 20位编码值在 0 到 0x10FFFF 之间基本上就是 Unicode 编码的实现 UTF-16 与 CPU 字序有关但因为最省空间常作为网络传输的外码 UTF-16 是 Unicode 的完美编码

bull lt0x10000 的直接用其对应的 16位整数编码位于 0x10000 ~ 0x10FFFF 之间的用 0xD800~0xDBFF 的 16位整数后跟 0xDC00~0xDFFF 的 16位整数的 4 字节编码 gt 0x10FFFF 的不能用 UTF-16 表示

bull 在 Unicode 的 BMP 中定义的字符(无论是拉丁字母汉字或其他文字或符号)一律使用 2 字节存储而在辅助平面定义的字符则以两个 2 字节的值来存储

UTF-16 的特点bull UTF-16比起 UTF-8 的好处在于大部分字符都以固定长

度的 2 字节存储但 UTF-16却无法相容于 ASCII 编码bull UTF-16 有两种编码模式即大尾序( big Endian 高位字节在前)和小尾序( little Endian 高位字节在后)储存形式(一般來說以 Macintosh 制作和存储的文字使用大尾序格式以 Microsoft 或 Linux 制作和存储的文字使用小尾序格式)

bull 为了弄区分 UTF-16 文件的大小尾序在 UTF-16 文件的开头都会放置一个 U+FEFF 字符作为字节顺序标记 (UTF-16LE 以 FF FE代表 UTF-16BE 以 FE FF代表 ) 以显示该文档是以 UTF-16 编码的

UTF-32

bull UTF-32 仅使用了 Unicode范围 (0 到 0x10FFFF) 的 32位编码相当于 UCS-4 的子集

bull 由于 Unicode 和 ISOIEC 10646 的编码和结构与前面讲过的 GB 13000 类似或等价这里就不再做详细的介绍

5支持bull 现在 UnicodeUCS 已经获得了十分广泛的支

持ndash网络与浏览器(如 HTML 4050 XML 与 IE

Safari Netscape Firefox Chrome Opera Edge 等)

ndash操作系统(如 Windows NT2000XPVista7810 Mac OS X iOS Android和 Linux )

ndash 编程语言新版本(如 CC++JavaObjective-CC Swift 等)

Unicode 代码的浏览器显示代码 字符标准名称 (英语 )

浏览器的显示

amp65 大写拉丁字母 A A

amp223 小写拉丁字母 Sharp S szlig

amp254 小写拉丁字母 Thorn thorn

amp916 大写希腊字母 Delta Δ

amp1049 大写斯拉夫字母 Short I Й

amp1511 希伯来字母 Qof ק

amp1605 阿拉伯字母 Meem م

amp3671 泰文数字 7 ๗amp4688 埃塞俄比亚音节文字 Qha ቐ

amp12354 日语平假名 A あamp12450 日语片假名 A アamp21494 简体汉字 叶 叶amp33865 繁体汉字 葉 葉amp50685 韩国音节文字 Yeob 엽

23 文字输出bull 文字输出是指将计算机内的字符编码通过计算机的输出设备(如显示器打印机喇叭)展现出所对应字符的图形或声音供人们阅读或聆听

bull 本节主要介绍文字图示输出的字形技术bull 文字声音输出属于语音合成只在本节的末尾作简单的介绍

231 字形技术bull 文字 = 图形bull 不论是象形文字中的单字还是拼音文字

中的字母都是用图形来表示的bull 在计算机里文字的表示 输出(显示和打

印)涉及ndash 字型ndash 字体ndash 字库

1字型bull 字型指构造和生成字形的方法一般可分为

ndash 点阵字 DOS 显卡 ROM 金山 科印特点似位图显示快占空间(字库大)放大后有马赛克效应

bull 显示字母 88 汉字 1616bull 打印 2424 4848 6464

ndash 矢量字单线条用于笔式绘图仪特点字库小算法简单难看

ndash 轮廓字用曲线描绘字的轮廓输出效果好所见即所得(WYSWYG) 可无级放大易实现空心 阴影 填充 变形等各种特效功能轮廓曲线一般采用样条曲线如 TrueType (Apple 1991 Mac OS Microsoft 1992 Windows 31)用的是二次 B 样条 Bezier曲线中文之星 RichWin采用的是三次 B 样条 Bezier曲线

字型种类

2字体bull 字体指字的形状风格如

ndash 汉字的

ndash 英文的

宋体楷体黑体仿宋

行楷隶书新魏幼圆

Times New Roman Arial Narrow Courier New

常用汉字字体bull 宋体mdashmdash宋体来自于北宋时雕版刻书所采用的欧体字(唐朝欧阳询体)宋体字的横顿拉捺挑钩别具特色间架平正疏密适中字体秀丽遒劲但笔画横细竖粗适合于刀刻不宜于手写现在宋体广泛用于印刷常来表现文档的正文

bull 仿宋体mdashmdash 1920年钱塘的丁辅之与丁善之等人将明代以后盛行的方廓形字体加以改造创造出长形和方形的聚珍仿宋后来演化为现在的仿宋体仿宋体比较接近于手写体为宋体和楷体的折中是采用的宋体的结构和楷体的笔法而成现常来表现打印文件以及文档的摘要和注释等

bull 黑体mdashmdash黑体是适应工艺美术的发展而出现的一种等线体是从日本引进的黑体的结构与宋体没有什么差别只是其笔画粗细一致健实粗壮主要用于文档的标题和重点及标语广告等方面

bull 楷体mdashmdash楷体源于楷书楷体的笔画圆浑笔调灵活结构端正美观但不宜于木板雕刻所以直到清末西洋的石板印刷术传入后才开始广泛用于印刷现代的楷体创造于 20世纪的二三十年代主要用于文档的正文(多用于中小学教材)也可用于工艺美术等方面

3字库bull 字库为一种文字的某一字体的所有字符的集合一般存放在一个磁盘文件中

bull 由于象形文字中单字的数量大(成千上万)而拼音文字中字母的数量小(不到一百个)所以字库的大小有很大的差别

bull 为了使文档界面丰富多彩常见的字处理软件都支持多种字体带有众多字库

4点阵字型的国家标准bull 我国已经公布了若干字体的点阵字型之国家标准

ndash GB 50071-19852001 信息技术 汉字编码字符集(基本集) 24 点阵字型

ndash GB 50072-19852001 信息技术 汉字编码字符集(辅助集) 24 点阵字型

ndash GB 5199-19862001 信息技术 汉字编码字符集(基本集) 16 点阵字型 宋体

ndash GB 6345-19862001 信息技术 汉字编码字符集(基本集) 32 点阵字型 宋体

ndash GB 12041-2001 信息技术 汉字编码字符集(基本集) 48点阵字型 宋体

ndash GB 17698-1999 信息技术 通用多八位编码字符集( I 区) 汉字 16 点阵字型

232 语音合成bull 文字的声音输出主要使用的是语音合成的技术bull 语音合成功能是ldquo文rarr语rdquo转换bull 文语转换 TTS (Text-To-Speech) 是将文本形式的信息转换成自然语音的一种技术其最终目标是使计算机输出清晰而又自然的声音

bull 英语的语音合成在上世纪 80年代就早已成熟而中文 汉语的合成现在也趋于成熟并有了广泛的应用(如汽车导航仪智能手机等)

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 66: 第一篇  媒体

2 ISOIEC 10646

bull ISOIEC 10646 是 ISO 与 IEC 联合开发的国际通用的字符编码标准

bull ISOIEC 10646 标准由 ISO 与 IEC 联合成立的 ISOIEC JTC1SC2WG2 制定ndash JTC 1 ( Joint Technical Committee 1 on Information

technology ISOIEC信息技术联合技术委员会 1 )负责信息技术方面标准的制定工作

ndash SC 2 ( SubCommittee 2 on Coded character sets 编码字符集分会 2 )下的 WG 2 ( Working Group 2 on Universal coded character set 通用编码字符集工作组 2 )负责制定国际通用字符编码标准即后来公布的 ISOIEC 10646

发展历史bull 1984年 ISO 的一些会员国发起制定新的国际字符编码标准同年 4月 ISO

与 IEC 联合成立 ISOIEC JTC1SC2WG2 1987年 3月制定出编码架构1992年 6月投票通过第二版国际标准草案

bull 1993年 5月推出 10646 标准时将内容分成两个部分标准首先发布的是其中的第 1 个部分(体系结构与基本多文种平面)的第 1版( Edition 1 ) ISOIEC 10646-11993 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane(信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

bull 2000年 3月推出 10646 标准第一个部分的第 2版( Edition 2 ) ISOIEC 10646-12000 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane

bull 2001年 10月推出 10646 标准第 2版的第二个部分(辅助平面)的第 1版( Edition 1 ) ISOIEC 10646-22001 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 2 Supplementary Planes

bull 2003年 10月推出的 10646新标准(第 1版 Edition 1 )将老标准中的两个部分标准合并成了一个单一的标准 ISOIEC 106462003 Information technology -- Universal Multiple- Octet Coded Character Set (UCS) 后来又于 2010年 2012年和 2014年分别推出了 ISOIEC 106462010 (第 2版)ISOIEC 106462012 (第 3版)和 ISOIEC 106462014 (第 4版)

UCS 通用字符集bull 通用字符集( Universal Character Set UCS )是

ISOIEC 10646 标准所定义的字符编码方式采用 4字节编码又称为 Universal Multiple-Octet Coded Character Set (通用多八位编码字符集)

bull 通用字符集是所有包括了其他字符集它保证了与其他字符集的双向兼容即如果你将任何文本字符串翻译到 UCS 格式然后再翻译回原编码你不会丢失任何信息

bull UCS 包含了已知语言的所有字符除了拉丁语希腊语斯拉夫语希伯来语阿拉伯语亚美尼亚语格鲁吉亚语还包括中文日文韩文这样的象形文字 UCS 还包括大量的图形印刷数学科学符号

名字与组合字符bull UCS 不仅给每个字符分配一个代码而且赋予了

一个正式的名字表示一个 UCS 或 Unicode值的十六进制数通常在前面加上ldquo U+rdquo 例如ldquo U+0041rdquo代表字符ldquo Ardquo

bull UCS里有些编码点分配给了组合字符组合字符机制允许在任何字符后加上重音符或其他指示标记 这在科学符号中特别有用 比如数学方程式和国际音标字母 可能会需要在一个基本字符后组合上一个或多个指示标记

实现级别bull 并不是所有的系统都需要支持像组合字符这样的的先进

机制因此 ISO 10646 指定了如下三种实现级别ndash 级别 1不支持组合字符和韩语 Hangul Jamo 字符 ( 一种特

别的 更加复杂的韩国文的编码 使用两个或三个子字符来编码一个韩文音节 )

ndash 级别 2类似于级别 1 但在某些文字中允许一列固定的组合字符 (例如 希伯来文 阿拉伯文 Devangari 孟加拉语 果鲁穆奇语 Gujarati Oriya 泰米尔语 Telugo 印 埃纳德语 Malayalam 泰国语和老挝语 ) 因为如果没有最起码的几个组合字符 UCS就不能完整地表达这些语言

ndash 级别 3支持所有的 UCS 字符如可以在任意一个字符上加上一个箭头或 和一个 tilde(颚化符号即字母上面的~ )

编码方式bull UCS 有如下两种编码方式

ndash UCS-2与 Unicode 的 2 字节编码基本一样ndash UCS-4 4 字节编码目前是在 UCS-2 前加

上 2 个全零的字节bull UCS 还有 UTF 编码方式参见下面第 4小节ldquo 4 UTFrdquo

3 Unicode 与 ISOIEC 10646bull 关系

ndash 历史上存在两个独立的尝试创立单一字符集的组织即国际标准化组织( ISO )和多语言软件制造商组成的统一码协会组织( Unicodeorg )前者开发的 ISO 10646项目后者开发的 Unicode项目因此最初制定了不同的标准

ndash 1991年前后两个项目的参与者都认识到世界不需要两个不兼容的字符集于是它们开始合并双方的工作成果并为创立一个单一编码表而协同工作

ndash 从 Unicode20开始 Unicode采用了与 ISO 10646-1相同的字库和字码 ISO 也承诺 ISO10646 将不会替超出 U+10FFFF 的 UCS-4 编码赋值以使得两者保持一致

ndash 两个项目仍都存在并独立地公布各自的标准但 Unicode协会和 ISOIEC JTC1SC2 都同意保持两者标准的码表兼容并紧密地共同调整任何未来的扩展

异同bull Unicode协会公布的 Unicode 标准包含了 ISO 10646-1 实现级别

3 的基本多文种平面在两个标准里所有的字符都在相同的位置并且有相同的名字

bull ISO 10646 标准就像 ISO 8859 标准一样只不过是一个简单的字符集表它定义了一些编码的别名指定了一些与标准有关的术语并包括了规范说明指定了怎样使用 UCS连接其他 ISO 标准的实现等

bull Unicode 标准额外定义了许多与字符有关的语义符号学并详细说明了绘制某些语言(如阿拉伯语)表达形式的算法处理双向文字(比如拉丁文和希伯来文的混合文字)的算法排序与字符串比较所需的算法等等

bull 考虑到 Unicode 标准有一个易记的名字既便宜又包括更多的辅助信息因而它使用得更广泛然而

bull 一般认为用于打印 ISO 10646-1 标准的字体在某些方面的质量要高于用于打印 Unicode 20 的专业字体设计者总是被建议说要两个标准都实现但一些提供的样例字形有显著的区别 ISO 10646-1 标准同样使用四种不同的风格变体来显示表意文字如中文日文和韩文 (CJK) 而 Unicode 20 的表里只有中文的变体

4 UTFbull Unicode 和 UCS 都是一个字符集可以看作为内码bull UTF ( UnicodeUCS Transformation Format 统一码

通用字符集转换格式)是一种编码方式它的出现是因为 Unicode 和 UCS 不适宜在某些场合直接传输和处理

bull UCS 和 Unicode 只是分配整数给字符的编码表现在存在好几种将一串字符表示为一串字节的方法(如高或低位字节在前)

bull 最显而易见的两种方法是将 UCS 和 Unicode 文本存储为 2 个 或 4 个字节序列的串这两种方法的正式名称分别为 UCS-2 和 UCS-4

bull 常用的 UTF具体编码方式有 UTF-8 UTF-16 和 UTF-32

UTF-8

bull UTF-8 是 UTF 的一种具体编码方式在 ISO 10646-1 的附录 R 和 IETF 的 RFC 2279 里定义

bull 由于要使文档中的文字与 ASCII兼容故 UTF-8 选择了使用可变长度字节来储存 Unicode 和 UCS 例如ndash ASCII 字母继续使用 1 字节储存ndash 重音文字希腊字母或西里尔字母等使用 2 字节来储存ndash 常用的汉字就要使用 3 字节ndash 辅助平面字符则使用 4 字节ndash 即 ASCII 不作变换其他字符做变长编码每个字符 1~4 字节

bull UTF-8 通常作为外码bull 在 UTF-8 文件的开首很多时都放置一个 U+FEFF 字符

(UTF-8 以 EF BB BF 代表 ) 以显示这个文字档案是以UTF-8 编码

UTF-8 的优点bull 与 CPU 字节顺序无关可以在不同平台之间交流

bull 容错能力高任何一个字节损坏后最多只会导致一个编码码位损失不会链锁错误 ( 如 GB 码错一个字节就会整行乱码 )

UTF-8 的缺点bull UTF-8 使用可变长度字节储存使计算机程序设计变得复杂 (故此在计算机程序或操作系统内部多采用 UCS-2 编码 )

bull 在旧式的中文日文及朝鲜文编码之中每字符都使用 2 字节储存而 UTF-8 须使用 3 字节 (采用 UTF-16 编码则可只使用 2字节储存 )

bull 泰语以往使用的 ISO 8859-11 每字符只使用 1 字节储存而 UTF-8 须使用 3 字节

UTF-8储存的多字节串字符bull U-00000000 - U-0000007F 0xxxxxxx bull U-00000080 - U-000007FF 110xxxxx 10xxxxxx

bull U-00000800 - U-0000FFFF 1110xxxx 10xxxxxx

10xxxxxx bull U-00010000 - U-001FFFFF 11110xxx 10xxxxx

x 10xxxxxx 10xxxxxx bull 在多字节串中第一个字节的开头ldquo 1rdquo 的数目就

是整个串中字节的数目bull 每个使用 UTF-8储存的字符除了第一个字节外其余字节的头两个位元都是以 10 开始使文字处理器能够较快地找出每个字符的开始位置

UTF-16bull UTF-16 是 UTF 的另一种具体编码方式在 ISO 1064

6-1 的附录 Q 和 IETF 的 RFC 2781 里定义bull UTF-16 是变长码( 2 或 4 字节)大致相当于 20位编码值在 0 到 0x10FFFF 之间基本上就是 Unicode 编码的实现 UTF-16 与 CPU 字序有关但因为最省空间常作为网络传输的外码 UTF-16 是 Unicode 的完美编码

bull lt0x10000 的直接用其对应的 16位整数编码位于 0x10000 ~ 0x10FFFF 之间的用 0xD800~0xDBFF 的 16位整数后跟 0xDC00~0xDFFF 的 16位整数的 4 字节编码 gt 0x10FFFF 的不能用 UTF-16 表示

bull 在 Unicode 的 BMP 中定义的字符(无论是拉丁字母汉字或其他文字或符号)一律使用 2 字节存储而在辅助平面定义的字符则以两个 2 字节的值来存储

UTF-16 的特点bull UTF-16比起 UTF-8 的好处在于大部分字符都以固定长

度的 2 字节存储但 UTF-16却无法相容于 ASCII 编码bull UTF-16 有两种编码模式即大尾序( big Endian 高位字节在前)和小尾序( little Endian 高位字节在后)储存形式(一般來說以 Macintosh 制作和存储的文字使用大尾序格式以 Microsoft 或 Linux 制作和存储的文字使用小尾序格式)

bull 为了弄区分 UTF-16 文件的大小尾序在 UTF-16 文件的开头都会放置一个 U+FEFF 字符作为字节顺序标记 (UTF-16LE 以 FF FE代表 UTF-16BE 以 FE FF代表 ) 以显示该文档是以 UTF-16 编码的

UTF-32

bull UTF-32 仅使用了 Unicode范围 (0 到 0x10FFFF) 的 32位编码相当于 UCS-4 的子集

bull 由于 Unicode 和 ISOIEC 10646 的编码和结构与前面讲过的 GB 13000 类似或等价这里就不再做详细的介绍

5支持bull 现在 UnicodeUCS 已经获得了十分广泛的支

持ndash网络与浏览器(如 HTML 4050 XML 与 IE

Safari Netscape Firefox Chrome Opera Edge 等)

ndash操作系统(如 Windows NT2000XPVista7810 Mac OS X iOS Android和 Linux )

ndash 编程语言新版本(如 CC++JavaObjective-CC Swift 等)

Unicode 代码的浏览器显示代码 字符标准名称 (英语 )

浏览器的显示

amp65 大写拉丁字母 A A

amp223 小写拉丁字母 Sharp S szlig

amp254 小写拉丁字母 Thorn thorn

amp916 大写希腊字母 Delta Δ

amp1049 大写斯拉夫字母 Short I Й

amp1511 希伯来字母 Qof ק

amp1605 阿拉伯字母 Meem م

amp3671 泰文数字 7 ๗amp4688 埃塞俄比亚音节文字 Qha ቐ

amp12354 日语平假名 A あamp12450 日语片假名 A アamp21494 简体汉字 叶 叶amp33865 繁体汉字 葉 葉amp50685 韩国音节文字 Yeob 엽

23 文字输出bull 文字输出是指将计算机内的字符编码通过计算机的输出设备(如显示器打印机喇叭)展现出所对应字符的图形或声音供人们阅读或聆听

bull 本节主要介绍文字图示输出的字形技术bull 文字声音输出属于语音合成只在本节的末尾作简单的介绍

231 字形技术bull 文字 = 图形bull 不论是象形文字中的单字还是拼音文字

中的字母都是用图形来表示的bull 在计算机里文字的表示 输出(显示和打

印)涉及ndash 字型ndash 字体ndash 字库

1字型bull 字型指构造和生成字形的方法一般可分为

ndash 点阵字 DOS 显卡 ROM 金山 科印特点似位图显示快占空间(字库大)放大后有马赛克效应

bull 显示字母 88 汉字 1616bull 打印 2424 4848 6464

ndash 矢量字单线条用于笔式绘图仪特点字库小算法简单难看

ndash 轮廓字用曲线描绘字的轮廓输出效果好所见即所得(WYSWYG) 可无级放大易实现空心 阴影 填充 变形等各种特效功能轮廓曲线一般采用样条曲线如 TrueType (Apple 1991 Mac OS Microsoft 1992 Windows 31)用的是二次 B 样条 Bezier曲线中文之星 RichWin采用的是三次 B 样条 Bezier曲线

字型种类

2字体bull 字体指字的形状风格如

ndash 汉字的

ndash 英文的

宋体楷体黑体仿宋

行楷隶书新魏幼圆

Times New Roman Arial Narrow Courier New

常用汉字字体bull 宋体mdashmdash宋体来自于北宋时雕版刻书所采用的欧体字(唐朝欧阳询体)宋体字的横顿拉捺挑钩别具特色间架平正疏密适中字体秀丽遒劲但笔画横细竖粗适合于刀刻不宜于手写现在宋体广泛用于印刷常来表现文档的正文

bull 仿宋体mdashmdash 1920年钱塘的丁辅之与丁善之等人将明代以后盛行的方廓形字体加以改造创造出长形和方形的聚珍仿宋后来演化为现在的仿宋体仿宋体比较接近于手写体为宋体和楷体的折中是采用的宋体的结构和楷体的笔法而成现常来表现打印文件以及文档的摘要和注释等

bull 黑体mdashmdash黑体是适应工艺美术的发展而出现的一种等线体是从日本引进的黑体的结构与宋体没有什么差别只是其笔画粗细一致健实粗壮主要用于文档的标题和重点及标语广告等方面

bull 楷体mdashmdash楷体源于楷书楷体的笔画圆浑笔调灵活结构端正美观但不宜于木板雕刻所以直到清末西洋的石板印刷术传入后才开始广泛用于印刷现代的楷体创造于 20世纪的二三十年代主要用于文档的正文(多用于中小学教材)也可用于工艺美术等方面

3字库bull 字库为一种文字的某一字体的所有字符的集合一般存放在一个磁盘文件中

bull 由于象形文字中单字的数量大(成千上万)而拼音文字中字母的数量小(不到一百个)所以字库的大小有很大的差别

bull 为了使文档界面丰富多彩常见的字处理软件都支持多种字体带有众多字库

4点阵字型的国家标准bull 我国已经公布了若干字体的点阵字型之国家标准

ndash GB 50071-19852001 信息技术 汉字编码字符集(基本集) 24 点阵字型

ndash GB 50072-19852001 信息技术 汉字编码字符集(辅助集) 24 点阵字型

ndash GB 5199-19862001 信息技术 汉字编码字符集(基本集) 16 点阵字型 宋体

ndash GB 6345-19862001 信息技术 汉字编码字符集(基本集) 32 点阵字型 宋体

ndash GB 12041-2001 信息技术 汉字编码字符集(基本集) 48点阵字型 宋体

ndash GB 17698-1999 信息技术 通用多八位编码字符集( I 区) 汉字 16 点阵字型

232 语音合成bull 文字的声音输出主要使用的是语音合成的技术bull 语音合成功能是ldquo文rarr语rdquo转换bull 文语转换 TTS (Text-To-Speech) 是将文本形式的信息转换成自然语音的一种技术其最终目标是使计算机输出清晰而又自然的声音

bull 英语的语音合成在上世纪 80年代就早已成熟而中文 汉语的合成现在也趋于成熟并有了广泛的应用(如汽车导航仪智能手机等)

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 67: 第一篇  媒体

发展历史bull 1984年 ISO 的一些会员国发起制定新的国际字符编码标准同年 4月 ISO

与 IEC 联合成立 ISOIEC JTC1SC2WG2 1987年 3月制定出编码架构1992年 6月投票通过第二版国际标准草案

bull 1993年 5月推出 10646 标准时将内容分成两个部分标准首先发布的是其中的第 1 个部分(体系结构与基本多文种平面)的第 1版( Edition 1 ) ISOIEC 10646-11993 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane(信息技术mdashmdash通用多八位编码字符集( UCS )mdashmdash第 1部分体系结构与基本多文种平面)

bull 2000年 3月推出 10646 标准第一个部分的第 2版( Edition 2 ) ISOIEC 10646-12000 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1 Architecture and Basic Multilingual Plane

bull 2001年 10月推出 10646 标准第 2版的第二个部分(辅助平面)的第 1版( Edition 1 ) ISOIEC 10646-22001 Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 2 Supplementary Planes

bull 2003年 10月推出的 10646新标准(第 1版 Edition 1 )将老标准中的两个部分标准合并成了一个单一的标准 ISOIEC 106462003 Information technology -- Universal Multiple- Octet Coded Character Set (UCS) 后来又于 2010年 2012年和 2014年分别推出了 ISOIEC 106462010 (第 2版)ISOIEC 106462012 (第 3版)和 ISOIEC 106462014 (第 4版)

UCS 通用字符集bull 通用字符集( Universal Character Set UCS )是

ISOIEC 10646 标准所定义的字符编码方式采用 4字节编码又称为 Universal Multiple-Octet Coded Character Set (通用多八位编码字符集)

bull 通用字符集是所有包括了其他字符集它保证了与其他字符集的双向兼容即如果你将任何文本字符串翻译到 UCS 格式然后再翻译回原编码你不会丢失任何信息

bull UCS 包含了已知语言的所有字符除了拉丁语希腊语斯拉夫语希伯来语阿拉伯语亚美尼亚语格鲁吉亚语还包括中文日文韩文这样的象形文字 UCS 还包括大量的图形印刷数学科学符号

名字与组合字符bull UCS 不仅给每个字符分配一个代码而且赋予了

一个正式的名字表示一个 UCS 或 Unicode值的十六进制数通常在前面加上ldquo U+rdquo 例如ldquo U+0041rdquo代表字符ldquo Ardquo

bull UCS里有些编码点分配给了组合字符组合字符机制允许在任何字符后加上重音符或其他指示标记 这在科学符号中特别有用 比如数学方程式和国际音标字母 可能会需要在一个基本字符后组合上一个或多个指示标记

实现级别bull 并不是所有的系统都需要支持像组合字符这样的的先进

机制因此 ISO 10646 指定了如下三种实现级别ndash 级别 1不支持组合字符和韩语 Hangul Jamo 字符 ( 一种特

别的 更加复杂的韩国文的编码 使用两个或三个子字符来编码一个韩文音节 )

ndash 级别 2类似于级别 1 但在某些文字中允许一列固定的组合字符 (例如 希伯来文 阿拉伯文 Devangari 孟加拉语 果鲁穆奇语 Gujarati Oriya 泰米尔语 Telugo 印 埃纳德语 Malayalam 泰国语和老挝语 ) 因为如果没有最起码的几个组合字符 UCS就不能完整地表达这些语言

ndash 级别 3支持所有的 UCS 字符如可以在任意一个字符上加上一个箭头或 和一个 tilde(颚化符号即字母上面的~ )

编码方式bull UCS 有如下两种编码方式

ndash UCS-2与 Unicode 的 2 字节编码基本一样ndash UCS-4 4 字节编码目前是在 UCS-2 前加

上 2 个全零的字节bull UCS 还有 UTF 编码方式参见下面第 4小节ldquo 4 UTFrdquo

3 Unicode 与 ISOIEC 10646bull 关系

ndash 历史上存在两个独立的尝试创立单一字符集的组织即国际标准化组织( ISO )和多语言软件制造商组成的统一码协会组织( Unicodeorg )前者开发的 ISO 10646项目后者开发的 Unicode项目因此最初制定了不同的标准

ndash 1991年前后两个项目的参与者都认识到世界不需要两个不兼容的字符集于是它们开始合并双方的工作成果并为创立一个单一编码表而协同工作

ndash 从 Unicode20开始 Unicode采用了与 ISO 10646-1相同的字库和字码 ISO 也承诺 ISO10646 将不会替超出 U+10FFFF 的 UCS-4 编码赋值以使得两者保持一致

ndash 两个项目仍都存在并独立地公布各自的标准但 Unicode协会和 ISOIEC JTC1SC2 都同意保持两者标准的码表兼容并紧密地共同调整任何未来的扩展

异同bull Unicode协会公布的 Unicode 标准包含了 ISO 10646-1 实现级别

3 的基本多文种平面在两个标准里所有的字符都在相同的位置并且有相同的名字

bull ISO 10646 标准就像 ISO 8859 标准一样只不过是一个简单的字符集表它定义了一些编码的别名指定了一些与标准有关的术语并包括了规范说明指定了怎样使用 UCS连接其他 ISO 标准的实现等

bull Unicode 标准额外定义了许多与字符有关的语义符号学并详细说明了绘制某些语言(如阿拉伯语)表达形式的算法处理双向文字(比如拉丁文和希伯来文的混合文字)的算法排序与字符串比较所需的算法等等

bull 考虑到 Unicode 标准有一个易记的名字既便宜又包括更多的辅助信息因而它使用得更广泛然而

bull 一般认为用于打印 ISO 10646-1 标准的字体在某些方面的质量要高于用于打印 Unicode 20 的专业字体设计者总是被建议说要两个标准都实现但一些提供的样例字形有显著的区别 ISO 10646-1 标准同样使用四种不同的风格变体来显示表意文字如中文日文和韩文 (CJK) 而 Unicode 20 的表里只有中文的变体

4 UTFbull Unicode 和 UCS 都是一个字符集可以看作为内码bull UTF ( UnicodeUCS Transformation Format 统一码

通用字符集转换格式)是一种编码方式它的出现是因为 Unicode 和 UCS 不适宜在某些场合直接传输和处理

bull UCS 和 Unicode 只是分配整数给字符的编码表现在存在好几种将一串字符表示为一串字节的方法(如高或低位字节在前)

bull 最显而易见的两种方法是将 UCS 和 Unicode 文本存储为 2 个 或 4 个字节序列的串这两种方法的正式名称分别为 UCS-2 和 UCS-4

bull 常用的 UTF具体编码方式有 UTF-8 UTF-16 和 UTF-32

UTF-8

bull UTF-8 是 UTF 的一种具体编码方式在 ISO 10646-1 的附录 R 和 IETF 的 RFC 2279 里定义

bull 由于要使文档中的文字与 ASCII兼容故 UTF-8 选择了使用可变长度字节来储存 Unicode 和 UCS 例如ndash ASCII 字母继续使用 1 字节储存ndash 重音文字希腊字母或西里尔字母等使用 2 字节来储存ndash 常用的汉字就要使用 3 字节ndash 辅助平面字符则使用 4 字节ndash 即 ASCII 不作变换其他字符做变长编码每个字符 1~4 字节

bull UTF-8 通常作为外码bull 在 UTF-8 文件的开首很多时都放置一个 U+FEFF 字符

(UTF-8 以 EF BB BF 代表 ) 以显示这个文字档案是以UTF-8 编码

UTF-8 的优点bull 与 CPU 字节顺序无关可以在不同平台之间交流

bull 容错能力高任何一个字节损坏后最多只会导致一个编码码位损失不会链锁错误 ( 如 GB 码错一个字节就会整行乱码 )

UTF-8 的缺点bull UTF-8 使用可变长度字节储存使计算机程序设计变得复杂 (故此在计算机程序或操作系统内部多采用 UCS-2 编码 )

bull 在旧式的中文日文及朝鲜文编码之中每字符都使用 2 字节储存而 UTF-8 须使用 3 字节 (采用 UTF-16 编码则可只使用 2字节储存 )

bull 泰语以往使用的 ISO 8859-11 每字符只使用 1 字节储存而 UTF-8 须使用 3 字节

UTF-8储存的多字节串字符bull U-00000000 - U-0000007F 0xxxxxxx bull U-00000080 - U-000007FF 110xxxxx 10xxxxxx

bull U-00000800 - U-0000FFFF 1110xxxx 10xxxxxx

10xxxxxx bull U-00010000 - U-001FFFFF 11110xxx 10xxxxx

x 10xxxxxx 10xxxxxx bull 在多字节串中第一个字节的开头ldquo 1rdquo 的数目就

是整个串中字节的数目bull 每个使用 UTF-8储存的字符除了第一个字节外其余字节的头两个位元都是以 10 开始使文字处理器能够较快地找出每个字符的开始位置

UTF-16bull UTF-16 是 UTF 的另一种具体编码方式在 ISO 1064

6-1 的附录 Q 和 IETF 的 RFC 2781 里定义bull UTF-16 是变长码( 2 或 4 字节)大致相当于 20位编码值在 0 到 0x10FFFF 之间基本上就是 Unicode 编码的实现 UTF-16 与 CPU 字序有关但因为最省空间常作为网络传输的外码 UTF-16 是 Unicode 的完美编码

bull lt0x10000 的直接用其对应的 16位整数编码位于 0x10000 ~ 0x10FFFF 之间的用 0xD800~0xDBFF 的 16位整数后跟 0xDC00~0xDFFF 的 16位整数的 4 字节编码 gt 0x10FFFF 的不能用 UTF-16 表示

bull 在 Unicode 的 BMP 中定义的字符(无论是拉丁字母汉字或其他文字或符号)一律使用 2 字节存储而在辅助平面定义的字符则以两个 2 字节的值来存储

UTF-16 的特点bull UTF-16比起 UTF-8 的好处在于大部分字符都以固定长

度的 2 字节存储但 UTF-16却无法相容于 ASCII 编码bull UTF-16 有两种编码模式即大尾序( big Endian 高位字节在前)和小尾序( little Endian 高位字节在后)储存形式(一般來說以 Macintosh 制作和存储的文字使用大尾序格式以 Microsoft 或 Linux 制作和存储的文字使用小尾序格式)

bull 为了弄区分 UTF-16 文件的大小尾序在 UTF-16 文件的开头都会放置一个 U+FEFF 字符作为字节顺序标记 (UTF-16LE 以 FF FE代表 UTF-16BE 以 FE FF代表 ) 以显示该文档是以 UTF-16 编码的

UTF-32

bull UTF-32 仅使用了 Unicode范围 (0 到 0x10FFFF) 的 32位编码相当于 UCS-4 的子集

bull 由于 Unicode 和 ISOIEC 10646 的编码和结构与前面讲过的 GB 13000 类似或等价这里就不再做详细的介绍

5支持bull 现在 UnicodeUCS 已经获得了十分广泛的支

持ndash网络与浏览器(如 HTML 4050 XML 与 IE

Safari Netscape Firefox Chrome Opera Edge 等)

ndash操作系统(如 Windows NT2000XPVista7810 Mac OS X iOS Android和 Linux )

ndash 编程语言新版本(如 CC++JavaObjective-CC Swift 等)

Unicode 代码的浏览器显示代码 字符标准名称 (英语 )

浏览器的显示

amp65 大写拉丁字母 A A

amp223 小写拉丁字母 Sharp S szlig

amp254 小写拉丁字母 Thorn thorn

amp916 大写希腊字母 Delta Δ

amp1049 大写斯拉夫字母 Short I Й

amp1511 希伯来字母 Qof ק

amp1605 阿拉伯字母 Meem م

amp3671 泰文数字 7 ๗amp4688 埃塞俄比亚音节文字 Qha ቐ

amp12354 日语平假名 A あamp12450 日语片假名 A アamp21494 简体汉字 叶 叶amp33865 繁体汉字 葉 葉amp50685 韩国音节文字 Yeob 엽

23 文字输出bull 文字输出是指将计算机内的字符编码通过计算机的输出设备(如显示器打印机喇叭)展现出所对应字符的图形或声音供人们阅读或聆听

bull 本节主要介绍文字图示输出的字形技术bull 文字声音输出属于语音合成只在本节的末尾作简单的介绍

231 字形技术bull 文字 = 图形bull 不论是象形文字中的单字还是拼音文字

中的字母都是用图形来表示的bull 在计算机里文字的表示 输出(显示和打

印)涉及ndash 字型ndash 字体ndash 字库

1字型bull 字型指构造和生成字形的方法一般可分为

ndash 点阵字 DOS 显卡 ROM 金山 科印特点似位图显示快占空间(字库大)放大后有马赛克效应

bull 显示字母 88 汉字 1616bull 打印 2424 4848 6464

ndash 矢量字单线条用于笔式绘图仪特点字库小算法简单难看

ndash 轮廓字用曲线描绘字的轮廓输出效果好所见即所得(WYSWYG) 可无级放大易实现空心 阴影 填充 变形等各种特效功能轮廓曲线一般采用样条曲线如 TrueType (Apple 1991 Mac OS Microsoft 1992 Windows 31)用的是二次 B 样条 Bezier曲线中文之星 RichWin采用的是三次 B 样条 Bezier曲线

字型种类

2字体bull 字体指字的形状风格如

ndash 汉字的

ndash 英文的

宋体楷体黑体仿宋

行楷隶书新魏幼圆

Times New Roman Arial Narrow Courier New

常用汉字字体bull 宋体mdashmdash宋体来自于北宋时雕版刻书所采用的欧体字(唐朝欧阳询体)宋体字的横顿拉捺挑钩别具特色间架平正疏密适中字体秀丽遒劲但笔画横细竖粗适合于刀刻不宜于手写现在宋体广泛用于印刷常来表现文档的正文

bull 仿宋体mdashmdash 1920年钱塘的丁辅之与丁善之等人将明代以后盛行的方廓形字体加以改造创造出长形和方形的聚珍仿宋后来演化为现在的仿宋体仿宋体比较接近于手写体为宋体和楷体的折中是采用的宋体的结构和楷体的笔法而成现常来表现打印文件以及文档的摘要和注释等

bull 黑体mdashmdash黑体是适应工艺美术的发展而出现的一种等线体是从日本引进的黑体的结构与宋体没有什么差别只是其笔画粗细一致健实粗壮主要用于文档的标题和重点及标语广告等方面

bull 楷体mdashmdash楷体源于楷书楷体的笔画圆浑笔调灵活结构端正美观但不宜于木板雕刻所以直到清末西洋的石板印刷术传入后才开始广泛用于印刷现代的楷体创造于 20世纪的二三十年代主要用于文档的正文(多用于中小学教材)也可用于工艺美术等方面

3字库bull 字库为一种文字的某一字体的所有字符的集合一般存放在一个磁盘文件中

bull 由于象形文字中单字的数量大(成千上万)而拼音文字中字母的数量小(不到一百个)所以字库的大小有很大的差别

bull 为了使文档界面丰富多彩常见的字处理软件都支持多种字体带有众多字库

4点阵字型的国家标准bull 我国已经公布了若干字体的点阵字型之国家标准

ndash GB 50071-19852001 信息技术 汉字编码字符集(基本集) 24 点阵字型

ndash GB 50072-19852001 信息技术 汉字编码字符集(辅助集) 24 点阵字型

ndash GB 5199-19862001 信息技术 汉字编码字符集(基本集) 16 点阵字型 宋体

ndash GB 6345-19862001 信息技术 汉字编码字符集(基本集) 32 点阵字型 宋体

ndash GB 12041-2001 信息技术 汉字编码字符集(基本集) 48点阵字型 宋体

ndash GB 17698-1999 信息技术 通用多八位编码字符集( I 区) 汉字 16 点阵字型

232 语音合成bull 文字的声音输出主要使用的是语音合成的技术bull 语音合成功能是ldquo文rarr语rdquo转换bull 文语转换 TTS (Text-To-Speech) 是将文本形式的信息转换成自然语音的一种技术其最终目标是使计算机输出清晰而又自然的声音

bull 英语的语音合成在上世纪 80年代就早已成熟而中文 汉语的合成现在也趋于成熟并有了广泛的应用(如汽车导航仪智能手机等)

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 68: 第一篇  媒体

UCS 通用字符集bull 通用字符集( Universal Character Set UCS )是

ISOIEC 10646 标准所定义的字符编码方式采用 4字节编码又称为 Universal Multiple-Octet Coded Character Set (通用多八位编码字符集)

bull 通用字符集是所有包括了其他字符集它保证了与其他字符集的双向兼容即如果你将任何文本字符串翻译到 UCS 格式然后再翻译回原编码你不会丢失任何信息

bull UCS 包含了已知语言的所有字符除了拉丁语希腊语斯拉夫语希伯来语阿拉伯语亚美尼亚语格鲁吉亚语还包括中文日文韩文这样的象形文字 UCS 还包括大量的图形印刷数学科学符号

名字与组合字符bull UCS 不仅给每个字符分配一个代码而且赋予了

一个正式的名字表示一个 UCS 或 Unicode值的十六进制数通常在前面加上ldquo U+rdquo 例如ldquo U+0041rdquo代表字符ldquo Ardquo

bull UCS里有些编码点分配给了组合字符组合字符机制允许在任何字符后加上重音符或其他指示标记 这在科学符号中特别有用 比如数学方程式和国际音标字母 可能会需要在一个基本字符后组合上一个或多个指示标记

实现级别bull 并不是所有的系统都需要支持像组合字符这样的的先进

机制因此 ISO 10646 指定了如下三种实现级别ndash 级别 1不支持组合字符和韩语 Hangul Jamo 字符 ( 一种特

别的 更加复杂的韩国文的编码 使用两个或三个子字符来编码一个韩文音节 )

ndash 级别 2类似于级别 1 但在某些文字中允许一列固定的组合字符 (例如 希伯来文 阿拉伯文 Devangari 孟加拉语 果鲁穆奇语 Gujarati Oriya 泰米尔语 Telugo 印 埃纳德语 Malayalam 泰国语和老挝语 ) 因为如果没有最起码的几个组合字符 UCS就不能完整地表达这些语言

ndash 级别 3支持所有的 UCS 字符如可以在任意一个字符上加上一个箭头或 和一个 tilde(颚化符号即字母上面的~ )

编码方式bull UCS 有如下两种编码方式

ndash UCS-2与 Unicode 的 2 字节编码基本一样ndash UCS-4 4 字节编码目前是在 UCS-2 前加

上 2 个全零的字节bull UCS 还有 UTF 编码方式参见下面第 4小节ldquo 4 UTFrdquo

3 Unicode 与 ISOIEC 10646bull 关系

ndash 历史上存在两个独立的尝试创立单一字符集的组织即国际标准化组织( ISO )和多语言软件制造商组成的统一码协会组织( Unicodeorg )前者开发的 ISO 10646项目后者开发的 Unicode项目因此最初制定了不同的标准

ndash 1991年前后两个项目的参与者都认识到世界不需要两个不兼容的字符集于是它们开始合并双方的工作成果并为创立一个单一编码表而协同工作

ndash 从 Unicode20开始 Unicode采用了与 ISO 10646-1相同的字库和字码 ISO 也承诺 ISO10646 将不会替超出 U+10FFFF 的 UCS-4 编码赋值以使得两者保持一致

ndash 两个项目仍都存在并独立地公布各自的标准但 Unicode协会和 ISOIEC JTC1SC2 都同意保持两者标准的码表兼容并紧密地共同调整任何未来的扩展

异同bull Unicode协会公布的 Unicode 标准包含了 ISO 10646-1 实现级别

3 的基本多文种平面在两个标准里所有的字符都在相同的位置并且有相同的名字

bull ISO 10646 标准就像 ISO 8859 标准一样只不过是一个简单的字符集表它定义了一些编码的别名指定了一些与标准有关的术语并包括了规范说明指定了怎样使用 UCS连接其他 ISO 标准的实现等

bull Unicode 标准额外定义了许多与字符有关的语义符号学并详细说明了绘制某些语言(如阿拉伯语)表达形式的算法处理双向文字(比如拉丁文和希伯来文的混合文字)的算法排序与字符串比较所需的算法等等

bull 考虑到 Unicode 标准有一个易记的名字既便宜又包括更多的辅助信息因而它使用得更广泛然而

bull 一般认为用于打印 ISO 10646-1 标准的字体在某些方面的质量要高于用于打印 Unicode 20 的专业字体设计者总是被建议说要两个标准都实现但一些提供的样例字形有显著的区别 ISO 10646-1 标准同样使用四种不同的风格变体来显示表意文字如中文日文和韩文 (CJK) 而 Unicode 20 的表里只有中文的变体

4 UTFbull Unicode 和 UCS 都是一个字符集可以看作为内码bull UTF ( UnicodeUCS Transformation Format 统一码

通用字符集转换格式)是一种编码方式它的出现是因为 Unicode 和 UCS 不适宜在某些场合直接传输和处理

bull UCS 和 Unicode 只是分配整数给字符的编码表现在存在好几种将一串字符表示为一串字节的方法(如高或低位字节在前)

bull 最显而易见的两种方法是将 UCS 和 Unicode 文本存储为 2 个 或 4 个字节序列的串这两种方法的正式名称分别为 UCS-2 和 UCS-4

bull 常用的 UTF具体编码方式有 UTF-8 UTF-16 和 UTF-32

UTF-8

bull UTF-8 是 UTF 的一种具体编码方式在 ISO 10646-1 的附录 R 和 IETF 的 RFC 2279 里定义

bull 由于要使文档中的文字与 ASCII兼容故 UTF-8 选择了使用可变长度字节来储存 Unicode 和 UCS 例如ndash ASCII 字母继续使用 1 字节储存ndash 重音文字希腊字母或西里尔字母等使用 2 字节来储存ndash 常用的汉字就要使用 3 字节ndash 辅助平面字符则使用 4 字节ndash 即 ASCII 不作变换其他字符做变长编码每个字符 1~4 字节

bull UTF-8 通常作为外码bull 在 UTF-8 文件的开首很多时都放置一个 U+FEFF 字符

(UTF-8 以 EF BB BF 代表 ) 以显示这个文字档案是以UTF-8 编码

UTF-8 的优点bull 与 CPU 字节顺序无关可以在不同平台之间交流

bull 容错能力高任何一个字节损坏后最多只会导致一个编码码位损失不会链锁错误 ( 如 GB 码错一个字节就会整行乱码 )

UTF-8 的缺点bull UTF-8 使用可变长度字节储存使计算机程序设计变得复杂 (故此在计算机程序或操作系统内部多采用 UCS-2 编码 )

bull 在旧式的中文日文及朝鲜文编码之中每字符都使用 2 字节储存而 UTF-8 须使用 3 字节 (采用 UTF-16 编码则可只使用 2字节储存 )

bull 泰语以往使用的 ISO 8859-11 每字符只使用 1 字节储存而 UTF-8 须使用 3 字节

UTF-8储存的多字节串字符bull U-00000000 - U-0000007F 0xxxxxxx bull U-00000080 - U-000007FF 110xxxxx 10xxxxxx

bull U-00000800 - U-0000FFFF 1110xxxx 10xxxxxx

10xxxxxx bull U-00010000 - U-001FFFFF 11110xxx 10xxxxx

x 10xxxxxx 10xxxxxx bull 在多字节串中第一个字节的开头ldquo 1rdquo 的数目就

是整个串中字节的数目bull 每个使用 UTF-8储存的字符除了第一个字节外其余字节的头两个位元都是以 10 开始使文字处理器能够较快地找出每个字符的开始位置

UTF-16bull UTF-16 是 UTF 的另一种具体编码方式在 ISO 1064

6-1 的附录 Q 和 IETF 的 RFC 2781 里定义bull UTF-16 是变长码( 2 或 4 字节)大致相当于 20位编码值在 0 到 0x10FFFF 之间基本上就是 Unicode 编码的实现 UTF-16 与 CPU 字序有关但因为最省空间常作为网络传输的外码 UTF-16 是 Unicode 的完美编码

bull lt0x10000 的直接用其对应的 16位整数编码位于 0x10000 ~ 0x10FFFF 之间的用 0xD800~0xDBFF 的 16位整数后跟 0xDC00~0xDFFF 的 16位整数的 4 字节编码 gt 0x10FFFF 的不能用 UTF-16 表示

bull 在 Unicode 的 BMP 中定义的字符(无论是拉丁字母汉字或其他文字或符号)一律使用 2 字节存储而在辅助平面定义的字符则以两个 2 字节的值来存储

UTF-16 的特点bull UTF-16比起 UTF-8 的好处在于大部分字符都以固定长

度的 2 字节存储但 UTF-16却无法相容于 ASCII 编码bull UTF-16 有两种编码模式即大尾序( big Endian 高位字节在前)和小尾序( little Endian 高位字节在后)储存形式(一般來說以 Macintosh 制作和存储的文字使用大尾序格式以 Microsoft 或 Linux 制作和存储的文字使用小尾序格式)

bull 为了弄区分 UTF-16 文件的大小尾序在 UTF-16 文件的开头都会放置一个 U+FEFF 字符作为字节顺序标记 (UTF-16LE 以 FF FE代表 UTF-16BE 以 FE FF代表 ) 以显示该文档是以 UTF-16 编码的

UTF-32

bull UTF-32 仅使用了 Unicode范围 (0 到 0x10FFFF) 的 32位编码相当于 UCS-4 的子集

bull 由于 Unicode 和 ISOIEC 10646 的编码和结构与前面讲过的 GB 13000 类似或等价这里就不再做详细的介绍

5支持bull 现在 UnicodeUCS 已经获得了十分广泛的支

持ndash网络与浏览器(如 HTML 4050 XML 与 IE

Safari Netscape Firefox Chrome Opera Edge 等)

ndash操作系统(如 Windows NT2000XPVista7810 Mac OS X iOS Android和 Linux )

ndash 编程语言新版本(如 CC++JavaObjective-CC Swift 等)

Unicode 代码的浏览器显示代码 字符标准名称 (英语 )

浏览器的显示

amp65 大写拉丁字母 A A

amp223 小写拉丁字母 Sharp S szlig

amp254 小写拉丁字母 Thorn thorn

amp916 大写希腊字母 Delta Δ

amp1049 大写斯拉夫字母 Short I Й

amp1511 希伯来字母 Qof ק

amp1605 阿拉伯字母 Meem م

amp3671 泰文数字 7 ๗amp4688 埃塞俄比亚音节文字 Qha ቐ

amp12354 日语平假名 A あamp12450 日语片假名 A アamp21494 简体汉字 叶 叶amp33865 繁体汉字 葉 葉amp50685 韩国音节文字 Yeob 엽

23 文字输出bull 文字输出是指将计算机内的字符编码通过计算机的输出设备(如显示器打印机喇叭)展现出所对应字符的图形或声音供人们阅读或聆听

bull 本节主要介绍文字图示输出的字形技术bull 文字声音输出属于语音合成只在本节的末尾作简单的介绍

231 字形技术bull 文字 = 图形bull 不论是象形文字中的单字还是拼音文字

中的字母都是用图形来表示的bull 在计算机里文字的表示 输出(显示和打

印)涉及ndash 字型ndash 字体ndash 字库

1字型bull 字型指构造和生成字形的方法一般可分为

ndash 点阵字 DOS 显卡 ROM 金山 科印特点似位图显示快占空间(字库大)放大后有马赛克效应

bull 显示字母 88 汉字 1616bull 打印 2424 4848 6464

ndash 矢量字单线条用于笔式绘图仪特点字库小算法简单难看

ndash 轮廓字用曲线描绘字的轮廓输出效果好所见即所得(WYSWYG) 可无级放大易实现空心 阴影 填充 变形等各种特效功能轮廓曲线一般采用样条曲线如 TrueType (Apple 1991 Mac OS Microsoft 1992 Windows 31)用的是二次 B 样条 Bezier曲线中文之星 RichWin采用的是三次 B 样条 Bezier曲线

字型种类

2字体bull 字体指字的形状风格如

ndash 汉字的

ndash 英文的

宋体楷体黑体仿宋

行楷隶书新魏幼圆

Times New Roman Arial Narrow Courier New

常用汉字字体bull 宋体mdashmdash宋体来自于北宋时雕版刻书所采用的欧体字(唐朝欧阳询体)宋体字的横顿拉捺挑钩别具特色间架平正疏密适中字体秀丽遒劲但笔画横细竖粗适合于刀刻不宜于手写现在宋体广泛用于印刷常来表现文档的正文

bull 仿宋体mdashmdash 1920年钱塘的丁辅之与丁善之等人将明代以后盛行的方廓形字体加以改造创造出长形和方形的聚珍仿宋后来演化为现在的仿宋体仿宋体比较接近于手写体为宋体和楷体的折中是采用的宋体的结构和楷体的笔法而成现常来表现打印文件以及文档的摘要和注释等

bull 黑体mdashmdash黑体是适应工艺美术的发展而出现的一种等线体是从日本引进的黑体的结构与宋体没有什么差别只是其笔画粗细一致健实粗壮主要用于文档的标题和重点及标语广告等方面

bull 楷体mdashmdash楷体源于楷书楷体的笔画圆浑笔调灵活结构端正美观但不宜于木板雕刻所以直到清末西洋的石板印刷术传入后才开始广泛用于印刷现代的楷体创造于 20世纪的二三十年代主要用于文档的正文(多用于中小学教材)也可用于工艺美术等方面

3字库bull 字库为一种文字的某一字体的所有字符的集合一般存放在一个磁盘文件中

bull 由于象形文字中单字的数量大(成千上万)而拼音文字中字母的数量小(不到一百个)所以字库的大小有很大的差别

bull 为了使文档界面丰富多彩常见的字处理软件都支持多种字体带有众多字库

4点阵字型的国家标准bull 我国已经公布了若干字体的点阵字型之国家标准

ndash GB 50071-19852001 信息技术 汉字编码字符集(基本集) 24 点阵字型

ndash GB 50072-19852001 信息技术 汉字编码字符集(辅助集) 24 点阵字型

ndash GB 5199-19862001 信息技术 汉字编码字符集(基本集) 16 点阵字型 宋体

ndash GB 6345-19862001 信息技术 汉字编码字符集(基本集) 32 点阵字型 宋体

ndash GB 12041-2001 信息技术 汉字编码字符集(基本集) 48点阵字型 宋体

ndash GB 17698-1999 信息技术 通用多八位编码字符集( I 区) 汉字 16 点阵字型

232 语音合成bull 文字的声音输出主要使用的是语音合成的技术bull 语音合成功能是ldquo文rarr语rdquo转换bull 文语转换 TTS (Text-To-Speech) 是将文本形式的信息转换成自然语音的一种技术其最终目标是使计算机输出清晰而又自然的声音

bull 英语的语音合成在上世纪 80年代就早已成熟而中文 汉语的合成现在也趋于成熟并有了广泛的应用(如汽车导航仪智能手机等)

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 69: 第一篇  媒体

名字与组合字符bull UCS 不仅给每个字符分配一个代码而且赋予了

一个正式的名字表示一个 UCS 或 Unicode值的十六进制数通常在前面加上ldquo U+rdquo 例如ldquo U+0041rdquo代表字符ldquo Ardquo

bull UCS里有些编码点分配给了组合字符组合字符机制允许在任何字符后加上重音符或其他指示标记 这在科学符号中特别有用 比如数学方程式和国际音标字母 可能会需要在一个基本字符后组合上一个或多个指示标记

实现级别bull 并不是所有的系统都需要支持像组合字符这样的的先进

机制因此 ISO 10646 指定了如下三种实现级别ndash 级别 1不支持组合字符和韩语 Hangul Jamo 字符 ( 一种特

别的 更加复杂的韩国文的编码 使用两个或三个子字符来编码一个韩文音节 )

ndash 级别 2类似于级别 1 但在某些文字中允许一列固定的组合字符 (例如 希伯来文 阿拉伯文 Devangari 孟加拉语 果鲁穆奇语 Gujarati Oriya 泰米尔语 Telugo 印 埃纳德语 Malayalam 泰国语和老挝语 ) 因为如果没有最起码的几个组合字符 UCS就不能完整地表达这些语言

ndash 级别 3支持所有的 UCS 字符如可以在任意一个字符上加上一个箭头或 和一个 tilde(颚化符号即字母上面的~ )

编码方式bull UCS 有如下两种编码方式

ndash UCS-2与 Unicode 的 2 字节编码基本一样ndash UCS-4 4 字节编码目前是在 UCS-2 前加

上 2 个全零的字节bull UCS 还有 UTF 编码方式参见下面第 4小节ldquo 4 UTFrdquo

3 Unicode 与 ISOIEC 10646bull 关系

ndash 历史上存在两个独立的尝试创立单一字符集的组织即国际标准化组织( ISO )和多语言软件制造商组成的统一码协会组织( Unicodeorg )前者开发的 ISO 10646项目后者开发的 Unicode项目因此最初制定了不同的标准

ndash 1991年前后两个项目的参与者都认识到世界不需要两个不兼容的字符集于是它们开始合并双方的工作成果并为创立一个单一编码表而协同工作

ndash 从 Unicode20开始 Unicode采用了与 ISO 10646-1相同的字库和字码 ISO 也承诺 ISO10646 将不会替超出 U+10FFFF 的 UCS-4 编码赋值以使得两者保持一致

ndash 两个项目仍都存在并独立地公布各自的标准但 Unicode协会和 ISOIEC JTC1SC2 都同意保持两者标准的码表兼容并紧密地共同调整任何未来的扩展

异同bull Unicode协会公布的 Unicode 标准包含了 ISO 10646-1 实现级别

3 的基本多文种平面在两个标准里所有的字符都在相同的位置并且有相同的名字

bull ISO 10646 标准就像 ISO 8859 标准一样只不过是一个简单的字符集表它定义了一些编码的别名指定了一些与标准有关的术语并包括了规范说明指定了怎样使用 UCS连接其他 ISO 标准的实现等

bull Unicode 标准额外定义了许多与字符有关的语义符号学并详细说明了绘制某些语言(如阿拉伯语)表达形式的算法处理双向文字(比如拉丁文和希伯来文的混合文字)的算法排序与字符串比较所需的算法等等

bull 考虑到 Unicode 标准有一个易记的名字既便宜又包括更多的辅助信息因而它使用得更广泛然而

bull 一般认为用于打印 ISO 10646-1 标准的字体在某些方面的质量要高于用于打印 Unicode 20 的专业字体设计者总是被建议说要两个标准都实现但一些提供的样例字形有显著的区别 ISO 10646-1 标准同样使用四种不同的风格变体来显示表意文字如中文日文和韩文 (CJK) 而 Unicode 20 的表里只有中文的变体

4 UTFbull Unicode 和 UCS 都是一个字符集可以看作为内码bull UTF ( UnicodeUCS Transformation Format 统一码

通用字符集转换格式)是一种编码方式它的出现是因为 Unicode 和 UCS 不适宜在某些场合直接传输和处理

bull UCS 和 Unicode 只是分配整数给字符的编码表现在存在好几种将一串字符表示为一串字节的方法(如高或低位字节在前)

bull 最显而易见的两种方法是将 UCS 和 Unicode 文本存储为 2 个 或 4 个字节序列的串这两种方法的正式名称分别为 UCS-2 和 UCS-4

bull 常用的 UTF具体编码方式有 UTF-8 UTF-16 和 UTF-32

UTF-8

bull UTF-8 是 UTF 的一种具体编码方式在 ISO 10646-1 的附录 R 和 IETF 的 RFC 2279 里定义

bull 由于要使文档中的文字与 ASCII兼容故 UTF-8 选择了使用可变长度字节来储存 Unicode 和 UCS 例如ndash ASCII 字母继续使用 1 字节储存ndash 重音文字希腊字母或西里尔字母等使用 2 字节来储存ndash 常用的汉字就要使用 3 字节ndash 辅助平面字符则使用 4 字节ndash 即 ASCII 不作变换其他字符做变长编码每个字符 1~4 字节

bull UTF-8 通常作为外码bull 在 UTF-8 文件的开首很多时都放置一个 U+FEFF 字符

(UTF-8 以 EF BB BF 代表 ) 以显示这个文字档案是以UTF-8 编码

UTF-8 的优点bull 与 CPU 字节顺序无关可以在不同平台之间交流

bull 容错能力高任何一个字节损坏后最多只会导致一个编码码位损失不会链锁错误 ( 如 GB 码错一个字节就会整行乱码 )

UTF-8 的缺点bull UTF-8 使用可变长度字节储存使计算机程序设计变得复杂 (故此在计算机程序或操作系统内部多采用 UCS-2 编码 )

bull 在旧式的中文日文及朝鲜文编码之中每字符都使用 2 字节储存而 UTF-8 须使用 3 字节 (采用 UTF-16 编码则可只使用 2字节储存 )

bull 泰语以往使用的 ISO 8859-11 每字符只使用 1 字节储存而 UTF-8 须使用 3 字节

UTF-8储存的多字节串字符bull U-00000000 - U-0000007F 0xxxxxxx bull U-00000080 - U-000007FF 110xxxxx 10xxxxxx

bull U-00000800 - U-0000FFFF 1110xxxx 10xxxxxx

10xxxxxx bull U-00010000 - U-001FFFFF 11110xxx 10xxxxx

x 10xxxxxx 10xxxxxx bull 在多字节串中第一个字节的开头ldquo 1rdquo 的数目就

是整个串中字节的数目bull 每个使用 UTF-8储存的字符除了第一个字节外其余字节的头两个位元都是以 10 开始使文字处理器能够较快地找出每个字符的开始位置

UTF-16bull UTF-16 是 UTF 的另一种具体编码方式在 ISO 1064

6-1 的附录 Q 和 IETF 的 RFC 2781 里定义bull UTF-16 是变长码( 2 或 4 字节)大致相当于 20位编码值在 0 到 0x10FFFF 之间基本上就是 Unicode 编码的实现 UTF-16 与 CPU 字序有关但因为最省空间常作为网络传输的外码 UTF-16 是 Unicode 的完美编码

bull lt0x10000 的直接用其对应的 16位整数编码位于 0x10000 ~ 0x10FFFF 之间的用 0xD800~0xDBFF 的 16位整数后跟 0xDC00~0xDFFF 的 16位整数的 4 字节编码 gt 0x10FFFF 的不能用 UTF-16 表示

bull 在 Unicode 的 BMP 中定义的字符(无论是拉丁字母汉字或其他文字或符号)一律使用 2 字节存储而在辅助平面定义的字符则以两个 2 字节的值来存储

UTF-16 的特点bull UTF-16比起 UTF-8 的好处在于大部分字符都以固定长

度的 2 字节存储但 UTF-16却无法相容于 ASCII 编码bull UTF-16 有两种编码模式即大尾序( big Endian 高位字节在前)和小尾序( little Endian 高位字节在后)储存形式(一般來說以 Macintosh 制作和存储的文字使用大尾序格式以 Microsoft 或 Linux 制作和存储的文字使用小尾序格式)

bull 为了弄区分 UTF-16 文件的大小尾序在 UTF-16 文件的开头都会放置一个 U+FEFF 字符作为字节顺序标记 (UTF-16LE 以 FF FE代表 UTF-16BE 以 FE FF代表 ) 以显示该文档是以 UTF-16 编码的

UTF-32

bull UTF-32 仅使用了 Unicode范围 (0 到 0x10FFFF) 的 32位编码相当于 UCS-4 的子集

bull 由于 Unicode 和 ISOIEC 10646 的编码和结构与前面讲过的 GB 13000 类似或等价这里就不再做详细的介绍

5支持bull 现在 UnicodeUCS 已经获得了十分广泛的支

持ndash网络与浏览器(如 HTML 4050 XML 与 IE

Safari Netscape Firefox Chrome Opera Edge 等)

ndash操作系统(如 Windows NT2000XPVista7810 Mac OS X iOS Android和 Linux )

ndash 编程语言新版本(如 CC++JavaObjective-CC Swift 等)

Unicode 代码的浏览器显示代码 字符标准名称 (英语 )

浏览器的显示

amp65 大写拉丁字母 A A

amp223 小写拉丁字母 Sharp S szlig

amp254 小写拉丁字母 Thorn thorn

amp916 大写希腊字母 Delta Δ

amp1049 大写斯拉夫字母 Short I Й

amp1511 希伯来字母 Qof ק

amp1605 阿拉伯字母 Meem م

amp3671 泰文数字 7 ๗amp4688 埃塞俄比亚音节文字 Qha ቐ

amp12354 日语平假名 A あamp12450 日语片假名 A アamp21494 简体汉字 叶 叶amp33865 繁体汉字 葉 葉amp50685 韩国音节文字 Yeob 엽

23 文字输出bull 文字输出是指将计算机内的字符编码通过计算机的输出设备(如显示器打印机喇叭)展现出所对应字符的图形或声音供人们阅读或聆听

bull 本节主要介绍文字图示输出的字形技术bull 文字声音输出属于语音合成只在本节的末尾作简单的介绍

231 字形技术bull 文字 = 图形bull 不论是象形文字中的单字还是拼音文字

中的字母都是用图形来表示的bull 在计算机里文字的表示 输出(显示和打

印)涉及ndash 字型ndash 字体ndash 字库

1字型bull 字型指构造和生成字形的方法一般可分为

ndash 点阵字 DOS 显卡 ROM 金山 科印特点似位图显示快占空间(字库大)放大后有马赛克效应

bull 显示字母 88 汉字 1616bull 打印 2424 4848 6464

ndash 矢量字单线条用于笔式绘图仪特点字库小算法简单难看

ndash 轮廓字用曲线描绘字的轮廓输出效果好所见即所得(WYSWYG) 可无级放大易实现空心 阴影 填充 变形等各种特效功能轮廓曲线一般采用样条曲线如 TrueType (Apple 1991 Mac OS Microsoft 1992 Windows 31)用的是二次 B 样条 Bezier曲线中文之星 RichWin采用的是三次 B 样条 Bezier曲线

字型种类

2字体bull 字体指字的形状风格如

ndash 汉字的

ndash 英文的

宋体楷体黑体仿宋

行楷隶书新魏幼圆

Times New Roman Arial Narrow Courier New

常用汉字字体bull 宋体mdashmdash宋体来自于北宋时雕版刻书所采用的欧体字(唐朝欧阳询体)宋体字的横顿拉捺挑钩别具特色间架平正疏密适中字体秀丽遒劲但笔画横细竖粗适合于刀刻不宜于手写现在宋体广泛用于印刷常来表现文档的正文

bull 仿宋体mdashmdash 1920年钱塘的丁辅之与丁善之等人将明代以后盛行的方廓形字体加以改造创造出长形和方形的聚珍仿宋后来演化为现在的仿宋体仿宋体比较接近于手写体为宋体和楷体的折中是采用的宋体的结构和楷体的笔法而成现常来表现打印文件以及文档的摘要和注释等

bull 黑体mdashmdash黑体是适应工艺美术的发展而出现的一种等线体是从日本引进的黑体的结构与宋体没有什么差别只是其笔画粗细一致健实粗壮主要用于文档的标题和重点及标语广告等方面

bull 楷体mdashmdash楷体源于楷书楷体的笔画圆浑笔调灵活结构端正美观但不宜于木板雕刻所以直到清末西洋的石板印刷术传入后才开始广泛用于印刷现代的楷体创造于 20世纪的二三十年代主要用于文档的正文(多用于中小学教材)也可用于工艺美术等方面

3字库bull 字库为一种文字的某一字体的所有字符的集合一般存放在一个磁盘文件中

bull 由于象形文字中单字的数量大(成千上万)而拼音文字中字母的数量小(不到一百个)所以字库的大小有很大的差别

bull 为了使文档界面丰富多彩常见的字处理软件都支持多种字体带有众多字库

4点阵字型的国家标准bull 我国已经公布了若干字体的点阵字型之国家标准

ndash GB 50071-19852001 信息技术 汉字编码字符集(基本集) 24 点阵字型

ndash GB 50072-19852001 信息技术 汉字编码字符集(辅助集) 24 点阵字型

ndash GB 5199-19862001 信息技术 汉字编码字符集(基本集) 16 点阵字型 宋体

ndash GB 6345-19862001 信息技术 汉字编码字符集(基本集) 32 点阵字型 宋体

ndash GB 12041-2001 信息技术 汉字编码字符集(基本集) 48点阵字型 宋体

ndash GB 17698-1999 信息技术 通用多八位编码字符集( I 区) 汉字 16 点阵字型

232 语音合成bull 文字的声音输出主要使用的是语音合成的技术bull 语音合成功能是ldquo文rarr语rdquo转换bull 文语转换 TTS (Text-To-Speech) 是将文本形式的信息转换成自然语音的一种技术其最终目标是使计算机输出清晰而又自然的声音

bull 英语的语音合成在上世纪 80年代就早已成熟而中文 汉语的合成现在也趋于成熟并有了广泛的应用(如汽车导航仪智能手机等)

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 70: 第一篇  媒体

实现级别bull 并不是所有的系统都需要支持像组合字符这样的的先进

机制因此 ISO 10646 指定了如下三种实现级别ndash 级别 1不支持组合字符和韩语 Hangul Jamo 字符 ( 一种特

别的 更加复杂的韩国文的编码 使用两个或三个子字符来编码一个韩文音节 )

ndash 级别 2类似于级别 1 但在某些文字中允许一列固定的组合字符 (例如 希伯来文 阿拉伯文 Devangari 孟加拉语 果鲁穆奇语 Gujarati Oriya 泰米尔语 Telugo 印 埃纳德语 Malayalam 泰国语和老挝语 ) 因为如果没有最起码的几个组合字符 UCS就不能完整地表达这些语言

ndash 级别 3支持所有的 UCS 字符如可以在任意一个字符上加上一个箭头或 和一个 tilde(颚化符号即字母上面的~ )

编码方式bull UCS 有如下两种编码方式

ndash UCS-2与 Unicode 的 2 字节编码基本一样ndash UCS-4 4 字节编码目前是在 UCS-2 前加

上 2 个全零的字节bull UCS 还有 UTF 编码方式参见下面第 4小节ldquo 4 UTFrdquo

3 Unicode 与 ISOIEC 10646bull 关系

ndash 历史上存在两个独立的尝试创立单一字符集的组织即国际标准化组织( ISO )和多语言软件制造商组成的统一码协会组织( Unicodeorg )前者开发的 ISO 10646项目后者开发的 Unicode项目因此最初制定了不同的标准

ndash 1991年前后两个项目的参与者都认识到世界不需要两个不兼容的字符集于是它们开始合并双方的工作成果并为创立一个单一编码表而协同工作

ndash 从 Unicode20开始 Unicode采用了与 ISO 10646-1相同的字库和字码 ISO 也承诺 ISO10646 将不会替超出 U+10FFFF 的 UCS-4 编码赋值以使得两者保持一致

ndash 两个项目仍都存在并独立地公布各自的标准但 Unicode协会和 ISOIEC JTC1SC2 都同意保持两者标准的码表兼容并紧密地共同调整任何未来的扩展

异同bull Unicode协会公布的 Unicode 标准包含了 ISO 10646-1 实现级别

3 的基本多文种平面在两个标准里所有的字符都在相同的位置并且有相同的名字

bull ISO 10646 标准就像 ISO 8859 标准一样只不过是一个简单的字符集表它定义了一些编码的别名指定了一些与标准有关的术语并包括了规范说明指定了怎样使用 UCS连接其他 ISO 标准的实现等

bull Unicode 标准额外定义了许多与字符有关的语义符号学并详细说明了绘制某些语言(如阿拉伯语)表达形式的算法处理双向文字(比如拉丁文和希伯来文的混合文字)的算法排序与字符串比较所需的算法等等

bull 考虑到 Unicode 标准有一个易记的名字既便宜又包括更多的辅助信息因而它使用得更广泛然而

bull 一般认为用于打印 ISO 10646-1 标准的字体在某些方面的质量要高于用于打印 Unicode 20 的专业字体设计者总是被建议说要两个标准都实现但一些提供的样例字形有显著的区别 ISO 10646-1 标准同样使用四种不同的风格变体来显示表意文字如中文日文和韩文 (CJK) 而 Unicode 20 的表里只有中文的变体

4 UTFbull Unicode 和 UCS 都是一个字符集可以看作为内码bull UTF ( UnicodeUCS Transformation Format 统一码

通用字符集转换格式)是一种编码方式它的出现是因为 Unicode 和 UCS 不适宜在某些场合直接传输和处理

bull UCS 和 Unicode 只是分配整数给字符的编码表现在存在好几种将一串字符表示为一串字节的方法(如高或低位字节在前)

bull 最显而易见的两种方法是将 UCS 和 Unicode 文本存储为 2 个 或 4 个字节序列的串这两种方法的正式名称分别为 UCS-2 和 UCS-4

bull 常用的 UTF具体编码方式有 UTF-8 UTF-16 和 UTF-32

UTF-8

bull UTF-8 是 UTF 的一种具体编码方式在 ISO 10646-1 的附录 R 和 IETF 的 RFC 2279 里定义

bull 由于要使文档中的文字与 ASCII兼容故 UTF-8 选择了使用可变长度字节来储存 Unicode 和 UCS 例如ndash ASCII 字母继续使用 1 字节储存ndash 重音文字希腊字母或西里尔字母等使用 2 字节来储存ndash 常用的汉字就要使用 3 字节ndash 辅助平面字符则使用 4 字节ndash 即 ASCII 不作变换其他字符做变长编码每个字符 1~4 字节

bull UTF-8 通常作为外码bull 在 UTF-8 文件的开首很多时都放置一个 U+FEFF 字符

(UTF-8 以 EF BB BF 代表 ) 以显示这个文字档案是以UTF-8 编码

UTF-8 的优点bull 与 CPU 字节顺序无关可以在不同平台之间交流

bull 容错能力高任何一个字节损坏后最多只会导致一个编码码位损失不会链锁错误 ( 如 GB 码错一个字节就会整行乱码 )

UTF-8 的缺点bull UTF-8 使用可变长度字节储存使计算机程序设计变得复杂 (故此在计算机程序或操作系统内部多采用 UCS-2 编码 )

bull 在旧式的中文日文及朝鲜文编码之中每字符都使用 2 字节储存而 UTF-8 须使用 3 字节 (采用 UTF-16 编码则可只使用 2字节储存 )

bull 泰语以往使用的 ISO 8859-11 每字符只使用 1 字节储存而 UTF-8 须使用 3 字节

UTF-8储存的多字节串字符bull U-00000000 - U-0000007F 0xxxxxxx bull U-00000080 - U-000007FF 110xxxxx 10xxxxxx

bull U-00000800 - U-0000FFFF 1110xxxx 10xxxxxx

10xxxxxx bull U-00010000 - U-001FFFFF 11110xxx 10xxxxx

x 10xxxxxx 10xxxxxx bull 在多字节串中第一个字节的开头ldquo 1rdquo 的数目就

是整个串中字节的数目bull 每个使用 UTF-8储存的字符除了第一个字节外其余字节的头两个位元都是以 10 开始使文字处理器能够较快地找出每个字符的开始位置

UTF-16bull UTF-16 是 UTF 的另一种具体编码方式在 ISO 1064

6-1 的附录 Q 和 IETF 的 RFC 2781 里定义bull UTF-16 是变长码( 2 或 4 字节)大致相当于 20位编码值在 0 到 0x10FFFF 之间基本上就是 Unicode 编码的实现 UTF-16 与 CPU 字序有关但因为最省空间常作为网络传输的外码 UTF-16 是 Unicode 的完美编码

bull lt0x10000 的直接用其对应的 16位整数编码位于 0x10000 ~ 0x10FFFF 之间的用 0xD800~0xDBFF 的 16位整数后跟 0xDC00~0xDFFF 的 16位整数的 4 字节编码 gt 0x10FFFF 的不能用 UTF-16 表示

bull 在 Unicode 的 BMP 中定义的字符(无论是拉丁字母汉字或其他文字或符号)一律使用 2 字节存储而在辅助平面定义的字符则以两个 2 字节的值来存储

UTF-16 的特点bull UTF-16比起 UTF-8 的好处在于大部分字符都以固定长

度的 2 字节存储但 UTF-16却无法相容于 ASCII 编码bull UTF-16 有两种编码模式即大尾序( big Endian 高位字节在前)和小尾序( little Endian 高位字节在后)储存形式(一般來說以 Macintosh 制作和存储的文字使用大尾序格式以 Microsoft 或 Linux 制作和存储的文字使用小尾序格式)

bull 为了弄区分 UTF-16 文件的大小尾序在 UTF-16 文件的开头都会放置一个 U+FEFF 字符作为字节顺序标记 (UTF-16LE 以 FF FE代表 UTF-16BE 以 FE FF代表 ) 以显示该文档是以 UTF-16 编码的

UTF-32

bull UTF-32 仅使用了 Unicode范围 (0 到 0x10FFFF) 的 32位编码相当于 UCS-4 的子集

bull 由于 Unicode 和 ISOIEC 10646 的编码和结构与前面讲过的 GB 13000 类似或等价这里就不再做详细的介绍

5支持bull 现在 UnicodeUCS 已经获得了十分广泛的支

持ndash网络与浏览器(如 HTML 4050 XML 与 IE

Safari Netscape Firefox Chrome Opera Edge 等)

ndash操作系统(如 Windows NT2000XPVista7810 Mac OS X iOS Android和 Linux )

ndash 编程语言新版本(如 CC++JavaObjective-CC Swift 等)

Unicode 代码的浏览器显示代码 字符标准名称 (英语 )

浏览器的显示

amp65 大写拉丁字母 A A

amp223 小写拉丁字母 Sharp S szlig

amp254 小写拉丁字母 Thorn thorn

amp916 大写希腊字母 Delta Δ

amp1049 大写斯拉夫字母 Short I Й

amp1511 希伯来字母 Qof ק

amp1605 阿拉伯字母 Meem م

amp3671 泰文数字 7 ๗amp4688 埃塞俄比亚音节文字 Qha ቐ

amp12354 日语平假名 A あamp12450 日语片假名 A アamp21494 简体汉字 叶 叶amp33865 繁体汉字 葉 葉amp50685 韩国音节文字 Yeob 엽

23 文字输出bull 文字输出是指将计算机内的字符编码通过计算机的输出设备(如显示器打印机喇叭)展现出所对应字符的图形或声音供人们阅读或聆听

bull 本节主要介绍文字图示输出的字形技术bull 文字声音输出属于语音合成只在本节的末尾作简单的介绍

231 字形技术bull 文字 = 图形bull 不论是象形文字中的单字还是拼音文字

中的字母都是用图形来表示的bull 在计算机里文字的表示 输出(显示和打

印)涉及ndash 字型ndash 字体ndash 字库

1字型bull 字型指构造和生成字形的方法一般可分为

ndash 点阵字 DOS 显卡 ROM 金山 科印特点似位图显示快占空间(字库大)放大后有马赛克效应

bull 显示字母 88 汉字 1616bull 打印 2424 4848 6464

ndash 矢量字单线条用于笔式绘图仪特点字库小算法简单难看

ndash 轮廓字用曲线描绘字的轮廓输出效果好所见即所得(WYSWYG) 可无级放大易实现空心 阴影 填充 变形等各种特效功能轮廓曲线一般采用样条曲线如 TrueType (Apple 1991 Mac OS Microsoft 1992 Windows 31)用的是二次 B 样条 Bezier曲线中文之星 RichWin采用的是三次 B 样条 Bezier曲线

字型种类

2字体bull 字体指字的形状风格如

ndash 汉字的

ndash 英文的

宋体楷体黑体仿宋

行楷隶书新魏幼圆

Times New Roman Arial Narrow Courier New

常用汉字字体bull 宋体mdashmdash宋体来自于北宋时雕版刻书所采用的欧体字(唐朝欧阳询体)宋体字的横顿拉捺挑钩别具特色间架平正疏密适中字体秀丽遒劲但笔画横细竖粗适合于刀刻不宜于手写现在宋体广泛用于印刷常来表现文档的正文

bull 仿宋体mdashmdash 1920年钱塘的丁辅之与丁善之等人将明代以后盛行的方廓形字体加以改造创造出长形和方形的聚珍仿宋后来演化为现在的仿宋体仿宋体比较接近于手写体为宋体和楷体的折中是采用的宋体的结构和楷体的笔法而成现常来表现打印文件以及文档的摘要和注释等

bull 黑体mdashmdash黑体是适应工艺美术的发展而出现的一种等线体是从日本引进的黑体的结构与宋体没有什么差别只是其笔画粗细一致健实粗壮主要用于文档的标题和重点及标语广告等方面

bull 楷体mdashmdash楷体源于楷书楷体的笔画圆浑笔调灵活结构端正美观但不宜于木板雕刻所以直到清末西洋的石板印刷术传入后才开始广泛用于印刷现代的楷体创造于 20世纪的二三十年代主要用于文档的正文(多用于中小学教材)也可用于工艺美术等方面

3字库bull 字库为一种文字的某一字体的所有字符的集合一般存放在一个磁盘文件中

bull 由于象形文字中单字的数量大(成千上万)而拼音文字中字母的数量小(不到一百个)所以字库的大小有很大的差别

bull 为了使文档界面丰富多彩常见的字处理软件都支持多种字体带有众多字库

4点阵字型的国家标准bull 我国已经公布了若干字体的点阵字型之国家标准

ndash GB 50071-19852001 信息技术 汉字编码字符集(基本集) 24 点阵字型

ndash GB 50072-19852001 信息技术 汉字编码字符集(辅助集) 24 点阵字型

ndash GB 5199-19862001 信息技术 汉字编码字符集(基本集) 16 点阵字型 宋体

ndash GB 6345-19862001 信息技术 汉字编码字符集(基本集) 32 点阵字型 宋体

ndash GB 12041-2001 信息技术 汉字编码字符集(基本集) 48点阵字型 宋体

ndash GB 17698-1999 信息技术 通用多八位编码字符集( I 区) 汉字 16 点阵字型

232 语音合成bull 文字的声音输出主要使用的是语音合成的技术bull 语音合成功能是ldquo文rarr语rdquo转换bull 文语转换 TTS (Text-To-Speech) 是将文本形式的信息转换成自然语音的一种技术其最终目标是使计算机输出清晰而又自然的声音

bull 英语的语音合成在上世纪 80年代就早已成熟而中文 汉语的合成现在也趋于成熟并有了广泛的应用(如汽车导航仪智能手机等)

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 71: 第一篇  媒体

编码方式bull UCS 有如下两种编码方式

ndash UCS-2与 Unicode 的 2 字节编码基本一样ndash UCS-4 4 字节编码目前是在 UCS-2 前加

上 2 个全零的字节bull UCS 还有 UTF 编码方式参见下面第 4小节ldquo 4 UTFrdquo

3 Unicode 与 ISOIEC 10646bull 关系

ndash 历史上存在两个独立的尝试创立单一字符集的组织即国际标准化组织( ISO )和多语言软件制造商组成的统一码协会组织( Unicodeorg )前者开发的 ISO 10646项目后者开发的 Unicode项目因此最初制定了不同的标准

ndash 1991年前后两个项目的参与者都认识到世界不需要两个不兼容的字符集于是它们开始合并双方的工作成果并为创立一个单一编码表而协同工作

ndash 从 Unicode20开始 Unicode采用了与 ISO 10646-1相同的字库和字码 ISO 也承诺 ISO10646 将不会替超出 U+10FFFF 的 UCS-4 编码赋值以使得两者保持一致

ndash 两个项目仍都存在并独立地公布各自的标准但 Unicode协会和 ISOIEC JTC1SC2 都同意保持两者标准的码表兼容并紧密地共同调整任何未来的扩展

异同bull Unicode协会公布的 Unicode 标准包含了 ISO 10646-1 实现级别

3 的基本多文种平面在两个标准里所有的字符都在相同的位置并且有相同的名字

bull ISO 10646 标准就像 ISO 8859 标准一样只不过是一个简单的字符集表它定义了一些编码的别名指定了一些与标准有关的术语并包括了规范说明指定了怎样使用 UCS连接其他 ISO 标准的实现等

bull Unicode 标准额外定义了许多与字符有关的语义符号学并详细说明了绘制某些语言(如阿拉伯语)表达形式的算法处理双向文字(比如拉丁文和希伯来文的混合文字)的算法排序与字符串比较所需的算法等等

bull 考虑到 Unicode 标准有一个易记的名字既便宜又包括更多的辅助信息因而它使用得更广泛然而

bull 一般认为用于打印 ISO 10646-1 标准的字体在某些方面的质量要高于用于打印 Unicode 20 的专业字体设计者总是被建议说要两个标准都实现但一些提供的样例字形有显著的区别 ISO 10646-1 标准同样使用四种不同的风格变体来显示表意文字如中文日文和韩文 (CJK) 而 Unicode 20 的表里只有中文的变体

4 UTFbull Unicode 和 UCS 都是一个字符集可以看作为内码bull UTF ( UnicodeUCS Transformation Format 统一码

通用字符集转换格式)是一种编码方式它的出现是因为 Unicode 和 UCS 不适宜在某些场合直接传输和处理

bull UCS 和 Unicode 只是分配整数给字符的编码表现在存在好几种将一串字符表示为一串字节的方法(如高或低位字节在前)

bull 最显而易见的两种方法是将 UCS 和 Unicode 文本存储为 2 个 或 4 个字节序列的串这两种方法的正式名称分别为 UCS-2 和 UCS-4

bull 常用的 UTF具体编码方式有 UTF-8 UTF-16 和 UTF-32

UTF-8

bull UTF-8 是 UTF 的一种具体编码方式在 ISO 10646-1 的附录 R 和 IETF 的 RFC 2279 里定义

bull 由于要使文档中的文字与 ASCII兼容故 UTF-8 选择了使用可变长度字节来储存 Unicode 和 UCS 例如ndash ASCII 字母继续使用 1 字节储存ndash 重音文字希腊字母或西里尔字母等使用 2 字节来储存ndash 常用的汉字就要使用 3 字节ndash 辅助平面字符则使用 4 字节ndash 即 ASCII 不作变换其他字符做变长编码每个字符 1~4 字节

bull UTF-8 通常作为外码bull 在 UTF-8 文件的开首很多时都放置一个 U+FEFF 字符

(UTF-8 以 EF BB BF 代表 ) 以显示这个文字档案是以UTF-8 编码

UTF-8 的优点bull 与 CPU 字节顺序无关可以在不同平台之间交流

bull 容错能力高任何一个字节损坏后最多只会导致一个编码码位损失不会链锁错误 ( 如 GB 码错一个字节就会整行乱码 )

UTF-8 的缺点bull UTF-8 使用可变长度字节储存使计算机程序设计变得复杂 (故此在计算机程序或操作系统内部多采用 UCS-2 编码 )

bull 在旧式的中文日文及朝鲜文编码之中每字符都使用 2 字节储存而 UTF-8 须使用 3 字节 (采用 UTF-16 编码则可只使用 2字节储存 )

bull 泰语以往使用的 ISO 8859-11 每字符只使用 1 字节储存而 UTF-8 须使用 3 字节

UTF-8储存的多字节串字符bull U-00000000 - U-0000007F 0xxxxxxx bull U-00000080 - U-000007FF 110xxxxx 10xxxxxx

bull U-00000800 - U-0000FFFF 1110xxxx 10xxxxxx

10xxxxxx bull U-00010000 - U-001FFFFF 11110xxx 10xxxxx

x 10xxxxxx 10xxxxxx bull 在多字节串中第一个字节的开头ldquo 1rdquo 的数目就

是整个串中字节的数目bull 每个使用 UTF-8储存的字符除了第一个字节外其余字节的头两个位元都是以 10 开始使文字处理器能够较快地找出每个字符的开始位置

UTF-16bull UTF-16 是 UTF 的另一种具体编码方式在 ISO 1064

6-1 的附录 Q 和 IETF 的 RFC 2781 里定义bull UTF-16 是变长码( 2 或 4 字节)大致相当于 20位编码值在 0 到 0x10FFFF 之间基本上就是 Unicode 编码的实现 UTF-16 与 CPU 字序有关但因为最省空间常作为网络传输的外码 UTF-16 是 Unicode 的完美编码

bull lt0x10000 的直接用其对应的 16位整数编码位于 0x10000 ~ 0x10FFFF 之间的用 0xD800~0xDBFF 的 16位整数后跟 0xDC00~0xDFFF 的 16位整数的 4 字节编码 gt 0x10FFFF 的不能用 UTF-16 表示

bull 在 Unicode 的 BMP 中定义的字符(无论是拉丁字母汉字或其他文字或符号)一律使用 2 字节存储而在辅助平面定义的字符则以两个 2 字节的值来存储

UTF-16 的特点bull UTF-16比起 UTF-8 的好处在于大部分字符都以固定长

度的 2 字节存储但 UTF-16却无法相容于 ASCII 编码bull UTF-16 有两种编码模式即大尾序( big Endian 高位字节在前)和小尾序( little Endian 高位字节在后)储存形式(一般來說以 Macintosh 制作和存储的文字使用大尾序格式以 Microsoft 或 Linux 制作和存储的文字使用小尾序格式)

bull 为了弄区分 UTF-16 文件的大小尾序在 UTF-16 文件的开头都会放置一个 U+FEFF 字符作为字节顺序标记 (UTF-16LE 以 FF FE代表 UTF-16BE 以 FE FF代表 ) 以显示该文档是以 UTF-16 编码的

UTF-32

bull UTF-32 仅使用了 Unicode范围 (0 到 0x10FFFF) 的 32位编码相当于 UCS-4 的子集

bull 由于 Unicode 和 ISOIEC 10646 的编码和结构与前面讲过的 GB 13000 类似或等价这里就不再做详细的介绍

5支持bull 现在 UnicodeUCS 已经获得了十分广泛的支

持ndash网络与浏览器(如 HTML 4050 XML 与 IE

Safari Netscape Firefox Chrome Opera Edge 等)

ndash操作系统(如 Windows NT2000XPVista7810 Mac OS X iOS Android和 Linux )

ndash 编程语言新版本(如 CC++JavaObjective-CC Swift 等)

Unicode 代码的浏览器显示代码 字符标准名称 (英语 )

浏览器的显示

amp65 大写拉丁字母 A A

amp223 小写拉丁字母 Sharp S szlig

amp254 小写拉丁字母 Thorn thorn

amp916 大写希腊字母 Delta Δ

amp1049 大写斯拉夫字母 Short I Й

amp1511 希伯来字母 Qof ק

amp1605 阿拉伯字母 Meem م

amp3671 泰文数字 7 ๗amp4688 埃塞俄比亚音节文字 Qha ቐ

amp12354 日语平假名 A あamp12450 日语片假名 A アamp21494 简体汉字 叶 叶amp33865 繁体汉字 葉 葉amp50685 韩国音节文字 Yeob 엽

23 文字输出bull 文字输出是指将计算机内的字符编码通过计算机的输出设备(如显示器打印机喇叭)展现出所对应字符的图形或声音供人们阅读或聆听

bull 本节主要介绍文字图示输出的字形技术bull 文字声音输出属于语音合成只在本节的末尾作简单的介绍

231 字形技术bull 文字 = 图形bull 不论是象形文字中的单字还是拼音文字

中的字母都是用图形来表示的bull 在计算机里文字的表示 输出(显示和打

印)涉及ndash 字型ndash 字体ndash 字库

1字型bull 字型指构造和生成字形的方法一般可分为

ndash 点阵字 DOS 显卡 ROM 金山 科印特点似位图显示快占空间(字库大)放大后有马赛克效应

bull 显示字母 88 汉字 1616bull 打印 2424 4848 6464

ndash 矢量字单线条用于笔式绘图仪特点字库小算法简单难看

ndash 轮廓字用曲线描绘字的轮廓输出效果好所见即所得(WYSWYG) 可无级放大易实现空心 阴影 填充 变形等各种特效功能轮廓曲线一般采用样条曲线如 TrueType (Apple 1991 Mac OS Microsoft 1992 Windows 31)用的是二次 B 样条 Bezier曲线中文之星 RichWin采用的是三次 B 样条 Bezier曲线

字型种类

2字体bull 字体指字的形状风格如

ndash 汉字的

ndash 英文的

宋体楷体黑体仿宋

行楷隶书新魏幼圆

Times New Roman Arial Narrow Courier New

常用汉字字体bull 宋体mdashmdash宋体来自于北宋时雕版刻书所采用的欧体字(唐朝欧阳询体)宋体字的横顿拉捺挑钩别具特色间架平正疏密适中字体秀丽遒劲但笔画横细竖粗适合于刀刻不宜于手写现在宋体广泛用于印刷常来表现文档的正文

bull 仿宋体mdashmdash 1920年钱塘的丁辅之与丁善之等人将明代以后盛行的方廓形字体加以改造创造出长形和方形的聚珍仿宋后来演化为现在的仿宋体仿宋体比较接近于手写体为宋体和楷体的折中是采用的宋体的结构和楷体的笔法而成现常来表现打印文件以及文档的摘要和注释等

bull 黑体mdashmdash黑体是适应工艺美术的发展而出现的一种等线体是从日本引进的黑体的结构与宋体没有什么差别只是其笔画粗细一致健实粗壮主要用于文档的标题和重点及标语广告等方面

bull 楷体mdashmdash楷体源于楷书楷体的笔画圆浑笔调灵活结构端正美观但不宜于木板雕刻所以直到清末西洋的石板印刷术传入后才开始广泛用于印刷现代的楷体创造于 20世纪的二三十年代主要用于文档的正文(多用于中小学教材)也可用于工艺美术等方面

3字库bull 字库为一种文字的某一字体的所有字符的集合一般存放在一个磁盘文件中

bull 由于象形文字中单字的数量大(成千上万)而拼音文字中字母的数量小(不到一百个)所以字库的大小有很大的差别

bull 为了使文档界面丰富多彩常见的字处理软件都支持多种字体带有众多字库

4点阵字型的国家标准bull 我国已经公布了若干字体的点阵字型之国家标准

ndash GB 50071-19852001 信息技术 汉字编码字符集(基本集) 24 点阵字型

ndash GB 50072-19852001 信息技术 汉字编码字符集(辅助集) 24 点阵字型

ndash GB 5199-19862001 信息技术 汉字编码字符集(基本集) 16 点阵字型 宋体

ndash GB 6345-19862001 信息技术 汉字编码字符集(基本集) 32 点阵字型 宋体

ndash GB 12041-2001 信息技术 汉字编码字符集(基本集) 48点阵字型 宋体

ndash GB 17698-1999 信息技术 通用多八位编码字符集( I 区) 汉字 16 点阵字型

232 语音合成bull 文字的声音输出主要使用的是语音合成的技术bull 语音合成功能是ldquo文rarr语rdquo转换bull 文语转换 TTS (Text-To-Speech) 是将文本形式的信息转换成自然语音的一种技术其最终目标是使计算机输出清晰而又自然的声音

bull 英语的语音合成在上世纪 80年代就早已成熟而中文 汉语的合成现在也趋于成熟并有了广泛的应用(如汽车导航仪智能手机等)

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 72: 第一篇  媒体

3 Unicode 与 ISOIEC 10646bull 关系

ndash 历史上存在两个独立的尝试创立单一字符集的组织即国际标准化组织( ISO )和多语言软件制造商组成的统一码协会组织( Unicodeorg )前者开发的 ISO 10646项目后者开发的 Unicode项目因此最初制定了不同的标准

ndash 1991年前后两个项目的参与者都认识到世界不需要两个不兼容的字符集于是它们开始合并双方的工作成果并为创立一个单一编码表而协同工作

ndash 从 Unicode20开始 Unicode采用了与 ISO 10646-1相同的字库和字码 ISO 也承诺 ISO10646 将不会替超出 U+10FFFF 的 UCS-4 编码赋值以使得两者保持一致

ndash 两个项目仍都存在并独立地公布各自的标准但 Unicode协会和 ISOIEC JTC1SC2 都同意保持两者标准的码表兼容并紧密地共同调整任何未来的扩展

异同bull Unicode协会公布的 Unicode 标准包含了 ISO 10646-1 实现级别

3 的基本多文种平面在两个标准里所有的字符都在相同的位置并且有相同的名字

bull ISO 10646 标准就像 ISO 8859 标准一样只不过是一个简单的字符集表它定义了一些编码的别名指定了一些与标准有关的术语并包括了规范说明指定了怎样使用 UCS连接其他 ISO 标准的实现等

bull Unicode 标准额外定义了许多与字符有关的语义符号学并详细说明了绘制某些语言(如阿拉伯语)表达形式的算法处理双向文字(比如拉丁文和希伯来文的混合文字)的算法排序与字符串比较所需的算法等等

bull 考虑到 Unicode 标准有一个易记的名字既便宜又包括更多的辅助信息因而它使用得更广泛然而

bull 一般认为用于打印 ISO 10646-1 标准的字体在某些方面的质量要高于用于打印 Unicode 20 的专业字体设计者总是被建议说要两个标准都实现但一些提供的样例字形有显著的区别 ISO 10646-1 标准同样使用四种不同的风格变体来显示表意文字如中文日文和韩文 (CJK) 而 Unicode 20 的表里只有中文的变体

4 UTFbull Unicode 和 UCS 都是一个字符集可以看作为内码bull UTF ( UnicodeUCS Transformation Format 统一码

通用字符集转换格式)是一种编码方式它的出现是因为 Unicode 和 UCS 不适宜在某些场合直接传输和处理

bull UCS 和 Unicode 只是分配整数给字符的编码表现在存在好几种将一串字符表示为一串字节的方法(如高或低位字节在前)

bull 最显而易见的两种方法是将 UCS 和 Unicode 文本存储为 2 个 或 4 个字节序列的串这两种方法的正式名称分别为 UCS-2 和 UCS-4

bull 常用的 UTF具体编码方式有 UTF-8 UTF-16 和 UTF-32

UTF-8

bull UTF-8 是 UTF 的一种具体编码方式在 ISO 10646-1 的附录 R 和 IETF 的 RFC 2279 里定义

bull 由于要使文档中的文字与 ASCII兼容故 UTF-8 选择了使用可变长度字节来储存 Unicode 和 UCS 例如ndash ASCII 字母继续使用 1 字节储存ndash 重音文字希腊字母或西里尔字母等使用 2 字节来储存ndash 常用的汉字就要使用 3 字节ndash 辅助平面字符则使用 4 字节ndash 即 ASCII 不作变换其他字符做变长编码每个字符 1~4 字节

bull UTF-8 通常作为外码bull 在 UTF-8 文件的开首很多时都放置一个 U+FEFF 字符

(UTF-8 以 EF BB BF 代表 ) 以显示这个文字档案是以UTF-8 编码

UTF-8 的优点bull 与 CPU 字节顺序无关可以在不同平台之间交流

bull 容错能力高任何一个字节损坏后最多只会导致一个编码码位损失不会链锁错误 ( 如 GB 码错一个字节就会整行乱码 )

UTF-8 的缺点bull UTF-8 使用可变长度字节储存使计算机程序设计变得复杂 (故此在计算机程序或操作系统内部多采用 UCS-2 编码 )

bull 在旧式的中文日文及朝鲜文编码之中每字符都使用 2 字节储存而 UTF-8 须使用 3 字节 (采用 UTF-16 编码则可只使用 2字节储存 )

bull 泰语以往使用的 ISO 8859-11 每字符只使用 1 字节储存而 UTF-8 须使用 3 字节

UTF-8储存的多字节串字符bull U-00000000 - U-0000007F 0xxxxxxx bull U-00000080 - U-000007FF 110xxxxx 10xxxxxx

bull U-00000800 - U-0000FFFF 1110xxxx 10xxxxxx

10xxxxxx bull U-00010000 - U-001FFFFF 11110xxx 10xxxxx

x 10xxxxxx 10xxxxxx bull 在多字节串中第一个字节的开头ldquo 1rdquo 的数目就

是整个串中字节的数目bull 每个使用 UTF-8储存的字符除了第一个字节外其余字节的头两个位元都是以 10 开始使文字处理器能够较快地找出每个字符的开始位置

UTF-16bull UTF-16 是 UTF 的另一种具体编码方式在 ISO 1064

6-1 的附录 Q 和 IETF 的 RFC 2781 里定义bull UTF-16 是变长码( 2 或 4 字节)大致相当于 20位编码值在 0 到 0x10FFFF 之间基本上就是 Unicode 编码的实现 UTF-16 与 CPU 字序有关但因为最省空间常作为网络传输的外码 UTF-16 是 Unicode 的完美编码

bull lt0x10000 的直接用其对应的 16位整数编码位于 0x10000 ~ 0x10FFFF 之间的用 0xD800~0xDBFF 的 16位整数后跟 0xDC00~0xDFFF 的 16位整数的 4 字节编码 gt 0x10FFFF 的不能用 UTF-16 表示

bull 在 Unicode 的 BMP 中定义的字符(无论是拉丁字母汉字或其他文字或符号)一律使用 2 字节存储而在辅助平面定义的字符则以两个 2 字节的值来存储

UTF-16 的特点bull UTF-16比起 UTF-8 的好处在于大部分字符都以固定长

度的 2 字节存储但 UTF-16却无法相容于 ASCII 编码bull UTF-16 有两种编码模式即大尾序( big Endian 高位字节在前)和小尾序( little Endian 高位字节在后)储存形式(一般來說以 Macintosh 制作和存储的文字使用大尾序格式以 Microsoft 或 Linux 制作和存储的文字使用小尾序格式)

bull 为了弄区分 UTF-16 文件的大小尾序在 UTF-16 文件的开头都会放置一个 U+FEFF 字符作为字节顺序标记 (UTF-16LE 以 FF FE代表 UTF-16BE 以 FE FF代表 ) 以显示该文档是以 UTF-16 编码的

UTF-32

bull UTF-32 仅使用了 Unicode范围 (0 到 0x10FFFF) 的 32位编码相当于 UCS-4 的子集

bull 由于 Unicode 和 ISOIEC 10646 的编码和结构与前面讲过的 GB 13000 类似或等价这里就不再做详细的介绍

5支持bull 现在 UnicodeUCS 已经获得了十分广泛的支

持ndash网络与浏览器(如 HTML 4050 XML 与 IE

Safari Netscape Firefox Chrome Opera Edge 等)

ndash操作系统(如 Windows NT2000XPVista7810 Mac OS X iOS Android和 Linux )

ndash 编程语言新版本(如 CC++JavaObjective-CC Swift 等)

Unicode 代码的浏览器显示代码 字符标准名称 (英语 )

浏览器的显示

amp65 大写拉丁字母 A A

amp223 小写拉丁字母 Sharp S szlig

amp254 小写拉丁字母 Thorn thorn

amp916 大写希腊字母 Delta Δ

amp1049 大写斯拉夫字母 Short I Й

amp1511 希伯来字母 Qof ק

amp1605 阿拉伯字母 Meem م

amp3671 泰文数字 7 ๗amp4688 埃塞俄比亚音节文字 Qha ቐ

amp12354 日语平假名 A あamp12450 日语片假名 A アamp21494 简体汉字 叶 叶amp33865 繁体汉字 葉 葉amp50685 韩国音节文字 Yeob 엽

23 文字输出bull 文字输出是指将计算机内的字符编码通过计算机的输出设备(如显示器打印机喇叭)展现出所对应字符的图形或声音供人们阅读或聆听

bull 本节主要介绍文字图示输出的字形技术bull 文字声音输出属于语音合成只在本节的末尾作简单的介绍

231 字形技术bull 文字 = 图形bull 不论是象形文字中的单字还是拼音文字

中的字母都是用图形来表示的bull 在计算机里文字的表示 输出(显示和打

印)涉及ndash 字型ndash 字体ndash 字库

1字型bull 字型指构造和生成字形的方法一般可分为

ndash 点阵字 DOS 显卡 ROM 金山 科印特点似位图显示快占空间(字库大)放大后有马赛克效应

bull 显示字母 88 汉字 1616bull 打印 2424 4848 6464

ndash 矢量字单线条用于笔式绘图仪特点字库小算法简单难看

ndash 轮廓字用曲线描绘字的轮廓输出效果好所见即所得(WYSWYG) 可无级放大易实现空心 阴影 填充 变形等各种特效功能轮廓曲线一般采用样条曲线如 TrueType (Apple 1991 Mac OS Microsoft 1992 Windows 31)用的是二次 B 样条 Bezier曲线中文之星 RichWin采用的是三次 B 样条 Bezier曲线

字型种类

2字体bull 字体指字的形状风格如

ndash 汉字的

ndash 英文的

宋体楷体黑体仿宋

行楷隶书新魏幼圆

Times New Roman Arial Narrow Courier New

常用汉字字体bull 宋体mdashmdash宋体来自于北宋时雕版刻书所采用的欧体字(唐朝欧阳询体)宋体字的横顿拉捺挑钩别具特色间架平正疏密适中字体秀丽遒劲但笔画横细竖粗适合于刀刻不宜于手写现在宋体广泛用于印刷常来表现文档的正文

bull 仿宋体mdashmdash 1920年钱塘的丁辅之与丁善之等人将明代以后盛行的方廓形字体加以改造创造出长形和方形的聚珍仿宋后来演化为现在的仿宋体仿宋体比较接近于手写体为宋体和楷体的折中是采用的宋体的结构和楷体的笔法而成现常来表现打印文件以及文档的摘要和注释等

bull 黑体mdashmdash黑体是适应工艺美术的发展而出现的一种等线体是从日本引进的黑体的结构与宋体没有什么差别只是其笔画粗细一致健实粗壮主要用于文档的标题和重点及标语广告等方面

bull 楷体mdashmdash楷体源于楷书楷体的笔画圆浑笔调灵活结构端正美观但不宜于木板雕刻所以直到清末西洋的石板印刷术传入后才开始广泛用于印刷现代的楷体创造于 20世纪的二三十年代主要用于文档的正文(多用于中小学教材)也可用于工艺美术等方面

3字库bull 字库为一种文字的某一字体的所有字符的集合一般存放在一个磁盘文件中

bull 由于象形文字中单字的数量大(成千上万)而拼音文字中字母的数量小(不到一百个)所以字库的大小有很大的差别

bull 为了使文档界面丰富多彩常见的字处理软件都支持多种字体带有众多字库

4点阵字型的国家标准bull 我国已经公布了若干字体的点阵字型之国家标准

ndash GB 50071-19852001 信息技术 汉字编码字符集(基本集) 24 点阵字型

ndash GB 50072-19852001 信息技术 汉字编码字符集(辅助集) 24 点阵字型

ndash GB 5199-19862001 信息技术 汉字编码字符集(基本集) 16 点阵字型 宋体

ndash GB 6345-19862001 信息技术 汉字编码字符集(基本集) 32 点阵字型 宋体

ndash GB 12041-2001 信息技术 汉字编码字符集(基本集) 48点阵字型 宋体

ndash GB 17698-1999 信息技术 通用多八位编码字符集( I 区) 汉字 16 点阵字型

232 语音合成bull 文字的声音输出主要使用的是语音合成的技术bull 语音合成功能是ldquo文rarr语rdquo转换bull 文语转换 TTS (Text-To-Speech) 是将文本形式的信息转换成自然语音的一种技术其最终目标是使计算机输出清晰而又自然的声音

bull 英语的语音合成在上世纪 80年代就早已成熟而中文 汉语的合成现在也趋于成熟并有了广泛的应用(如汽车导航仪智能手机等)

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 73: 第一篇  媒体

异同bull Unicode协会公布的 Unicode 标准包含了 ISO 10646-1 实现级别

3 的基本多文种平面在两个标准里所有的字符都在相同的位置并且有相同的名字

bull ISO 10646 标准就像 ISO 8859 标准一样只不过是一个简单的字符集表它定义了一些编码的别名指定了一些与标准有关的术语并包括了规范说明指定了怎样使用 UCS连接其他 ISO 标准的实现等

bull Unicode 标准额外定义了许多与字符有关的语义符号学并详细说明了绘制某些语言(如阿拉伯语)表达形式的算法处理双向文字(比如拉丁文和希伯来文的混合文字)的算法排序与字符串比较所需的算法等等

bull 考虑到 Unicode 标准有一个易记的名字既便宜又包括更多的辅助信息因而它使用得更广泛然而

bull 一般认为用于打印 ISO 10646-1 标准的字体在某些方面的质量要高于用于打印 Unicode 20 的专业字体设计者总是被建议说要两个标准都实现但一些提供的样例字形有显著的区别 ISO 10646-1 标准同样使用四种不同的风格变体来显示表意文字如中文日文和韩文 (CJK) 而 Unicode 20 的表里只有中文的变体

4 UTFbull Unicode 和 UCS 都是一个字符集可以看作为内码bull UTF ( UnicodeUCS Transformation Format 统一码

通用字符集转换格式)是一种编码方式它的出现是因为 Unicode 和 UCS 不适宜在某些场合直接传输和处理

bull UCS 和 Unicode 只是分配整数给字符的编码表现在存在好几种将一串字符表示为一串字节的方法(如高或低位字节在前)

bull 最显而易见的两种方法是将 UCS 和 Unicode 文本存储为 2 个 或 4 个字节序列的串这两种方法的正式名称分别为 UCS-2 和 UCS-4

bull 常用的 UTF具体编码方式有 UTF-8 UTF-16 和 UTF-32

UTF-8

bull UTF-8 是 UTF 的一种具体编码方式在 ISO 10646-1 的附录 R 和 IETF 的 RFC 2279 里定义

bull 由于要使文档中的文字与 ASCII兼容故 UTF-8 选择了使用可变长度字节来储存 Unicode 和 UCS 例如ndash ASCII 字母继续使用 1 字节储存ndash 重音文字希腊字母或西里尔字母等使用 2 字节来储存ndash 常用的汉字就要使用 3 字节ndash 辅助平面字符则使用 4 字节ndash 即 ASCII 不作变换其他字符做变长编码每个字符 1~4 字节

bull UTF-8 通常作为外码bull 在 UTF-8 文件的开首很多时都放置一个 U+FEFF 字符

(UTF-8 以 EF BB BF 代表 ) 以显示这个文字档案是以UTF-8 编码

UTF-8 的优点bull 与 CPU 字节顺序无关可以在不同平台之间交流

bull 容错能力高任何一个字节损坏后最多只会导致一个编码码位损失不会链锁错误 ( 如 GB 码错一个字节就会整行乱码 )

UTF-8 的缺点bull UTF-8 使用可变长度字节储存使计算机程序设计变得复杂 (故此在计算机程序或操作系统内部多采用 UCS-2 编码 )

bull 在旧式的中文日文及朝鲜文编码之中每字符都使用 2 字节储存而 UTF-8 须使用 3 字节 (采用 UTF-16 编码则可只使用 2字节储存 )

bull 泰语以往使用的 ISO 8859-11 每字符只使用 1 字节储存而 UTF-8 须使用 3 字节

UTF-8储存的多字节串字符bull U-00000000 - U-0000007F 0xxxxxxx bull U-00000080 - U-000007FF 110xxxxx 10xxxxxx

bull U-00000800 - U-0000FFFF 1110xxxx 10xxxxxx

10xxxxxx bull U-00010000 - U-001FFFFF 11110xxx 10xxxxx

x 10xxxxxx 10xxxxxx bull 在多字节串中第一个字节的开头ldquo 1rdquo 的数目就

是整个串中字节的数目bull 每个使用 UTF-8储存的字符除了第一个字节外其余字节的头两个位元都是以 10 开始使文字处理器能够较快地找出每个字符的开始位置

UTF-16bull UTF-16 是 UTF 的另一种具体编码方式在 ISO 1064

6-1 的附录 Q 和 IETF 的 RFC 2781 里定义bull UTF-16 是变长码( 2 或 4 字节)大致相当于 20位编码值在 0 到 0x10FFFF 之间基本上就是 Unicode 编码的实现 UTF-16 与 CPU 字序有关但因为最省空间常作为网络传输的外码 UTF-16 是 Unicode 的完美编码

bull lt0x10000 的直接用其对应的 16位整数编码位于 0x10000 ~ 0x10FFFF 之间的用 0xD800~0xDBFF 的 16位整数后跟 0xDC00~0xDFFF 的 16位整数的 4 字节编码 gt 0x10FFFF 的不能用 UTF-16 表示

bull 在 Unicode 的 BMP 中定义的字符(无论是拉丁字母汉字或其他文字或符号)一律使用 2 字节存储而在辅助平面定义的字符则以两个 2 字节的值来存储

UTF-16 的特点bull UTF-16比起 UTF-8 的好处在于大部分字符都以固定长

度的 2 字节存储但 UTF-16却无法相容于 ASCII 编码bull UTF-16 有两种编码模式即大尾序( big Endian 高位字节在前)和小尾序( little Endian 高位字节在后)储存形式(一般來說以 Macintosh 制作和存储的文字使用大尾序格式以 Microsoft 或 Linux 制作和存储的文字使用小尾序格式)

bull 为了弄区分 UTF-16 文件的大小尾序在 UTF-16 文件的开头都会放置一个 U+FEFF 字符作为字节顺序标记 (UTF-16LE 以 FF FE代表 UTF-16BE 以 FE FF代表 ) 以显示该文档是以 UTF-16 编码的

UTF-32

bull UTF-32 仅使用了 Unicode范围 (0 到 0x10FFFF) 的 32位编码相当于 UCS-4 的子集

bull 由于 Unicode 和 ISOIEC 10646 的编码和结构与前面讲过的 GB 13000 类似或等价这里就不再做详细的介绍

5支持bull 现在 UnicodeUCS 已经获得了十分广泛的支

持ndash网络与浏览器(如 HTML 4050 XML 与 IE

Safari Netscape Firefox Chrome Opera Edge 等)

ndash操作系统(如 Windows NT2000XPVista7810 Mac OS X iOS Android和 Linux )

ndash 编程语言新版本(如 CC++JavaObjective-CC Swift 等)

Unicode 代码的浏览器显示代码 字符标准名称 (英语 )

浏览器的显示

amp65 大写拉丁字母 A A

amp223 小写拉丁字母 Sharp S szlig

amp254 小写拉丁字母 Thorn thorn

amp916 大写希腊字母 Delta Δ

amp1049 大写斯拉夫字母 Short I Й

amp1511 希伯来字母 Qof ק

amp1605 阿拉伯字母 Meem م

amp3671 泰文数字 7 ๗amp4688 埃塞俄比亚音节文字 Qha ቐ

amp12354 日语平假名 A あamp12450 日语片假名 A アamp21494 简体汉字 叶 叶amp33865 繁体汉字 葉 葉amp50685 韩国音节文字 Yeob 엽

23 文字输出bull 文字输出是指将计算机内的字符编码通过计算机的输出设备(如显示器打印机喇叭)展现出所对应字符的图形或声音供人们阅读或聆听

bull 本节主要介绍文字图示输出的字形技术bull 文字声音输出属于语音合成只在本节的末尾作简单的介绍

231 字形技术bull 文字 = 图形bull 不论是象形文字中的单字还是拼音文字

中的字母都是用图形来表示的bull 在计算机里文字的表示 输出(显示和打

印)涉及ndash 字型ndash 字体ndash 字库

1字型bull 字型指构造和生成字形的方法一般可分为

ndash 点阵字 DOS 显卡 ROM 金山 科印特点似位图显示快占空间(字库大)放大后有马赛克效应

bull 显示字母 88 汉字 1616bull 打印 2424 4848 6464

ndash 矢量字单线条用于笔式绘图仪特点字库小算法简单难看

ndash 轮廓字用曲线描绘字的轮廓输出效果好所见即所得(WYSWYG) 可无级放大易实现空心 阴影 填充 变形等各种特效功能轮廓曲线一般采用样条曲线如 TrueType (Apple 1991 Mac OS Microsoft 1992 Windows 31)用的是二次 B 样条 Bezier曲线中文之星 RichWin采用的是三次 B 样条 Bezier曲线

字型种类

2字体bull 字体指字的形状风格如

ndash 汉字的

ndash 英文的

宋体楷体黑体仿宋

行楷隶书新魏幼圆

Times New Roman Arial Narrow Courier New

常用汉字字体bull 宋体mdashmdash宋体来自于北宋时雕版刻书所采用的欧体字(唐朝欧阳询体)宋体字的横顿拉捺挑钩别具特色间架平正疏密适中字体秀丽遒劲但笔画横细竖粗适合于刀刻不宜于手写现在宋体广泛用于印刷常来表现文档的正文

bull 仿宋体mdashmdash 1920年钱塘的丁辅之与丁善之等人将明代以后盛行的方廓形字体加以改造创造出长形和方形的聚珍仿宋后来演化为现在的仿宋体仿宋体比较接近于手写体为宋体和楷体的折中是采用的宋体的结构和楷体的笔法而成现常来表现打印文件以及文档的摘要和注释等

bull 黑体mdashmdash黑体是适应工艺美术的发展而出现的一种等线体是从日本引进的黑体的结构与宋体没有什么差别只是其笔画粗细一致健实粗壮主要用于文档的标题和重点及标语广告等方面

bull 楷体mdashmdash楷体源于楷书楷体的笔画圆浑笔调灵活结构端正美观但不宜于木板雕刻所以直到清末西洋的石板印刷术传入后才开始广泛用于印刷现代的楷体创造于 20世纪的二三十年代主要用于文档的正文(多用于中小学教材)也可用于工艺美术等方面

3字库bull 字库为一种文字的某一字体的所有字符的集合一般存放在一个磁盘文件中

bull 由于象形文字中单字的数量大(成千上万)而拼音文字中字母的数量小(不到一百个)所以字库的大小有很大的差别

bull 为了使文档界面丰富多彩常见的字处理软件都支持多种字体带有众多字库

4点阵字型的国家标准bull 我国已经公布了若干字体的点阵字型之国家标准

ndash GB 50071-19852001 信息技术 汉字编码字符集(基本集) 24 点阵字型

ndash GB 50072-19852001 信息技术 汉字编码字符集(辅助集) 24 点阵字型

ndash GB 5199-19862001 信息技术 汉字编码字符集(基本集) 16 点阵字型 宋体

ndash GB 6345-19862001 信息技术 汉字编码字符集(基本集) 32 点阵字型 宋体

ndash GB 12041-2001 信息技术 汉字编码字符集(基本集) 48点阵字型 宋体

ndash GB 17698-1999 信息技术 通用多八位编码字符集( I 区) 汉字 16 点阵字型

232 语音合成bull 文字的声音输出主要使用的是语音合成的技术bull 语音合成功能是ldquo文rarr语rdquo转换bull 文语转换 TTS (Text-To-Speech) 是将文本形式的信息转换成自然语音的一种技术其最终目标是使计算机输出清晰而又自然的声音

bull 英语的语音合成在上世纪 80年代就早已成熟而中文 汉语的合成现在也趋于成熟并有了广泛的应用(如汽车导航仪智能手机等)

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 74: 第一篇  媒体

4 UTFbull Unicode 和 UCS 都是一个字符集可以看作为内码bull UTF ( UnicodeUCS Transformation Format 统一码

通用字符集转换格式)是一种编码方式它的出现是因为 Unicode 和 UCS 不适宜在某些场合直接传输和处理

bull UCS 和 Unicode 只是分配整数给字符的编码表现在存在好几种将一串字符表示为一串字节的方法(如高或低位字节在前)

bull 最显而易见的两种方法是将 UCS 和 Unicode 文本存储为 2 个 或 4 个字节序列的串这两种方法的正式名称分别为 UCS-2 和 UCS-4

bull 常用的 UTF具体编码方式有 UTF-8 UTF-16 和 UTF-32

UTF-8

bull UTF-8 是 UTF 的一种具体编码方式在 ISO 10646-1 的附录 R 和 IETF 的 RFC 2279 里定义

bull 由于要使文档中的文字与 ASCII兼容故 UTF-8 选择了使用可变长度字节来储存 Unicode 和 UCS 例如ndash ASCII 字母继续使用 1 字节储存ndash 重音文字希腊字母或西里尔字母等使用 2 字节来储存ndash 常用的汉字就要使用 3 字节ndash 辅助平面字符则使用 4 字节ndash 即 ASCII 不作变换其他字符做变长编码每个字符 1~4 字节

bull UTF-8 通常作为外码bull 在 UTF-8 文件的开首很多时都放置一个 U+FEFF 字符

(UTF-8 以 EF BB BF 代表 ) 以显示这个文字档案是以UTF-8 编码

UTF-8 的优点bull 与 CPU 字节顺序无关可以在不同平台之间交流

bull 容错能力高任何一个字节损坏后最多只会导致一个编码码位损失不会链锁错误 ( 如 GB 码错一个字节就会整行乱码 )

UTF-8 的缺点bull UTF-8 使用可变长度字节储存使计算机程序设计变得复杂 (故此在计算机程序或操作系统内部多采用 UCS-2 编码 )

bull 在旧式的中文日文及朝鲜文编码之中每字符都使用 2 字节储存而 UTF-8 须使用 3 字节 (采用 UTF-16 编码则可只使用 2字节储存 )

bull 泰语以往使用的 ISO 8859-11 每字符只使用 1 字节储存而 UTF-8 须使用 3 字节

UTF-8储存的多字节串字符bull U-00000000 - U-0000007F 0xxxxxxx bull U-00000080 - U-000007FF 110xxxxx 10xxxxxx

bull U-00000800 - U-0000FFFF 1110xxxx 10xxxxxx

10xxxxxx bull U-00010000 - U-001FFFFF 11110xxx 10xxxxx

x 10xxxxxx 10xxxxxx bull 在多字节串中第一个字节的开头ldquo 1rdquo 的数目就

是整个串中字节的数目bull 每个使用 UTF-8储存的字符除了第一个字节外其余字节的头两个位元都是以 10 开始使文字处理器能够较快地找出每个字符的开始位置

UTF-16bull UTF-16 是 UTF 的另一种具体编码方式在 ISO 1064

6-1 的附录 Q 和 IETF 的 RFC 2781 里定义bull UTF-16 是变长码( 2 或 4 字节)大致相当于 20位编码值在 0 到 0x10FFFF 之间基本上就是 Unicode 编码的实现 UTF-16 与 CPU 字序有关但因为最省空间常作为网络传输的外码 UTF-16 是 Unicode 的完美编码

bull lt0x10000 的直接用其对应的 16位整数编码位于 0x10000 ~ 0x10FFFF 之间的用 0xD800~0xDBFF 的 16位整数后跟 0xDC00~0xDFFF 的 16位整数的 4 字节编码 gt 0x10FFFF 的不能用 UTF-16 表示

bull 在 Unicode 的 BMP 中定义的字符(无论是拉丁字母汉字或其他文字或符号)一律使用 2 字节存储而在辅助平面定义的字符则以两个 2 字节的值来存储

UTF-16 的特点bull UTF-16比起 UTF-8 的好处在于大部分字符都以固定长

度的 2 字节存储但 UTF-16却无法相容于 ASCII 编码bull UTF-16 有两种编码模式即大尾序( big Endian 高位字节在前)和小尾序( little Endian 高位字节在后)储存形式(一般來說以 Macintosh 制作和存储的文字使用大尾序格式以 Microsoft 或 Linux 制作和存储的文字使用小尾序格式)

bull 为了弄区分 UTF-16 文件的大小尾序在 UTF-16 文件的开头都会放置一个 U+FEFF 字符作为字节顺序标记 (UTF-16LE 以 FF FE代表 UTF-16BE 以 FE FF代表 ) 以显示该文档是以 UTF-16 编码的

UTF-32

bull UTF-32 仅使用了 Unicode范围 (0 到 0x10FFFF) 的 32位编码相当于 UCS-4 的子集

bull 由于 Unicode 和 ISOIEC 10646 的编码和结构与前面讲过的 GB 13000 类似或等价这里就不再做详细的介绍

5支持bull 现在 UnicodeUCS 已经获得了十分广泛的支

持ndash网络与浏览器(如 HTML 4050 XML 与 IE

Safari Netscape Firefox Chrome Opera Edge 等)

ndash操作系统(如 Windows NT2000XPVista7810 Mac OS X iOS Android和 Linux )

ndash 编程语言新版本(如 CC++JavaObjective-CC Swift 等)

Unicode 代码的浏览器显示代码 字符标准名称 (英语 )

浏览器的显示

amp65 大写拉丁字母 A A

amp223 小写拉丁字母 Sharp S szlig

amp254 小写拉丁字母 Thorn thorn

amp916 大写希腊字母 Delta Δ

amp1049 大写斯拉夫字母 Short I Й

amp1511 希伯来字母 Qof ק

amp1605 阿拉伯字母 Meem م

amp3671 泰文数字 7 ๗amp4688 埃塞俄比亚音节文字 Qha ቐ

amp12354 日语平假名 A あamp12450 日语片假名 A アamp21494 简体汉字 叶 叶amp33865 繁体汉字 葉 葉amp50685 韩国音节文字 Yeob 엽

23 文字输出bull 文字输出是指将计算机内的字符编码通过计算机的输出设备(如显示器打印机喇叭)展现出所对应字符的图形或声音供人们阅读或聆听

bull 本节主要介绍文字图示输出的字形技术bull 文字声音输出属于语音合成只在本节的末尾作简单的介绍

231 字形技术bull 文字 = 图形bull 不论是象形文字中的单字还是拼音文字

中的字母都是用图形来表示的bull 在计算机里文字的表示 输出(显示和打

印)涉及ndash 字型ndash 字体ndash 字库

1字型bull 字型指构造和生成字形的方法一般可分为

ndash 点阵字 DOS 显卡 ROM 金山 科印特点似位图显示快占空间(字库大)放大后有马赛克效应

bull 显示字母 88 汉字 1616bull 打印 2424 4848 6464

ndash 矢量字单线条用于笔式绘图仪特点字库小算法简单难看

ndash 轮廓字用曲线描绘字的轮廓输出效果好所见即所得(WYSWYG) 可无级放大易实现空心 阴影 填充 变形等各种特效功能轮廓曲线一般采用样条曲线如 TrueType (Apple 1991 Mac OS Microsoft 1992 Windows 31)用的是二次 B 样条 Bezier曲线中文之星 RichWin采用的是三次 B 样条 Bezier曲线

字型种类

2字体bull 字体指字的形状风格如

ndash 汉字的

ndash 英文的

宋体楷体黑体仿宋

行楷隶书新魏幼圆

Times New Roman Arial Narrow Courier New

常用汉字字体bull 宋体mdashmdash宋体来自于北宋时雕版刻书所采用的欧体字(唐朝欧阳询体)宋体字的横顿拉捺挑钩别具特色间架平正疏密适中字体秀丽遒劲但笔画横细竖粗适合于刀刻不宜于手写现在宋体广泛用于印刷常来表现文档的正文

bull 仿宋体mdashmdash 1920年钱塘的丁辅之与丁善之等人将明代以后盛行的方廓形字体加以改造创造出长形和方形的聚珍仿宋后来演化为现在的仿宋体仿宋体比较接近于手写体为宋体和楷体的折中是采用的宋体的结构和楷体的笔法而成现常来表现打印文件以及文档的摘要和注释等

bull 黑体mdashmdash黑体是适应工艺美术的发展而出现的一种等线体是从日本引进的黑体的结构与宋体没有什么差别只是其笔画粗细一致健实粗壮主要用于文档的标题和重点及标语广告等方面

bull 楷体mdashmdash楷体源于楷书楷体的笔画圆浑笔调灵活结构端正美观但不宜于木板雕刻所以直到清末西洋的石板印刷术传入后才开始广泛用于印刷现代的楷体创造于 20世纪的二三十年代主要用于文档的正文(多用于中小学教材)也可用于工艺美术等方面

3字库bull 字库为一种文字的某一字体的所有字符的集合一般存放在一个磁盘文件中

bull 由于象形文字中单字的数量大(成千上万)而拼音文字中字母的数量小(不到一百个)所以字库的大小有很大的差别

bull 为了使文档界面丰富多彩常见的字处理软件都支持多种字体带有众多字库

4点阵字型的国家标准bull 我国已经公布了若干字体的点阵字型之国家标准

ndash GB 50071-19852001 信息技术 汉字编码字符集(基本集) 24 点阵字型

ndash GB 50072-19852001 信息技术 汉字编码字符集(辅助集) 24 点阵字型

ndash GB 5199-19862001 信息技术 汉字编码字符集(基本集) 16 点阵字型 宋体

ndash GB 6345-19862001 信息技术 汉字编码字符集(基本集) 32 点阵字型 宋体

ndash GB 12041-2001 信息技术 汉字编码字符集(基本集) 48点阵字型 宋体

ndash GB 17698-1999 信息技术 通用多八位编码字符集( I 区) 汉字 16 点阵字型

232 语音合成bull 文字的声音输出主要使用的是语音合成的技术bull 语音合成功能是ldquo文rarr语rdquo转换bull 文语转换 TTS (Text-To-Speech) 是将文本形式的信息转换成自然语音的一种技术其最终目标是使计算机输出清晰而又自然的声音

bull 英语的语音合成在上世纪 80年代就早已成熟而中文 汉语的合成现在也趋于成熟并有了广泛的应用(如汽车导航仪智能手机等)

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 75: 第一篇  媒体

UTF-8

bull UTF-8 是 UTF 的一种具体编码方式在 ISO 10646-1 的附录 R 和 IETF 的 RFC 2279 里定义

bull 由于要使文档中的文字与 ASCII兼容故 UTF-8 选择了使用可变长度字节来储存 Unicode 和 UCS 例如ndash ASCII 字母继续使用 1 字节储存ndash 重音文字希腊字母或西里尔字母等使用 2 字节来储存ndash 常用的汉字就要使用 3 字节ndash 辅助平面字符则使用 4 字节ndash 即 ASCII 不作变换其他字符做变长编码每个字符 1~4 字节

bull UTF-8 通常作为外码bull 在 UTF-8 文件的开首很多时都放置一个 U+FEFF 字符

(UTF-8 以 EF BB BF 代表 ) 以显示这个文字档案是以UTF-8 编码

UTF-8 的优点bull 与 CPU 字节顺序无关可以在不同平台之间交流

bull 容错能力高任何一个字节损坏后最多只会导致一个编码码位损失不会链锁错误 ( 如 GB 码错一个字节就会整行乱码 )

UTF-8 的缺点bull UTF-8 使用可变长度字节储存使计算机程序设计变得复杂 (故此在计算机程序或操作系统内部多采用 UCS-2 编码 )

bull 在旧式的中文日文及朝鲜文编码之中每字符都使用 2 字节储存而 UTF-8 须使用 3 字节 (采用 UTF-16 编码则可只使用 2字节储存 )

bull 泰语以往使用的 ISO 8859-11 每字符只使用 1 字节储存而 UTF-8 须使用 3 字节

UTF-8储存的多字节串字符bull U-00000000 - U-0000007F 0xxxxxxx bull U-00000080 - U-000007FF 110xxxxx 10xxxxxx

bull U-00000800 - U-0000FFFF 1110xxxx 10xxxxxx

10xxxxxx bull U-00010000 - U-001FFFFF 11110xxx 10xxxxx

x 10xxxxxx 10xxxxxx bull 在多字节串中第一个字节的开头ldquo 1rdquo 的数目就

是整个串中字节的数目bull 每个使用 UTF-8储存的字符除了第一个字节外其余字节的头两个位元都是以 10 开始使文字处理器能够较快地找出每个字符的开始位置

UTF-16bull UTF-16 是 UTF 的另一种具体编码方式在 ISO 1064

6-1 的附录 Q 和 IETF 的 RFC 2781 里定义bull UTF-16 是变长码( 2 或 4 字节)大致相当于 20位编码值在 0 到 0x10FFFF 之间基本上就是 Unicode 编码的实现 UTF-16 与 CPU 字序有关但因为最省空间常作为网络传输的外码 UTF-16 是 Unicode 的完美编码

bull lt0x10000 的直接用其对应的 16位整数编码位于 0x10000 ~ 0x10FFFF 之间的用 0xD800~0xDBFF 的 16位整数后跟 0xDC00~0xDFFF 的 16位整数的 4 字节编码 gt 0x10FFFF 的不能用 UTF-16 表示

bull 在 Unicode 的 BMP 中定义的字符(无论是拉丁字母汉字或其他文字或符号)一律使用 2 字节存储而在辅助平面定义的字符则以两个 2 字节的值来存储

UTF-16 的特点bull UTF-16比起 UTF-8 的好处在于大部分字符都以固定长

度的 2 字节存储但 UTF-16却无法相容于 ASCII 编码bull UTF-16 有两种编码模式即大尾序( big Endian 高位字节在前)和小尾序( little Endian 高位字节在后)储存形式(一般來說以 Macintosh 制作和存储的文字使用大尾序格式以 Microsoft 或 Linux 制作和存储的文字使用小尾序格式)

bull 为了弄区分 UTF-16 文件的大小尾序在 UTF-16 文件的开头都会放置一个 U+FEFF 字符作为字节顺序标记 (UTF-16LE 以 FF FE代表 UTF-16BE 以 FE FF代表 ) 以显示该文档是以 UTF-16 编码的

UTF-32

bull UTF-32 仅使用了 Unicode范围 (0 到 0x10FFFF) 的 32位编码相当于 UCS-4 的子集

bull 由于 Unicode 和 ISOIEC 10646 的编码和结构与前面讲过的 GB 13000 类似或等价这里就不再做详细的介绍

5支持bull 现在 UnicodeUCS 已经获得了十分广泛的支

持ndash网络与浏览器(如 HTML 4050 XML 与 IE

Safari Netscape Firefox Chrome Opera Edge 等)

ndash操作系统(如 Windows NT2000XPVista7810 Mac OS X iOS Android和 Linux )

ndash 编程语言新版本(如 CC++JavaObjective-CC Swift 等)

Unicode 代码的浏览器显示代码 字符标准名称 (英语 )

浏览器的显示

amp65 大写拉丁字母 A A

amp223 小写拉丁字母 Sharp S szlig

amp254 小写拉丁字母 Thorn thorn

amp916 大写希腊字母 Delta Δ

amp1049 大写斯拉夫字母 Short I Й

amp1511 希伯来字母 Qof ק

amp1605 阿拉伯字母 Meem م

amp3671 泰文数字 7 ๗amp4688 埃塞俄比亚音节文字 Qha ቐ

amp12354 日语平假名 A あamp12450 日语片假名 A アamp21494 简体汉字 叶 叶amp33865 繁体汉字 葉 葉amp50685 韩国音节文字 Yeob 엽

23 文字输出bull 文字输出是指将计算机内的字符编码通过计算机的输出设备(如显示器打印机喇叭)展现出所对应字符的图形或声音供人们阅读或聆听

bull 本节主要介绍文字图示输出的字形技术bull 文字声音输出属于语音合成只在本节的末尾作简单的介绍

231 字形技术bull 文字 = 图形bull 不论是象形文字中的单字还是拼音文字

中的字母都是用图形来表示的bull 在计算机里文字的表示 输出(显示和打

印)涉及ndash 字型ndash 字体ndash 字库

1字型bull 字型指构造和生成字形的方法一般可分为

ndash 点阵字 DOS 显卡 ROM 金山 科印特点似位图显示快占空间(字库大)放大后有马赛克效应

bull 显示字母 88 汉字 1616bull 打印 2424 4848 6464

ndash 矢量字单线条用于笔式绘图仪特点字库小算法简单难看

ndash 轮廓字用曲线描绘字的轮廓输出效果好所见即所得(WYSWYG) 可无级放大易实现空心 阴影 填充 变形等各种特效功能轮廓曲线一般采用样条曲线如 TrueType (Apple 1991 Mac OS Microsoft 1992 Windows 31)用的是二次 B 样条 Bezier曲线中文之星 RichWin采用的是三次 B 样条 Bezier曲线

字型种类

2字体bull 字体指字的形状风格如

ndash 汉字的

ndash 英文的

宋体楷体黑体仿宋

行楷隶书新魏幼圆

Times New Roman Arial Narrow Courier New

常用汉字字体bull 宋体mdashmdash宋体来自于北宋时雕版刻书所采用的欧体字(唐朝欧阳询体)宋体字的横顿拉捺挑钩别具特色间架平正疏密适中字体秀丽遒劲但笔画横细竖粗适合于刀刻不宜于手写现在宋体广泛用于印刷常来表现文档的正文

bull 仿宋体mdashmdash 1920年钱塘的丁辅之与丁善之等人将明代以后盛行的方廓形字体加以改造创造出长形和方形的聚珍仿宋后来演化为现在的仿宋体仿宋体比较接近于手写体为宋体和楷体的折中是采用的宋体的结构和楷体的笔法而成现常来表现打印文件以及文档的摘要和注释等

bull 黑体mdashmdash黑体是适应工艺美术的发展而出现的一种等线体是从日本引进的黑体的结构与宋体没有什么差别只是其笔画粗细一致健实粗壮主要用于文档的标题和重点及标语广告等方面

bull 楷体mdashmdash楷体源于楷书楷体的笔画圆浑笔调灵活结构端正美观但不宜于木板雕刻所以直到清末西洋的石板印刷术传入后才开始广泛用于印刷现代的楷体创造于 20世纪的二三十年代主要用于文档的正文(多用于中小学教材)也可用于工艺美术等方面

3字库bull 字库为一种文字的某一字体的所有字符的集合一般存放在一个磁盘文件中

bull 由于象形文字中单字的数量大(成千上万)而拼音文字中字母的数量小(不到一百个)所以字库的大小有很大的差别

bull 为了使文档界面丰富多彩常见的字处理软件都支持多种字体带有众多字库

4点阵字型的国家标准bull 我国已经公布了若干字体的点阵字型之国家标准

ndash GB 50071-19852001 信息技术 汉字编码字符集(基本集) 24 点阵字型

ndash GB 50072-19852001 信息技术 汉字编码字符集(辅助集) 24 点阵字型

ndash GB 5199-19862001 信息技术 汉字编码字符集(基本集) 16 点阵字型 宋体

ndash GB 6345-19862001 信息技术 汉字编码字符集(基本集) 32 点阵字型 宋体

ndash GB 12041-2001 信息技术 汉字编码字符集(基本集) 48点阵字型 宋体

ndash GB 17698-1999 信息技术 通用多八位编码字符集( I 区) 汉字 16 点阵字型

232 语音合成bull 文字的声音输出主要使用的是语音合成的技术bull 语音合成功能是ldquo文rarr语rdquo转换bull 文语转换 TTS (Text-To-Speech) 是将文本形式的信息转换成自然语音的一种技术其最终目标是使计算机输出清晰而又自然的声音

bull 英语的语音合成在上世纪 80年代就早已成熟而中文 汉语的合成现在也趋于成熟并有了广泛的应用(如汽车导航仪智能手机等)

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 76: 第一篇  媒体

UTF-8 的优点bull 与 CPU 字节顺序无关可以在不同平台之间交流

bull 容错能力高任何一个字节损坏后最多只会导致一个编码码位损失不会链锁错误 ( 如 GB 码错一个字节就会整行乱码 )

UTF-8 的缺点bull UTF-8 使用可变长度字节储存使计算机程序设计变得复杂 (故此在计算机程序或操作系统内部多采用 UCS-2 编码 )

bull 在旧式的中文日文及朝鲜文编码之中每字符都使用 2 字节储存而 UTF-8 须使用 3 字节 (采用 UTF-16 编码则可只使用 2字节储存 )

bull 泰语以往使用的 ISO 8859-11 每字符只使用 1 字节储存而 UTF-8 须使用 3 字节

UTF-8储存的多字节串字符bull U-00000000 - U-0000007F 0xxxxxxx bull U-00000080 - U-000007FF 110xxxxx 10xxxxxx

bull U-00000800 - U-0000FFFF 1110xxxx 10xxxxxx

10xxxxxx bull U-00010000 - U-001FFFFF 11110xxx 10xxxxx

x 10xxxxxx 10xxxxxx bull 在多字节串中第一个字节的开头ldquo 1rdquo 的数目就

是整个串中字节的数目bull 每个使用 UTF-8储存的字符除了第一个字节外其余字节的头两个位元都是以 10 开始使文字处理器能够较快地找出每个字符的开始位置

UTF-16bull UTF-16 是 UTF 的另一种具体编码方式在 ISO 1064

6-1 的附录 Q 和 IETF 的 RFC 2781 里定义bull UTF-16 是变长码( 2 或 4 字节)大致相当于 20位编码值在 0 到 0x10FFFF 之间基本上就是 Unicode 编码的实现 UTF-16 与 CPU 字序有关但因为最省空间常作为网络传输的外码 UTF-16 是 Unicode 的完美编码

bull lt0x10000 的直接用其对应的 16位整数编码位于 0x10000 ~ 0x10FFFF 之间的用 0xD800~0xDBFF 的 16位整数后跟 0xDC00~0xDFFF 的 16位整数的 4 字节编码 gt 0x10FFFF 的不能用 UTF-16 表示

bull 在 Unicode 的 BMP 中定义的字符(无论是拉丁字母汉字或其他文字或符号)一律使用 2 字节存储而在辅助平面定义的字符则以两个 2 字节的值来存储

UTF-16 的特点bull UTF-16比起 UTF-8 的好处在于大部分字符都以固定长

度的 2 字节存储但 UTF-16却无法相容于 ASCII 编码bull UTF-16 有两种编码模式即大尾序( big Endian 高位字节在前)和小尾序( little Endian 高位字节在后)储存形式(一般來說以 Macintosh 制作和存储的文字使用大尾序格式以 Microsoft 或 Linux 制作和存储的文字使用小尾序格式)

bull 为了弄区分 UTF-16 文件的大小尾序在 UTF-16 文件的开头都会放置一个 U+FEFF 字符作为字节顺序标记 (UTF-16LE 以 FF FE代表 UTF-16BE 以 FE FF代表 ) 以显示该文档是以 UTF-16 编码的

UTF-32

bull UTF-32 仅使用了 Unicode范围 (0 到 0x10FFFF) 的 32位编码相当于 UCS-4 的子集

bull 由于 Unicode 和 ISOIEC 10646 的编码和结构与前面讲过的 GB 13000 类似或等价这里就不再做详细的介绍

5支持bull 现在 UnicodeUCS 已经获得了十分广泛的支

持ndash网络与浏览器(如 HTML 4050 XML 与 IE

Safari Netscape Firefox Chrome Opera Edge 等)

ndash操作系统(如 Windows NT2000XPVista7810 Mac OS X iOS Android和 Linux )

ndash 编程语言新版本(如 CC++JavaObjective-CC Swift 等)

Unicode 代码的浏览器显示代码 字符标准名称 (英语 )

浏览器的显示

amp65 大写拉丁字母 A A

amp223 小写拉丁字母 Sharp S szlig

amp254 小写拉丁字母 Thorn thorn

amp916 大写希腊字母 Delta Δ

amp1049 大写斯拉夫字母 Short I Й

amp1511 希伯来字母 Qof ק

amp1605 阿拉伯字母 Meem م

amp3671 泰文数字 7 ๗amp4688 埃塞俄比亚音节文字 Qha ቐ

amp12354 日语平假名 A あamp12450 日语片假名 A アamp21494 简体汉字 叶 叶amp33865 繁体汉字 葉 葉amp50685 韩国音节文字 Yeob 엽

23 文字输出bull 文字输出是指将计算机内的字符编码通过计算机的输出设备(如显示器打印机喇叭)展现出所对应字符的图形或声音供人们阅读或聆听

bull 本节主要介绍文字图示输出的字形技术bull 文字声音输出属于语音合成只在本节的末尾作简单的介绍

231 字形技术bull 文字 = 图形bull 不论是象形文字中的单字还是拼音文字

中的字母都是用图形来表示的bull 在计算机里文字的表示 输出(显示和打

印)涉及ndash 字型ndash 字体ndash 字库

1字型bull 字型指构造和生成字形的方法一般可分为

ndash 点阵字 DOS 显卡 ROM 金山 科印特点似位图显示快占空间(字库大)放大后有马赛克效应

bull 显示字母 88 汉字 1616bull 打印 2424 4848 6464

ndash 矢量字单线条用于笔式绘图仪特点字库小算法简单难看

ndash 轮廓字用曲线描绘字的轮廓输出效果好所见即所得(WYSWYG) 可无级放大易实现空心 阴影 填充 变形等各种特效功能轮廓曲线一般采用样条曲线如 TrueType (Apple 1991 Mac OS Microsoft 1992 Windows 31)用的是二次 B 样条 Bezier曲线中文之星 RichWin采用的是三次 B 样条 Bezier曲线

字型种类

2字体bull 字体指字的形状风格如

ndash 汉字的

ndash 英文的

宋体楷体黑体仿宋

行楷隶书新魏幼圆

Times New Roman Arial Narrow Courier New

常用汉字字体bull 宋体mdashmdash宋体来自于北宋时雕版刻书所采用的欧体字(唐朝欧阳询体)宋体字的横顿拉捺挑钩别具特色间架平正疏密适中字体秀丽遒劲但笔画横细竖粗适合于刀刻不宜于手写现在宋体广泛用于印刷常来表现文档的正文

bull 仿宋体mdashmdash 1920年钱塘的丁辅之与丁善之等人将明代以后盛行的方廓形字体加以改造创造出长形和方形的聚珍仿宋后来演化为现在的仿宋体仿宋体比较接近于手写体为宋体和楷体的折中是采用的宋体的结构和楷体的笔法而成现常来表现打印文件以及文档的摘要和注释等

bull 黑体mdashmdash黑体是适应工艺美术的发展而出现的一种等线体是从日本引进的黑体的结构与宋体没有什么差别只是其笔画粗细一致健实粗壮主要用于文档的标题和重点及标语广告等方面

bull 楷体mdashmdash楷体源于楷书楷体的笔画圆浑笔调灵活结构端正美观但不宜于木板雕刻所以直到清末西洋的石板印刷术传入后才开始广泛用于印刷现代的楷体创造于 20世纪的二三十年代主要用于文档的正文(多用于中小学教材)也可用于工艺美术等方面

3字库bull 字库为一种文字的某一字体的所有字符的集合一般存放在一个磁盘文件中

bull 由于象形文字中单字的数量大(成千上万)而拼音文字中字母的数量小(不到一百个)所以字库的大小有很大的差别

bull 为了使文档界面丰富多彩常见的字处理软件都支持多种字体带有众多字库

4点阵字型的国家标准bull 我国已经公布了若干字体的点阵字型之国家标准

ndash GB 50071-19852001 信息技术 汉字编码字符集(基本集) 24 点阵字型

ndash GB 50072-19852001 信息技术 汉字编码字符集(辅助集) 24 点阵字型

ndash GB 5199-19862001 信息技术 汉字编码字符集(基本集) 16 点阵字型 宋体

ndash GB 6345-19862001 信息技术 汉字编码字符集(基本集) 32 点阵字型 宋体

ndash GB 12041-2001 信息技术 汉字编码字符集(基本集) 48点阵字型 宋体

ndash GB 17698-1999 信息技术 通用多八位编码字符集( I 区) 汉字 16 点阵字型

232 语音合成bull 文字的声音输出主要使用的是语音合成的技术bull 语音合成功能是ldquo文rarr语rdquo转换bull 文语转换 TTS (Text-To-Speech) 是将文本形式的信息转换成自然语音的一种技术其最终目标是使计算机输出清晰而又自然的声音

bull 英语的语音合成在上世纪 80年代就早已成熟而中文 汉语的合成现在也趋于成熟并有了广泛的应用(如汽车导航仪智能手机等)

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 77: 第一篇  媒体

UTF-8 的缺点bull UTF-8 使用可变长度字节储存使计算机程序设计变得复杂 (故此在计算机程序或操作系统内部多采用 UCS-2 编码 )

bull 在旧式的中文日文及朝鲜文编码之中每字符都使用 2 字节储存而 UTF-8 须使用 3 字节 (采用 UTF-16 编码则可只使用 2字节储存 )

bull 泰语以往使用的 ISO 8859-11 每字符只使用 1 字节储存而 UTF-8 须使用 3 字节

UTF-8储存的多字节串字符bull U-00000000 - U-0000007F 0xxxxxxx bull U-00000080 - U-000007FF 110xxxxx 10xxxxxx

bull U-00000800 - U-0000FFFF 1110xxxx 10xxxxxx

10xxxxxx bull U-00010000 - U-001FFFFF 11110xxx 10xxxxx

x 10xxxxxx 10xxxxxx bull 在多字节串中第一个字节的开头ldquo 1rdquo 的数目就

是整个串中字节的数目bull 每个使用 UTF-8储存的字符除了第一个字节外其余字节的头两个位元都是以 10 开始使文字处理器能够较快地找出每个字符的开始位置

UTF-16bull UTF-16 是 UTF 的另一种具体编码方式在 ISO 1064

6-1 的附录 Q 和 IETF 的 RFC 2781 里定义bull UTF-16 是变长码( 2 或 4 字节)大致相当于 20位编码值在 0 到 0x10FFFF 之间基本上就是 Unicode 编码的实现 UTF-16 与 CPU 字序有关但因为最省空间常作为网络传输的外码 UTF-16 是 Unicode 的完美编码

bull lt0x10000 的直接用其对应的 16位整数编码位于 0x10000 ~ 0x10FFFF 之间的用 0xD800~0xDBFF 的 16位整数后跟 0xDC00~0xDFFF 的 16位整数的 4 字节编码 gt 0x10FFFF 的不能用 UTF-16 表示

bull 在 Unicode 的 BMP 中定义的字符(无论是拉丁字母汉字或其他文字或符号)一律使用 2 字节存储而在辅助平面定义的字符则以两个 2 字节的值来存储

UTF-16 的特点bull UTF-16比起 UTF-8 的好处在于大部分字符都以固定长

度的 2 字节存储但 UTF-16却无法相容于 ASCII 编码bull UTF-16 有两种编码模式即大尾序( big Endian 高位字节在前)和小尾序( little Endian 高位字节在后)储存形式(一般來說以 Macintosh 制作和存储的文字使用大尾序格式以 Microsoft 或 Linux 制作和存储的文字使用小尾序格式)

bull 为了弄区分 UTF-16 文件的大小尾序在 UTF-16 文件的开头都会放置一个 U+FEFF 字符作为字节顺序标记 (UTF-16LE 以 FF FE代表 UTF-16BE 以 FE FF代表 ) 以显示该文档是以 UTF-16 编码的

UTF-32

bull UTF-32 仅使用了 Unicode范围 (0 到 0x10FFFF) 的 32位编码相当于 UCS-4 的子集

bull 由于 Unicode 和 ISOIEC 10646 的编码和结构与前面讲过的 GB 13000 类似或等价这里就不再做详细的介绍

5支持bull 现在 UnicodeUCS 已经获得了十分广泛的支

持ndash网络与浏览器(如 HTML 4050 XML 与 IE

Safari Netscape Firefox Chrome Opera Edge 等)

ndash操作系统(如 Windows NT2000XPVista7810 Mac OS X iOS Android和 Linux )

ndash 编程语言新版本(如 CC++JavaObjective-CC Swift 等)

Unicode 代码的浏览器显示代码 字符标准名称 (英语 )

浏览器的显示

amp65 大写拉丁字母 A A

amp223 小写拉丁字母 Sharp S szlig

amp254 小写拉丁字母 Thorn thorn

amp916 大写希腊字母 Delta Δ

amp1049 大写斯拉夫字母 Short I Й

amp1511 希伯来字母 Qof ק

amp1605 阿拉伯字母 Meem م

amp3671 泰文数字 7 ๗amp4688 埃塞俄比亚音节文字 Qha ቐ

amp12354 日语平假名 A あamp12450 日语片假名 A アamp21494 简体汉字 叶 叶amp33865 繁体汉字 葉 葉amp50685 韩国音节文字 Yeob 엽

23 文字输出bull 文字输出是指将计算机内的字符编码通过计算机的输出设备(如显示器打印机喇叭)展现出所对应字符的图形或声音供人们阅读或聆听

bull 本节主要介绍文字图示输出的字形技术bull 文字声音输出属于语音合成只在本节的末尾作简单的介绍

231 字形技术bull 文字 = 图形bull 不论是象形文字中的单字还是拼音文字

中的字母都是用图形来表示的bull 在计算机里文字的表示 输出(显示和打

印)涉及ndash 字型ndash 字体ndash 字库

1字型bull 字型指构造和生成字形的方法一般可分为

ndash 点阵字 DOS 显卡 ROM 金山 科印特点似位图显示快占空间(字库大)放大后有马赛克效应

bull 显示字母 88 汉字 1616bull 打印 2424 4848 6464

ndash 矢量字单线条用于笔式绘图仪特点字库小算法简单难看

ndash 轮廓字用曲线描绘字的轮廓输出效果好所见即所得(WYSWYG) 可无级放大易实现空心 阴影 填充 变形等各种特效功能轮廓曲线一般采用样条曲线如 TrueType (Apple 1991 Mac OS Microsoft 1992 Windows 31)用的是二次 B 样条 Bezier曲线中文之星 RichWin采用的是三次 B 样条 Bezier曲线

字型种类

2字体bull 字体指字的形状风格如

ndash 汉字的

ndash 英文的

宋体楷体黑体仿宋

行楷隶书新魏幼圆

Times New Roman Arial Narrow Courier New

常用汉字字体bull 宋体mdashmdash宋体来自于北宋时雕版刻书所采用的欧体字(唐朝欧阳询体)宋体字的横顿拉捺挑钩别具特色间架平正疏密适中字体秀丽遒劲但笔画横细竖粗适合于刀刻不宜于手写现在宋体广泛用于印刷常来表现文档的正文

bull 仿宋体mdashmdash 1920年钱塘的丁辅之与丁善之等人将明代以后盛行的方廓形字体加以改造创造出长形和方形的聚珍仿宋后来演化为现在的仿宋体仿宋体比较接近于手写体为宋体和楷体的折中是采用的宋体的结构和楷体的笔法而成现常来表现打印文件以及文档的摘要和注释等

bull 黑体mdashmdash黑体是适应工艺美术的发展而出现的一种等线体是从日本引进的黑体的结构与宋体没有什么差别只是其笔画粗细一致健实粗壮主要用于文档的标题和重点及标语广告等方面

bull 楷体mdashmdash楷体源于楷书楷体的笔画圆浑笔调灵活结构端正美观但不宜于木板雕刻所以直到清末西洋的石板印刷术传入后才开始广泛用于印刷现代的楷体创造于 20世纪的二三十年代主要用于文档的正文(多用于中小学教材)也可用于工艺美术等方面

3字库bull 字库为一种文字的某一字体的所有字符的集合一般存放在一个磁盘文件中

bull 由于象形文字中单字的数量大(成千上万)而拼音文字中字母的数量小(不到一百个)所以字库的大小有很大的差别

bull 为了使文档界面丰富多彩常见的字处理软件都支持多种字体带有众多字库

4点阵字型的国家标准bull 我国已经公布了若干字体的点阵字型之国家标准

ndash GB 50071-19852001 信息技术 汉字编码字符集(基本集) 24 点阵字型

ndash GB 50072-19852001 信息技术 汉字编码字符集(辅助集) 24 点阵字型

ndash GB 5199-19862001 信息技术 汉字编码字符集(基本集) 16 点阵字型 宋体

ndash GB 6345-19862001 信息技术 汉字编码字符集(基本集) 32 点阵字型 宋体

ndash GB 12041-2001 信息技术 汉字编码字符集(基本集) 48点阵字型 宋体

ndash GB 17698-1999 信息技术 通用多八位编码字符集( I 区) 汉字 16 点阵字型

232 语音合成bull 文字的声音输出主要使用的是语音合成的技术bull 语音合成功能是ldquo文rarr语rdquo转换bull 文语转换 TTS (Text-To-Speech) 是将文本形式的信息转换成自然语音的一种技术其最终目标是使计算机输出清晰而又自然的声音

bull 英语的语音合成在上世纪 80年代就早已成熟而中文 汉语的合成现在也趋于成熟并有了广泛的应用(如汽车导航仪智能手机等)

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 78: 第一篇  媒体

UTF-8储存的多字节串字符bull U-00000000 - U-0000007F 0xxxxxxx bull U-00000080 - U-000007FF 110xxxxx 10xxxxxx

bull U-00000800 - U-0000FFFF 1110xxxx 10xxxxxx

10xxxxxx bull U-00010000 - U-001FFFFF 11110xxx 10xxxxx

x 10xxxxxx 10xxxxxx bull 在多字节串中第一个字节的开头ldquo 1rdquo 的数目就

是整个串中字节的数目bull 每个使用 UTF-8储存的字符除了第一个字节外其余字节的头两个位元都是以 10 开始使文字处理器能够较快地找出每个字符的开始位置

UTF-16bull UTF-16 是 UTF 的另一种具体编码方式在 ISO 1064

6-1 的附录 Q 和 IETF 的 RFC 2781 里定义bull UTF-16 是变长码( 2 或 4 字节)大致相当于 20位编码值在 0 到 0x10FFFF 之间基本上就是 Unicode 编码的实现 UTF-16 与 CPU 字序有关但因为最省空间常作为网络传输的外码 UTF-16 是 Unicode 的完美编码

bull lt0x10000 的直接用其对应的 16位整数编码位于 0x10000 ~ 0x10FFFF 之间的用 0xD800~0xDBFF 的 16位整数后跟 0xDC00~0xDFFF 的 16位整数的 4 字节编码 gt 0x10FFFF 的不能用 UTF-16 表示

bull 在 Unicode 的 BMP 中定义的字符(无论是拉丁字母汉字或其他文字或符号)一律使用 2 字节存储而在辅助平面定义的字符则以两个 2 字节的值来存储

UTF-16 的特点bull UTF-16比起 UTF-8 的好处在于大部分字符都以固定长

度的 2 字节存储但 UTF-16却无法相容于 ASCII 编码bull UTF-16 有两种编码模式即大尾序( big Endian 高位字节在前)和小尾序( little Endian 高位字节在后)储存形式(一般來說以 Macintosh 制作和存储的文字使用大尾序格式以 Microsoft 或 Linux 制作和存储的文字使用小尾序格式)

bull 为了弄区分 UTF-16 文件的大小尾序在 UTF-16 文件的开头都会放置一个 U+FEFF 字符作为字节顺序标记 (UTF-16LE 以 FF FE代表 UTF-16BE 以 FE FF代表 ) 以显示该文档是以 UTF-16 编码的

UTF-32

bull UTF-32 仅使用了 Unicode范围 (0 到 0x10FFFF) 的 32位编码相当于 UCS-4 的子集

bull 由于 Unicode 和 ISOIEC 10646 的编码和结构与前面讲过的 GB 13000 类似或等价这里就不再做详细的介绍

5支持bull 现在 UnicodeUCS 已经获得了十分广泛的支

持ndash网络与浏览器(如 HTML 4050 XML 与 IE

Safari Netscape Firefox Chrome Opera Edge 等)

ndash操作系统(如 Windows NT2000XPVista7810 Mac OS X iOS Android和 Linux )

ndash 编程语言新版本(如 CC++JavaObjective-CC Swift 等)

Unicode 代码的浏览器显示代码 字符标准名称 (英语 )

浏览器的显示

amp65 大写拉丁字母 A A

amp223 小写拉丁字母 Sharp S szlig

amp254 小写拉丁字母 Thorn thorn

amp916 大写希腊字母 Delta Δ

amp1049 大写斯拉夫字母 Short I Й

amp1511 希伯来字母 Qof ק

amp1605 阿拉伯字母 Meem م

amp3671 泰文数字 7 ๗amp4688 埃塞俄比亚音节文字 Qha ቐ

amp12354 日语平假名 A あamp12450 日语片假名 A アamp21494 简体汉字 叶 叶amp33865 繁体汉字 葉 葉amp50685 韩国音节文字 Yeob 엽

23 文字输出bull 文字输出是指将计算机内的字符编码通过计算机的输出设备(如显示器打印机喇叭)展现出所对应字符的图形或声音供人们阅读或聆听

bull 本节主要介绍文字图示输出的字形技术bull 文字声音输出属于语音合成只在本节的末尾作简单的介绍

231 字形技术bull 文字 = 图形bull 不论是象形文字中的单字还是拼音文字

中的字母都是用图形来表示的bull 在计算机里文字的表示 输出(显示和打

印)涉及ndash 字型ndash 字体ndash 字库

1字型bull 字型指构造和生成字形的方法一般可分为

ndash 点阵字 DOS 显卡 ROM 金山 科印特点似位图显示快占空间(字库大)放大后有马赛克效应

bull 显示字母 88 汉字 1616bull 打印 2424 4848 6464

ndash 矢量字单线条用于笔式绘图仪特点字库小算法简单难看

ndash 轮廓字用曲线描绘字的轮廓输出效果好所见即所得(WYSWYG) 可无级放大易实现空心 阴影 填充 变形等各种特效功能轮廓曲线一般采用样条曲线如 TrueType (Apple 1991 Mac OS Microsoft 1992 Windows 31)用的是二次 B 样条 Bezier曲线中文之星 RichWin采用的是三次 B 样条 Bezier曲线

字型种类

2字体bull 字体指字的形状风格如

ndash 汉字的

ndash 英文的

宋体楷体黑体仿宋

行楷隶书新魏幼圆

Times New Roman Arial Narrow Courier New

常用汉字字体bull 宋体mdashmdash宋体来自于北宋时雕版刻书所采用的欧体字(唐朝欧阳询体)宋体字的横顿拉捺挑钩别具特色间架平正疏密适中字体秀丽遒劲但笔画横细竖粗适合于刀刻不宜于手写现在宋体广泛用于印刷常来表现文档的正文

bull 仿宋体mdashmdash 1920年钱塘的丁辅之与丁善之等人将明代以后盛行的方廓形字体加以改造创造出长形和方形的聚珍仿宋后来演化为现在的仿宋体仿宋体比较接近于手写体为宋体和楷体的折中是采用的宋体的结构和楷体的笔法而成现常来表现打印文件以及文档的摘要和注释等

bull 黑体mdashmdash黑体是适应工艺美术的发展而出现的一种等线体是从日本引进的黑体的结构与宋体没有什么差别只是其笔画粗细一致健实粗壮主要用于文档的标题和重点及标语广告等方面

bull 楷体mdashmdash楷体源于楷书楷体的笔画圆浑笔调灵活结构端正美观但不宜于木板雕刻所以直到清末西洋的石板印刷术传入后才开始广泛用于印刷现代的楷体创造于 20世纪的二三十年代主要用于文档的正文(多用于中小学教材)也可用于工艺美术等方面

3字库bull 字库为一种文字的某一字体的所有字符的集合一般存放在一个磁盘文件中

bull 由于象形文字中单字的数量大(成千上万)而拼音文字中字母的数量小(不到一百个)所以字库的大小有很大的差别

bull 为了使文档界面丰富多彩常见的字处理软件都支持多种字体带有众多字库

4点阵字型的国家标准bull 我国已经公布了若干字体的点阵字型之国家标准

ndash GB 50071-19852001 信息技术 汉字编码字符集(基本集) 24 点阵字型

ndash GB 50072-19852001 信息技术 汉字编码字符集(辅助集) 24 点阵字型

ndash GB 5199-19862001 信息技术 汉字编码字符集(基本集) 16 点阵字型 宋体

ndash GB 6345-19862001 信息技术 汉字编码字符集(基本集) 32 点阵字型 宋体

ndash GB 12041-2001 信息技术 汉字编码字符集(基本集) 48点阵字型 宋体

ndash GB 17698-1999 信息技术 通用多八位编码字符集( I 区) 汉字 16 点阵字型

232 语音合成bull 文字的声音输出主要使用的是语音合成的技术bull 语音合成功能是ldquo文rarr语rdquo转换bull 文语转换 TTS (Text-To-Speech) 是将文本形式的信息转换成自然语音的一种技术其最终目标是使计算机输出清晰而又自然的声音

bull 英语的语音合成在上世纪 80年代就早已成熟而中文 汉语的合成现在也趋于成熟并有了广泛的应用(如汽车导航仪智能手机等)

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 79: 第一篇  媒体

UTF-16bull UTF-16 是 UTF 的另一种具体编码方式在 ISO 1064

6-1 的附录 Q 和 IETF 的 RFC 2781 里定义bull UTF-16 是变长码( 2 或 4 字节)大致相当于 20位编码值在 0 到 0x10FFFF 之间基本上就是 Unicode 编码的实现 UTF-16 与 CPU 字序有关但因为最省空间常作为网络传输的外码 UTF-16 是 Unicode 的完美编码

bull lt0x10000 的直接用其对应的 16位整数编码位于 0x10000 ~ 0x10FFFF 之间的用 0xD800~0xDBFF 的 16位整数后跟 0xDC00~0xDFFF 的 16位整数的 4 字节编码 gt 0x10FFFF 的不能用 UTF-16 表示

bull 在 Unicode 的 BMP 中定义的字符(无论是拉丁字母汉字或其他文字或符号)一律使用 2 字节存储而在辅助平面定义的字符则以两个 2 字节的值来存储

UTF-16 的特点bull UTF-16比起 UTF-8 的好处在于大部分字符都以固定长

度的 2 字节存储但 UTF-16却无法相容于 ASCII 编码bull UTF-16 有两种编码模式即大尾序( big Endian 高位字节在前)和小尾序( little Endian 高位字节在后)储存形式(一般來說以 Macintosh 制作和存储的文字使用大尾序格式以 Microsoft 或 Linux 制作和存储的文字使用小尾序格式)

bull 为了弄区分 UTF-16 文件的大小尾序在 UTF-16 文件的开头都会放置一个 U+FEFF 字符作为字节顺序标记 (UTF-16LE 以 FF FE代表 UTF-16BE 以 FE FF代表 ) 以显示该文档是以 UTF-16 编码的

UTF-32

bull UTF-32 仅使用了 Unicode范围 (0 到 0x10FFFF) 的 32位编码相当于 UCS-4 的子集

bull 由于 Unicode 和 ISOIEC 10646 的编码和结构与前面讲过的 GB 13000 类似或等价这里就不再做详细的介绍

5支持bull 现在 UnicodeUCS 已经获得了十分广泛的支

持ndash网络与浏览器(如 HTML 4050 XML 与 IE

Safari Netscape Firefox Chrome Opera Edge 等)

ndash操作系统(如 Windows NT2000XPVista7810 Mac OS X iOS Android和 Linux )

ndash 编程语言新版本(如 CC++JavaObjective-CC Swift 等)

Unicode 代码的浏览器显示代码 字符标准名称 (英语 )

浏览器的显示

amp65 大写拉丁字母 A A

amp223 小写拉丁字母 Sharp S szlig

amp254 小写拉丁字母 Thorn thorn

amp916 大写希腊字母 Delta Δ

amp1049 大写斯拉夫字母 Short I Й

amp1511 希伯来字母 Qof ק

amp1605 阿拉伯字母 Meem م

amp3671 泰文数字 7 ๗amp4688 埃塞俄比亚音节文字 Qha ቐ

amp12354 日语平假名 A あamp12450 日语片假名 A アamp21494 简体汉字 叶 叶amp33865 繁体汉字 葉 葉amp50685 韩国音节文字 Yeob 엽

23 文字输出bull 文字输出是指将计算机内的字符编码通过计算机的输出设备(如显示器打印机喇叭)展现出所对应字符的图形或声音供人们阅读或聆听

bull 本节主要介绍文字图示输出的字形技术bull 文字声音输出属于语音合成只在本节的末尾作简单的介绍

231 字形技术bull 文字 = 图形bull 不论是象形文字中的单字还是拼音文字

中的字母都是用图形来表示的bull 在计算机里文字的表示 输出(显示和打

印)涉及ndash 字型ndash 字体ndash 字库

1字型bull 字型指构造和生成字形的方法一般可分为

ndash 点阵字 DOS 显卡 ROM 金山 科印特点似位图显示快占空间(字库大)放大后有马赛克效应

bull 显示字母 88 汉字 1616bull 打印 2424 4848 6464

ndash 矢量字单线条用于笔式绘图仪特点字库小算法简单难看

ndash 轮廓字用曲线描绘字的轮廓输出效果好所见即所得(WYSWYG) 可无级放大易实现空心 阴影 填充 变形等各种特效功能轮廓曲线一般采用样条曲线如 TrueType (Apple 1991 Mac OS Microsoft 1992 Windows 31)用的是二次 B 样条 Bezier曲线中文之星 RichWin采用的是三次 B 样条 Bezier曲线

字型种类

2字体bull 字体指字的形状风格如

ndash 汉字的

ndash 英文的

宋体楷体黑体仿宋

行楷隶书新魏幼圆

Times New Roman Arial Narrow Courier New

常用汉字字体bull 宋体mdashmdash宋体来自于北宋时雕版刻书所采用的欧体字(唐朝欧阳询体)宋体字的横顿拉捺挑钩别具特色间架平正疏密适中字体秀丽遒劲但笔画横细竖粗适合于刀刻不宜于手写现在宋体广泛用于印刷常来表现文档的正文

bull 仿宋体mdashmdash 1920年钱塘的丁辅之与丁善之等人将明代以后盛行的方廓形字体加以改造创造出长形和方形的聚珍仿宋后来演化为现在的仿宋体仿宋体比较接近于手写体为宋体和楷体的折中是采用的宋体的结构和楷体的笔法而成现常来表现打印文件以及文档的摘要和注释等

bull 黑体mdashmdash黑体是适应工艺美术的发展而出现的一种等线体是从日本引进的黑体的结构与宋体没有什么差别只是其笔画粗细一致健实粗壮主要用于文档的标题和重点及标语广告等方面

bull 楷体mdashmdash楷体源于楷书楷体的笔画圆浑笔调灵活结构端正美观但不宜于木板雕刻所以直到清末西洋的石板印刷术传入后才开始广泛用于印刷现代的楷体创造于 20世纪的二三十年代主要用于文档的正文(多用于中小学教材)也可用于工艺美术等方面

3字库bull 字库为一种文字的某一字体的所有字符的集合一般存放在一个磁盘文件中

bull 由于象形文字中单字的数量大(成千上万)而拼音文字中字母的数量小(不到一百个)所以字库的大小有很大的差别

bull 为了使文档界面丰富多彩常见的字处理软件都支持多种字体带有众多字库

4点阵字型的国家标准bull 我国已经公布了若干字体的点阵字型之国家标准

ndash GB 50071-19852001 信息技术 汉字编码字符集(基本集) 24 点阵字型

ndash GB 50072-19852001 信息技术 汉字编码字符集(辅助集) 24 点阵字型

ndash GB 5199-19862001 信息技术 汉字编码字符集(基本集) 16 点阵字型 宋体

ndash GB 6345-19862001 信息技术 汉字编码字符集(基本集) 32 点阵字型 宋体

ndash GB 12041-2001 信息技术 汉字编码字符集(基本集) 48点阵字型 宋体

ndash GB 17698-1999 信息技术 通用多八位编码字符集( I 区) 汉字 16 点阵字型

232 语音合成bull 文字的声音输出主要使用的是语音合成的技术bull 语音合成功能是ldquo文rarr语rdquo转换bull 文语转换 TTS (Text-To-Speech) 是将文本形式的信息转换成自然语音的一种技术其最终目标是使计算机输出清晰而又自然的声音

bull 英语的语音合成在上世纪 80年代就早已成熟而中文 汉语的合成现在也趋于成熟并有了广泛的应用(如汽车导航仪智能手机等)

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 80: 第一篇  媒体

UTF-16 的特点bull UTF-16比起 UTF-8 的好处在于大部分字符都以固定长

度的 2 字节存储但 UTF-16却无法相容于 ASCII 编码bull UTF-16 有两种编码模式即大尾序( big Endian 高位字节在前)和小尾序( little Endian 高位字节在后)储存形式(一般來說以 Macintosh 制作和存储的文字使用大尾序格式以 Microsoft 或 Linux 制作和存储的文字使用小尾序格式)

bull 为了弄区分 UTF-16 文件的大小尾序在 UTF-16 文件的开头都会放置一个 U+FEFF 字符作为字节顺序标记 (UTF-16LE 以 FF FE代表 UTF-16BE 以 FE FF代表 ) 以显示该文档是以 UTF-16 编码的

UTF-32

bull UTF-32 仅使用了 Unicode范围 (0 到 0x10FFFF) 的 32位编码相当于 UCS-4 的子集

bull 由于 Unicode 和 ISOIEC 10646 的编码和结构与前面讲过的 GB 13000 类似或等价这里就不再做详细的介绍

5支持bull 现在 UnicodeUCS 已经获得了十分广泛的支

持ndash网络与浏览器(如 HTML 4050 XML 与 IE

Safari Netscape Firefox Chrome Opera Edge 等)

ndash操作系统(如 Windows NT2000XPVista7810 Mac OS X iOS Android和 Linux )

ndash 编程语言新版本(如 CC++JavaObjective-CC Swift 等)

Unicode 代码的浏览器显示代码 字符标准名称 (英语 )

浏览器的显示

amp65 大写拉丁字母 A A

amp223 小写拉丁字母 Sharp S szlig

amp254 小写拉丁字母 Thorn thorn

amp916 大写希腊字母 Delta Δ

amp1049 大写斯拉夫字母 Short I Й

amp1511 希伯来字母 Qof ק

amp1605 阿拉伯字母 Meem م

amp3671 泰文数字 7 ๗amp4688 埃塞俄比亚音节文字 Qha ቐ

amp12354 日语平假名 A あamp12450 日语片假名 A アamp21494 简体汉字 叶 叶amp33865 繁体汉字 葉 葉amp50685 韩国音节文字 Yeob 엽

23 文字输出bull 文字输出是指将计算机内的字符编码通过计算机的输出设备(如显示器打印机喇叭)展现出所对应字符的图形或声音供人们阅读或聆听

bull 本节主要介绍文字图示输出的字形技术bull 文字声音输出属于语音合成只在本节的末尾作简单的介绍

231 字形技术bull 文字 = 图形bull 不论是象形文字中的单字还是拼音文字

中的字母都是用图形来表示的bull 在计算机里文字的表示 输出(显示和打

印)涉及ndash 字型ndash 字体ndash 字库

1字型bull 字型指构造和生成字形的方法一般可分为

ndash 点阵字 DOS 显卡 ROM 金山 科印特点似位图显示快占空间(字库大)放大后有马赛克效应

bull 显示字母 88 汉字 1616bull 打印 2424 4848 6464

ndash 矢量字单线条用于笔式绘图仪特点字库小算法简单难看

ndash 轮廓字用曲线描绘字的轮廓输出效果好所见即所得(WYSWYG) 可无级放大易实现空心 阴影 填充 变形等各种特效功能轮廓曲线一般采用样条曲线如 TrueType (Apple 1991 Mac OS Microsoft 1992 Windows 31)用的是二次 B 样条 Bezier曲线中文之星 RichWin采用的是三次 B 样条 Bezier曲线

字型种类

2字体bull 字体指字的形状风格如

ndash 汉字的

ndash 英文的

宋体楷体黑体仿宋

行楷隶书新魏幼圆

Times New Roman Arial Narrow Courier New

常用汉字字体bull 宋体mdashmdash宋体来自于北宋时雕版刻书所采用的欧体字(唐朝欧阳询体)宋体字的横顿拉捺挑钩别具特色间架平正疏密适中字体秀丽遒劲但笔画横细竖粗适合于刀刻不宜于手写现在宋体广泛用于印刷常来表现文档的正文

bull 仿宋体mdashmdash 1920年钱塘的丁辅之与丁善之等人将明代以后盛行的方廓形字体加以改造创造出长形和方形的聚珍仿宋后来演化为现在的仿宋体仿宋体比较接近于手写体为宋体和楷体的折中是采用的宋体的结构和楷体的笔法而成现常来表现打印文件以及文档的摘要和注释等

bull 黑体mdashmdash黑体是适应工艺美术的发展而出现的一种等线体是从日本引进的黑体的结构与宋体没有什么差别只是其笔画粗细一致健实粗壮主要用于文档的标题和重点及标语广告等方面

bull 楷体mdashmdash楷体源于楷书楷体的笔画圆浑笔调灵活结构端正美观但不宜于木板雕刻所以直到清末西洋的石板印刷术传入后才开始广泛用于印刷现代的楷体创造于 20世纪的二三十年代主要用于文档的正文(多用于中小学教材)也可用于工艺美术等方面

3字库bull 字库为一种文字的某一字体的所有字符的集合一般存放在一个磁盘文件中

bull 由于象形文字中单字的数量大(成千上万)而拼音文字中字母的数量小(不到一百个)所以字库的大小有很大的差别

bull 为了使文档界面丰富多彩常见的字处理软件都支持多种字体带有众多字库

4点阵字型的国家标准bull 我国已经公布了若干字体的点阵字型之国家标准

ndash GB 50071-19852001 信息技术 汉字编码字符集(基本集) 24 点阵字型

ndash GB 50072-19852001 信息技术 汉字编码字符集(辅助集) 24 点阵字型

ndash GB 5199-19862001 信息技术 汉字编码字符集(基本集) 16 点阵字型 宋体

ndash GB 6345-19862001 信息技术 汉字编码字符集(基本集) 32 点阵字型 宋体

ndash GB 12041-2001 信息技术 汉字编码字符集(基本集) 48点阵字型 宋体

ndash GB 17698-1999 信息技术 通用多八位编码字符集( I 区) 汉字 16 点阵字型

232 语音合成bull 文字的声音输出主要使用的是语音合成的技术bull 语音合成功能是ldquo文rarr语rdquo转换bull 文语转换 TTS (Text-To-Speech) 是将文本形式的信息转换成自然语音的一种技术其最终目标是使计算机输出清晰而又自然的声音

bull 英语的语音合成在上世纪 80年代就早已成熟而中文 汉语的合成现在也趋于成熟并有了广泛的应用(如汽车导航仪智能手机等)

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 81: 第一篇  媒体

UTF-32

bull UTF-32 仅使用了 Unicode范围 (0 到 0x10FFFF) 的 32位编码相当于 UCS-4 的子集

bull 由于 Unicode 和 ISOIEC 10646 的编码和结构与前面讲过的 GB 13000 类似或等价这里就不再做详细的介绍

5支持bull 现在 UnicodeUCS 已经获得了十分广泛的支

持ndash网络与浏览器(如 HTML 4050 XML 与 IE

Safari Netscape Firefox Chrome Opera Edge 等)

ndash操作系统(如 Windows NT2000XPVista7810 Mac OS X iOS Android和 Linux )

ndash 编程语言新版本(如 CC++JavaObjective-CC Swift 等)

Unicode 代码的浏览器显示代码 字符标准名称 (英语 )

浏览器的显示

amp65 大写拉丁字母 A A

amp223 小写拉丁字母 Sharp S szlig

amp254 小写拉丁字母 Thorn thorn

amp916 大写希腊字母 Delta Δ

amp1049 大写斯拉夫字母 Short I Й

amp1511 希伯来字母 Qof ק

amp1605 阿拉伯字母 Meem م

amp3671 泰文数字 7 ๗amp4688 埃塞俄比亚音节文字 Qha ቐ

amp12354 日语平假名 A あamp12450 日语片假名 A アamp21494 简体汉字 叶 叶amp33865 繁体汉字 葉 葉amp50685 韩国音节文字 Yeob 엽

23 文字输出bull 文字输出是指将计算机内的字符编码通过计算机的输出设备(如显示器打印机喇叭)展现出所对应字符的图形或声音供人们阅读或聆听

bull 本节主要介绍文字图示输出的字形技术bull 文字声音输出属于语音合成只在本节的末尾作简单的介绍

231 字形技术bull 文字 = 图形bull 不论是象形文字中的单字还是拼音文字

中的字母都是用图形来表示的bull 在计算机里文字的表示 输出(显示和打

印)涉及ndash 字型ndash 字体ndash 字库

1字型bull 字型指构造和生成字形的方法一般可分为

ndash 点阵字 DOS 显卡 ROM 金山 科印特点似位图显示快占空间(字库大)放大后有马赛克效应

bull 显示字母 88 汉字 1616bull 打印 2424 4848 6464

ndash 矢量字单线条用于笔式绘图仪特点字库小算法简单难看

ndash 轮廓字用曲线描绘字的轮廓输出效果好所见即所得(WYSWYG) 可无级放大易实现空心 阴影 填充 变形等各种特效功能轮廓曲线一般采用样条曲线如 TrueType (Apple 1991 Mac OS Microsoft 1992 Windows 31)用的是二次 B 样条 Bezier曲线中文之星 RichWin采用的是三次 B 样条 Bezier曲线

字型种类

2字体bull 字体指字的形状风格如

ndash 汉字的

ndash 英文的

宋体楷体黑体仿宋

行楷隶书新魏幼圆

Times New Roman Arial Narrow Courier New

常用汉字字体bull 宋体mdashmdash宋体来自于北宋时雕版刻书所采用的欧体字(唐朝欧阳询体)宋体字的横顿拉捺挑钩别具特色间架平正疏密适中字体秀丽遒劲但笔画横细竖粗适合于刀刻不宜于手写现在宋体广泛用于印刷常来表现文档的正文

bull 仿宋体mdashmdash 1920年钱塘的丁辅之与丁善之等人将明代以后盛行的方廓形字体加以改造创造出长形和方形的聚珍仿宋后来演化为现在的仿宋体仿宋体比较接近于手写体为宋体和楷体的折中是采用的宋体的结构和楷体的笔法而成现常来表现打印文件以及文档的摘要和注释等

bull 黑体mdashmdash黑体是适应工艺美术的发展而出现的一种等线体是从日本引进的黑体的结构与宋体没有什么差别只是其笔画粗细一致健实粗壮主要用于文档的标题和重点及标语广告等方面

bull 楷体mdashmdash楷体源于楷书楷体的笔画圆浑笔调灵活结构端正美观但不宜于木板雕刻所以直到清末西洋的石板印刷术传入后才开始广泛用于印刷现代的楷体创造于 20世纪的二三十年代主要用于文档的正文(多用于中小学教材)也可用于工艺美术等方面

3字库bull 字库为一种文字的某一字体的所有字符的集合一般存放在一个磁盘文件中

bull 由于象形文字中单字的数量大(成千上万)而拼音文字中字母的数量小(不到一百个)所以字库的大小有很大的差别

bull 为了使文档界面丰富多彩常见的字处理软件都支持多种字体带有众多字库

4点阵字型的国家标准bull 我国已经公布了若干字体的点阵字型之国家标准

ndash GB 50071-19852001 信息技术 汉字编码字符集(基本集) 24 点阵字型

ndash GB 50072-19852001 信息技术 汉字编码字符集(辅助集) 24 点阵字型

ndash GB 5199-19862001 信息技术 汉字编码字符集(基本集) 16 点阵字型 宋体

ndash GB 6345-19862001 信息技术 汉字编码字符集(基本集) 32 点阵字型 宋体

ndash GB 12041-2001 信息技术 汉字编码字符集(基本集) 48点阵字型 宋体

ndash GB 17698-1999 信息技术 通用多八位编码字符集( I 区) 汉字 16 点阵字型

232 语音合成bull 文字的声音输出主要使用的是语音合成的技术bull 语音合成功能是ldquo文rarr语rdquo转换bull 文语转换 TTS (Text-To-Speech) 是将文本形式的信息转换成自然语音的一种技术其最终目标是使计算机输出清晰而又自然的声音

bull 英语的语音合成在上世纪 80年代就早已成熟而中文 汉语的合成现在也趋于成熟并有了广泛的应用(如汽车导航仪智能手机等)

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 82: 第一篇  媒体

5支持bull 现在 UnicodeUCS 已经获得了十分广泛的支

持ndash网络与浏览器(如 HTML 4050 XML 与 IE

Safari Netscape Firefox Chrome Opera Edge 等)

ndash操作系统(如 Windows NT2000XPVista7810 Mac OS X iOS Android和 Linux )

ndash 编程语言新版本(如 CC++JavaObjective-CC Swift 等)

Unicode 代码的浏览器显示代码 字符标准名称 (英语 )

浏览器的显示

amp65 大写拉丁字母 A A

amp223 小写拉丁字母 Sharp S szlig

amp254 小写拉丁字母 Thorn thorn

amp916 大写希腊字母 Delta Δ

amp1049 大写斯拉夫字母 Short I Й

amp1511 希伯来字母 Qof ק

amp1605 阿拉伯字母 Meem م

amp3671 泰文数字 7 ๗amp4688 埃塞俄比亚音节文字 Qha ቐ

amp12354 日语平假名 A あamp12450 日语片假名 A アamp21494 简体汉字 叶 叶amp33865 繁体汉字 葉 葉amp50685 韩国音节文字 Yeob 엽

23 文字输出bull 文字输出是指将计算机内的字符编码通过计算机的输出设备(如显示器打印机喇叭)展现出所对应字符的图形或声音供人们阅读或聆听

bull 本节主要介绍文字图示输出的字形技术bull 文字声音输出属于语音合成只在本节的末尾作简单的介绍

231 字形技术bull 文字 = 图形bull 不论是象形文字中的单字还是拼音文字

中的字母都是用图形来表示的bull 在计算机里文字的表示 输出(显示和打

印)涉及ndash 字型ndash 字体ndash 字库

1字型bull 字型指构造和生成字形的方法一般可分为

ndash 点阵字 DOS 显卡 ROM 金山 科印特点似位图显示快占空间(字库大)放大后有马赛克效应

bull 显示字母 88 汉字 1616bull 打印 2424 4848 6464

ndash 矢量字单线条用于笔式绘图仪特点字库小算法简单难看

ndash 轮廓字用曲线描绘字的轮廓输出效果好所见即所得(WYSWYG) 可无级放大易实现空心 阴影 填充 变形等各种特效功能轮廓曲线一般采用样条曲线如 TrueType (Apple 1991 Mac OS Microsoft 1992 Windows 31)用的是二次 B 样条 Bezier曲线中文之星 RichWin采用的是三次 B 样条 Bezier曲线

字型种类

2字体bull 字体指字的形状风格如

ndash 汉字的

ndash 英文的

宋体楷体黑体仿宋

行楷隶书新魏幼圆

Times New Roman Arial Narrow Courier New

常用汉字字体bull 宋体mdashmdash宋体来自于北宋时雕版刻书所采用的欧体字(唐朝欧阳询体)宋体字的横顿拉捺挑钩别具特色间架平正疏密适中字体秀丽遒劲但笔画横细竖粗适合于刀刻不宜于手写现在宋体广泛用于印刷常来表现文档的正文

bull 仿宋体mdashmdash 1920年钱塘的丁辅之与丁善之等人将明代以后盛行的方廓形字体加以改造创造出长形和方形的聚珍仿宋后来演化为现在的仿宋体仿宋体比较接近于手写体为宋体和楷体的折中是采用的宋体的结构和楷体的笔法而成现常来表现打印文件以及文档的摘要和注释等

bull 黑体mdashmdash黑体是适应工艺美术的发展而出现的一种等线体是从日本引进的黑体的结构与宋体没有什么差别只是其笔画粗细一致健实粗壮主要用于文档的标题和重点及标语广告等方面

bull 楷体mdashmdash楷体源于楷书楷体的笔画圆浑笔调灵活结构端正美观但不宜于木板雕刻所以直到清末西洋的石板印刷术传入后才开始广泛用于印刷现代的楷体创造于 20世纪的二三十年代主要用于文档的正文(多用于中小学教材)也可用于工艺美术等方面

3字库bull 字库为一种文字的某一字体的所有字符的集合一般存放在一个磁盘文件中

bull 由于象形文字中单字的数量大(成千上万)而拼音文字中字母的数量小(不到一百个)所以字库的大小有很大的差别

bull 为了使文档界面丰富多彩常见的字处理软件都支持多种字体带有众多字库

4点阵字型的国家标准bull 我国已经公布了若干字体的点阵字型之国家标准

ndash GB 50071-19852001 信息技术 汉字编码字符集(基本集) 24 点阵字型

ndash GB 50072-19852001 信息技术 汉字编码字符集(辅助集) 24 点阵字型

ndash GB 5199-19862001 信息技术 汉字编码字符集(基本集) 16 点阵字型 宋体

ndash GB 6345-19862001 信息技术 汉字编码字符集(基本集) 32 点阵字型 宋体

ndash GB 12041-2001 信息技术 汉字编码字符集(基本集) 48点阵字型 宋体

ndash GB 17698-1999 信息技术 通用多八位编码字符集( I 区) 汉字 16 点阵字型

232 语音合成bull 文字的声音输出主要使用的是语音合成的技术bull 语音合成功能是ldquo文rarr语rdquo转换bull 文语转换 TTS (Text-To-Speech) 是将文本形式的信息转换成自然语音的一种技术其最终目标是使计算机输出清晰而又自然的声音

bull 英语的语音合成在上世纪 80年代就早已成熟而中文 汉语的合成现在也趋于成熟并有了广泛的应用(如汽车导航仪智能手机等)

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 83: 第一篇  媒体

Unicode 代码的浏览器显示代码 字符标准名称 (英语 )

浏览器的显示

amp65 大写拉丁字母 A A

amp223 小写拉丁字母 Sharp S szlig

amp254 小写拉丁字母 Thorn thorn

amp916 大写希腊字母 Delta Δ

amp1049 大写斯拉夫字母 Short I Й

amp1511 希伯来字母 Qof ק

amp1605 阿拉伯字母 Meem م

amp3671 泰文数字 7 ๗amp4688 埃塞俄比亚音节文字 Qha ቐ

amp12354 日语平假名 A あamp12450 日语片假名 A アamp21494 简体汉字 叶 叶amp33865 繁体汉字 葉 葉amp50685 韩国音节文字 Yeob 엽

23 文字输出bull 文字输出是指将计算机内的字符编码通过计算机的输出设备(如显示器打印机喇叭)展现出所对应字符的图形或声音供人们阅读或聆听

bull 本节主要介绍文字图示输出的字形技术bull 文字声音输出属于语音合成只在本节的末尾作简单的介绍

231 字形技术bull 文字 = 图形bull 不论是象形文字中的单字还是拼音文字

中的字母都是用图形来表示的bull 在计算机里文字的表示 输出(显示和打

印)涉及ndash 字型ndash 字体ndash 字库

1字型bull 字型指构造和生成字形的方法一般可分为

ndash 点阵字 DOS 显卡 ROM 金山 科印特点似位图显示快占空间(字库大)放大后有马赛克效应

bull 显示字母 88 汉字 1616bull 打印 2424 4848 6464

ndash 矢量字单线条用于笔式绘图仪特点字库小算法简单难看

ndash 轮廓字用曲线描绘字的轮廓输出效果好所见即所得(WYSWYG) 可无级放大易实现空心 阴影 填充 变形等各种特效功能轮廓曲线一般采用样条曲线如 TrueType (Apple 1991 Mac OS Microsoft 1992 Windows 31)用的是二次 B 样条 Bezier曲线中文之星 RichWin采用的是三次 B 样条 Bezier曲线

字型种类

2字体bull 字体指字的形状风格如

ndash 汉字的

ndash 英文的

宋体楷体黑体仿宋

行楷隶书新魏幼圆

Times New Roman Arial Narrow Courier New

常用汉字字体bull 宋体mdashmdash宋体来自于北宋时雕版刻书所采用的欧体字(唐朝欧阳询体)宋体字的横顿拉捺挑钩别具特色间架平正疏密适中字体秀丽遒劲但笔画横细竖粗适合于刀刻不宜于手写现在宋体广泛用于印刷常来表现文档的正文

bull 仿宋体mdashmdash 1920年钱塘的丁辅之与丁善之等人将明代以后盛行的方廓形字体加以改造创造出长形和方形的聚珍仿宋后来演化为现在的仿宋体仿宋体比较接近于手写体为宋体和楷体的折中是采用的宋体的结构和楷体的笔法而成现常来表现打印文件以及文档的摘要和注释等

bull 黑体mdashmdash黑体是适应工艺美术的发展而出现的一种等线体是从日本引进的黑体的结构与宋体没有什么差别只是其笔画粗细一致健实粗壮主要用于文档的标题和重点及标语广告等方面

bull 楷体mdashmdash楷体源于楷书楷体的笔画圆浑笔调灵活结构端正美观但不宜于木板雕刻所以直到清末西洋的石板印刷术传入后才开始广泛用于印刷现代的楷体创造于 20世纪的二三十年代主要用于文档的正文(多用于中小学教材)也可用于工艺美术等方面

3字库bull 字库为一种文字的某一字体的所有字符的集合一般存放在一个磁盘文件中

bull 由于象形文字中单字的数量大(成千上万)而拼音文字中字母的数量小(不到一百个)所以字库的大小有很大的差别

bull 为了使文档界面丰富多彩常见的字处理软件都支持多种字体带有众多字库

4点阵字型的国家标准bull 我国已经公布了若干字体的点阵字型之国家标准

ndash GB 50071-19852001 信息技术 汉字编码字符集(基本集) 24 点阵字型

ndash GB 50072-19852001 信息技术 汉字编码字符集(辅助集) 24 点阵字型

ndash GB 5199-19862001 信息技术 汉字编码字符集(基本集) 16 点阵字型 宋体

ndash GB 6345-19862001 信息技术 汉字编码字符集(基本集) 32 点阵字型 宋体

ndash GB 12041-2001 信息技术 汉字编码字符集(基本集) 48点阵字型 宋体

ndash GB 17698-1999 信息技术 通用多八位编码字符集( I 区) 汉字 16 点阵字型

232 语音合成bull 文字的声音输出主要使用的是语音合成的技术bull 语音合成功能是ldquo文rarr语rdquo转换bull 文语转换 TTS (Text-To-Speech) 是将文本形式的信息转换成自然语音的一种技术其最终目标是使计算机输出清晰而又自然的声音

bull 英语的语音合成在上世纪 80年代就早已成熟而中文 汉语的合成现在也趋于成熟并有了广泛的应用(如汽车导航仪智能手机等)

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 84: 第一篇  媒体

23 文字输出bull 文字输出是指将计算机内的字符编码通过计算机的输出设备(如显示器打印机喇叭)展现出所对应字符的图形或声音供人们阅读或聆听

bull 本节主要介绍文字图示输出的字形技术bull 文字声音输出属于语音合成只在本节的末尾作简单的介绍

231 字形技术bull 文字 = 图形bull 不论是象形文字中的单字还是拼音文字

中的字母都是用图形来表示的bull 在计算机里文字的表示 输出(显示和打

印)涉及ndash 字型ndash 字体ndash 字库

1字型bull 字型指构造和生成字形的方法一般可分为

ndash 点阵字 DOS 显卡 ROM 金山 科印特点似位图显示快占空间(字库大)放大后有马赛克效应

bull 显示字母 88 汉字 1616bull 打印 2424 4848 6464

ndash 矢量字单线条用于笔式绘图仪特点字库小算法简单难看

ndash 轮廓字用曲线描绘字的轮廓输出效果好所见即所得(WYSWYG) 可无级放大易实现空心 阴影 填充 变形等各种特效功能轮廓曲线一般采用样条曲线如 TrueType (Apple 1991 Mac OS Microsoft 1992 Windows 31)用的是二次 B 样条 Bezier曲线中文之星 RichWin采用的是三次 B 样条 Bezier曲线

字型种类

2字体bull 字体指字的形状风格如

ndash 汉字的

ndash 英文的

宋体楷体黑体仿宋

行楷隶书新魏幼圆

Times New Roman Arial Narrow Courier New

常用汉字字体bull 宋体mdashmdash宋体来自于北宋时雕版刻书所采用的欧体字(唐朝欧阳询体)宋体字的横顿拉捺挑钩别具特色间架平正疏密适中字体秀丽遒劲但笔画横细竖粗适合于刀刻不宜于手写现在宋体广泛用于印刷常来表现文档的正文

bull 仿宋体mdashmdash 1920年钱塘的丁辅之与丁善之等人将明代以后盛行的方廓形字体加以改造创造出长形和方形的聚珍仿宋后来演化为现在的仿宋体仿宋体比较接近于手写体为宋体和楷体的折中是采用的宋体的结构和楷体的笔法而成现常来表现打印文件以及文档的摘要和注释等

bull 黑体mdashmdash黑体是适应工艺美术的发展而出现的一种等线体是从日本引进的黑体的结构与宋体没有什么差别只是其笔画粗细一致健实粗壮主要用于文档的标题和重点及标语广告等方面

bull 楷体mdashmdash楷体源于楷书楷体的笔画圆浑笔调灵活结构端正美观但不宜于木板雕刻所以直到清末西洋的石板印刷术传入后才开始广泛用于印刷现代的楷体创造于 20世纪的二三十年代主要用于文档的正文(多用于中小学教材)也可用于工艺美术等方面

3字库bull 字库为一种文字的某一字体的所有字符的集合一般存放在一个磁盘文件中

bull 由于象形文字中单字的数量大(成千上万)而拼音文字中字母的数量小(不到一百个)所以字库的大小有很大的差别

bull 为了使文档界面丰富多彩常见的字处理软件都支持多种字体带有众多字库

4点阵字型的国家标准bull 我国已经公布了若干字体的点阵字型之国家标准

ndash GB 50071-19852001 信息技术 汉字编码字符集(基本集) 24 点阵字型

ndash GB 50072-19852001 信息技术 汉字编码字符集(辅助集) 24 点阵字型

ndash GB 5199-19862001 信息技术 汉字编码字符集(基本集) 16 点阵字型 宋体

ndash GB 6345-19862001 信息技术 汉字编码字符集(基本集) 32 点阵字型 宋体

ndash GB 12041-2001 信息技术 汉字编码字符集(基本集) 48点阵字型 宋体

ndash GB 17698-1999 信息技术 通用多八位编码字符集( I 区) 汉字 16 点阵字型

232 语音合成bull 文字的声音输出主要使用的是语音合成的技术bull 语音合成功能是ldquo文rarr语rdquo转换bull 文语转换 TTS (Text-To-Speech) 是将文本形式的信息转换成自然语音的一种技术其最终目标是使计算机输出清晰而又自然的声音

bull 英语的语音合成在上世纪 80年代就早已成熟而中文 汉语的合成现在也趋于成熟并有了广泛的应用(如汽车导航仪智能手机等)

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 85: 第一篇  媒体

231 字形技术bull 文字 = 图形bull 不论是象形文字中的单字还是拼音文字

中的字母都是用图形来表示的bull 在计算机里文字的表示 输出(显示和打

印)涉及ndash 字型ndash 字体ndash 字库

1字型bull 字型指构造和生成字形的方法一般可分为

ndash 点阵字 DOS 显卡 ROM 金山 科印特点似位图显示快占空间(字库大)放大后有马赛克效应

bull 显示字母 88 汉字 1616bull 打印 2424 4848 6464

ndash 矢量字单线条用于笔式绘图仪特点字库小算法简单难看

ndash 轮廓字用曲线描绘字的轮廓输出效果好所见即所得(WYSWYG) 可无级放大易实现空心 阴影 填充 变形等各种特效功能轮廓曲线一般采用样条曲线如 TrueType (Apple 1991 Mac OS Microsoft 1992 Windows 31)用的是二次 B 样条 Bezier曲线中文之星 RichWin采用的是三次 B 样条 Bezier曲线

字型种类

2字体bull 字体指字的形状风格如

ndash 汉字的

ndash 英文的

宋体楷体黑体仿宋

行楷隶书新魏幼圆

Times New Roman Arial Narrow Courier New

常用汉字字体bull 宋体mdashmdash宋体来自于北宋时雕版刻书所采用的欧体字(唐朝欧阳询体)宋体字的横顿拉捺挑钩别具特色间架平正疏密适中字体秀丽遒劲但笔画横细竖粗适合于刀刻不宜于手写现在宋体广泛用于印刷常来表现文档的正文

bull 仿宋体mdashmdash 1920年钱塘的丁辅之与丁善之等人将明代以后盛行的方廓形字体加以改造创造出长形和方形的聚珍仿宋后来演化为现在的仿宋体仿宋体比较接近于手写体为宋体和楷体的折中是采用的宋体的结构和楷体的笔法而成现常来表现打印文件以及文档的摘要和注释等

bull 黑体mdashmdash黑体是适应工艺美术的发展而出现的一种等线体是从日本引进的黑体的结构与宋体没有什么差别只是其笔画粗细一致健实粗壮主要用于文档的标题和重点及标语广告等方面

bull 楷体mdashmdash楷体源于楷书楷体的笔画圆浑笔调灵活结构端正美观但不宜于木板雕刻所以直到清末西洋的石板印刷术传入后才开始广泛用于印刷现代的楷体创造于 20世纪的二三十年代主要用于文档的正文(多用于中小学教材)也可用于工艺美术等方面

3字库bull 字库为一种文字的某一字体的所有字符的集合一般存放在一个磁盘文件中

bull 由于象形文字中单字的数量大(成千上万)而拼音文字中字母的数量小(不到一百个)所以字库的大小有很大的差别

bull 为了使文档界面丰富多彩常见的字处理软件都支持多种字体带有众多字库

4点阵字型的国家标准bull 我国已经公布了若干字体的点阵字型之国家标准

ndash GB 50071-19852001 信息技术 汉字编码字符集(基本集) 24 点阵字型

ndash GB 50072-19852001 信息技术 汉字编码字符集(辅助集) 24 点阵字型

ndash GB 5199-19862001 信息技术 汉字编码字符集(基本集) 16 点阵字型 宋体

ndash GB 6345-19862001 信息技术 汉字编码字符集(基本集) 32 点阵字型 宋体

ndash GB 12041-2001 信息技术 汉字编码字符集(基本集) 48点阵字型 宋体

ndash GB 17698-1999 信息技术 通用多八位编码字符集( I 区) 汉字 16 点阵字型

232 语音合成bull 文字的声音输出主要使用的是语音合成的技术bull 语音合成功能是ldquo文rarr语rdquo转换bull 文语转换 TTS (Text-To-Speech) 是将文本形式的信息转换成自然语音的一种技术其最终目标是使计算机输出清晰而又自然的声音

bull 英语的语音合成在上世纪 80年代就早已成熟而中文 汉语的合成现在也趋于成熟并有了广泛的应用(如汽车导航仪智能手机等)

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 86: 第一篇  媒体

1字型bull 字型指构造和生成字形的方法一般可分为

ndash 点阵字 DOS 显卡 ROM 金山 科印特点似位图显示快占空间(字库大)放大后有马赛克效应

bull 显示字母 88 汉字 1616bull 打印 2424 4848 6464

ndash 矢量字单线条用于笔式绘图仪特点字库小算法简单难看

ndash 轮廓字用曲线描绘字的轮廓输出效果好所见即所得(WYSWYG) 可无级放大易实现空心 阴影 填充 变形等各种特效功能轮廓曲线一般采用样条曲线如 TrueType (Apple 1991 Mac OS Microsoft 1992 Windows 31)用的是二次 B 样条 Bezier曲线中文之星 RichWin采用的是三次 B 样条 Bezier曲线

字型种类

2字体bull 字体指字的形状风格如

ndash 汉字的

ndash 英文的

宋体楷体黑体仿宋

行楷隶书新魏幼圆

Times New Roman Arial Narrow Courier New

常用汉字字体bull 宋体mdashmdash宋体来自于北宋时雕版刻书所采用的欧体字(唐朝欧阳询体)宋体字的横顿拉捺挑钩别具特色间架平正疏密适中字体秀丽遒劲但笔画横细竖粗适合于刀刻不宜于手写现在宋体广泛用于印刷常来表现文档的正文

bull 仿宋体mdashmdash 1920年钱塘的丁辅之与丁善之等人将明代以后盛行的方廓形字体加以改造创造出长形和方形的聚珍仿宋后来演化为现在的仿宋体仿宋体比较接近于手写体为宋体和楷体的折中是采用的宋体的结构和楷体的笔法而成现常来表现打印文件以及文档的摘要和注释等

bull 黑体mdashmdash黑体是适应工艺美术的发展而出现的一种等线体是从日本引进的黑体的结构与宋体没有什么差别只是其笔画粗细一致健实粗壮主要用于文档的标题和重点及标语广告等方面

bull 楷体mdashmdash楷体源于楷书楷体的笔画圆浑笔调灵活结构端正美观但不宜于木板雕刻所以直到清末西洋的石板印刷术传入后才开始广泛用于印刷现代的楷体创造于 20世纪的二三十年代主要用于文档的正文(多用于中小学教材)也可用于工艺美术等方面

3字库bull 字库为一种文字的某一字体的所有字符的集合一般存放在一个磁盘文件中

bull 由于象形文字中单字的数量大(成千上万)而拼音文字中字母的数量小(不到一百个)所以字库的大小有很大的差别

bull 为了使文档界面丰富多彩常见的字处理软件都支持多种字体带有众多字库

4点阵字型的国家标准bull 我国已经公布了若干字体的点阵字型之国家标准

ndash GB 50071-19852001 信息技术 汉字编码字符集(基本集) 24 点阵字型

ndash GB 50072-19852001 信息技术 汉字编码字符集(辅助集) 24 点阵字型

ndash GB 5199-19862001 信息技术 汉字编码字符集(基本集) 16 点阵字型 宋体

ndash GB 6345-19862001 信息技术 汉字编码字符集(基本集) 32 点阵字型 宋体

ndash GB 12041-2001 信息技术 汉字编码字符集(基本集) 48点阵字型 宋体

ndash GB 17698-1999 信息技术 通用多八位编码字符集( I 区) 汉字 16 点阵字型

232 语音合成bull 文字的声音输出主要使用的是语音合成的技术bull 语音合成功能是ldquo文rarr语rdquo转换bull 文语转换 TTS (Text-To-Speech) 是将文本形式的信息转换成自然语音的一种技术其最终目标是使计算机输出清晰而又自然的声音

bull 英语的语音合成在上世纪 80年代就早已成熟而中文 汉语的合成现在也趋于成熟并有了广泛的应用(如汽车导航仪智能手机等)

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 87: 第一篇  媒体

字型种类

2字体bull 字体指字的形状风格如

ndash 汉字的

ndash 英文的

宋体楷体黑体仿宋

行楷隶书新魏幼圆

Times New Roman Arial Narrow Courier New

常用汉字字体bull 宋体mdashmdash宋体来自于北宋时雕版刻书所采用的欧体字(唐朝欧阳询体)宋体字的横顿拉捺挑钩别具特色间架平正疏密适中字体秀丽遒劲但笔画横细竖粗适合于刀刻不宜于手写现在宋体广泛用于印刷常来表现文档的正文

bull 仿宋体mdashmdash 1920年钱塘的丁辅之与丁善之等人将明代以后盛行的方廓形字体加以改造创造出长形和方形的聚珍仿宋后来演化为现在的仿宋体仿宋体比较接近于手写体为宋体和楷体的折中是采用的宋体的结构和楷体的笔法而成现常来表现打印文件以及文档的摘要和注释等

bull 黑体mdashmdash黑体是适应工艺美术的发展而出现的一种等线体是从日本引进的黑体的结构与宋体没有什么差别只是其笔画粗细一致健实粗壮主要用于文档的标题和重点及标语广告等方面

bull 楷体mdashmdash楷体源于楷书楷体的笔画圆浑笔调灵活结构端正美观但不宜于木板雕刻所以直到清末西洋的石板印刷术传入后才开始广泛用于印刷现代的楷体创造于 20世纪的二三十年代主要用于文档的正文(多用于中小学教材)也可用于工艺美术等方面

3字库bull 字库为一种文字的某一字体的所有字符的集合一般存放在一个磁盘文件中

bull 由于象形文字中单字的数量大(成千上万)而拼音文字中字母的数量小(不到一百个)所以字库的大小有很大的差别

bull 为了使文档界面丰富多彩常见的字处理软件都支持多种字体带有众多字库

4点阵字型的国家标准bull 我国已经公布了若干字体的点阵字型之国家标准

ndash GB 50071-19852001 信息技术 汉字编码字符集(基本集) 24 点阵字型

ndash GB 50072-19852001 信息技术 汉字编码字符集(辅助集) 24 点阵字型

ndash GB 5199-19862001 信息技术 汉字编码字符集(基本集) 16 点阵字型 宋体

ndash GB 6345-19862001 信息技术 汉字编码字符集(基本集) 32 点阵字型 宋体

ndash GB 12041-2001 信息技术 汉字编码字符集(基本集) 48点阵字型 宋体

ndash GB 17698-1999 信息技术 通用多八位编码字符集( I 区) 汉字 16 点阵字型

232 语音合成bull 文字的声音输出主要使用的是语音合成的技术bull 语音合成功能是ldquo文rarr语rdquo转换bull 文语转换 TTS (Text-To-Speech) 是将文本形式的信息转换成自然语音的一种技术其最终目标是使计算机输出清晰而又自然的声音

bull 英语的语音合成在上世纪 80年代就早已成熟而中文 汉语的合成现在也趋于成熟并有了广泛的应用(如汽车导航仪智能手机等)

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 88: 第一篇  媒体

2字体bull 字体指字的形状风格如

ndash 汉字的

ndash 英文的

宋体楷体黑体仿宋

行楷隶书新魏幼圆

Times New Roman Arial Narrow Courier New

常用汉字字体bull 宋体mdashmdash宋体来自于北宋时雕版刻书所采用的欧体字(唐朝欧阳询体)宋体字的横顿拉捺挑钩别具特色间架平正疏密适中字体秀丽遒劲但笔画横细竖粗适合于刀刻不宜于手写现在宋体广泛用于印刷常来表现文档的正文

bull 仿宋体mdashmdash 1920年钱塘的丁辅之与丁善之等人将明代以后盛行的方廓形字体加以改造创造出长形和方形的聚珍仿宋后来演化为现在的仿宋体仿宋体比较接近于手写体为宋体和楷体的折中是采用的宋体的结构和楷体的笔法而成现常来表现打印文件以及文档的摘要和注释等

bull 黑体mdashmdash黑体是适应工艺美术的发展而出现的一种等线体是从日本引进的黑体的结构与宋体没有什么差别只是其笔画粗细一致健实粗壮主要用于文档的标题和重点及标语广告等方面

bull 楷体mdashmdash楷体源于楷书楷体的笔画圆浑笔调灵活结构端正美观但不宜于木板雕刻所以直到清末西洋的石板印刷术传入后才开始广泛用于印刷现代的楷体创造于 20世纪的二三十年代主要用于文档的正文(多用于中小学教材)也可用于工艺美术等方面

3字库bull 字库为一种文字的某一字体的所有字符的集合一般存放在一个磁盘文件中

bull 由于象形文字中单字的数量大(成千上万)而拼音文字中字母的数量小(不到一百个)所以字库的大小有很大的差别

bull 为了使文档界面丰富多彩常见的字处理软件都支持多种字体带有众多字库

4点阵字型的国家标准bull 我国已经公布了若干字体的点阵字型之国家标准

ndash GB 50071-19852001 信息技术 汉字编码字符集(基本集) 24 点阵字型

ndash GB 50072-19852001 信息技术 汉字编码字符集(辅助集) 24 点阵字型

ndash GB 5199-19862001 信息技术 汉字编码字符集(基本集) 16 点阵字型 宋体

ndash GB 6345-19862001 信息技术 汉字编码字符集(基本集) 32 点阵字型 宋体

ndash GB 12041-2001 信息技术 汉字编码字符集(基本集) 48点阵字型 宋体

ndash GB 17698-1999 信息技术 通用多八位编码字符集( I 区) 汉字 16 点阵字型

232 语音合成bull 文字的声音输出主要使用的是语音合成的技术bull 语音合成功能是ldquo文rarr语rdquo转换bull 文语转换 TTS (Text-To-Speech) 是将文本形式的信息转换成自然语音的一种技术其最终目标是使计算机输出清晰而又自然的声音

bull 英语的语音合成在上世纪 80年代就早已成熟而中文 汉语的合成现在也趋于成熟并有了广泛的应用(如汽车导航仪智能手机等)

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 89: 第一篇  媒体

常用汉字字体bull 宋体mdashmdash宋体来自于北宋时雕版刻书所采用的欧体字(唐朝欧阳询体)宋体字的横顿拉捺挑钩别具特色间架平正疏密适中字体秀丽遒劲但笔画横细竖粗适合于刀刻不宜于手写现在宋体广泛用于印刷常来表现文档的正文

bull 仿宋体mdashmdash 1920年钱塘的丁辅之与丁善之等人将明代以后盛行的方廓形字体加以改造创造出长形和方形的聚珍仿宋后来演化为现在的仿宋体仿宋体比较接近于手写体为宋体和楷体的折中是采用的宋体的结构和楷体的笔法而成现常来表现打印文件以及文档的摘要和注释等

bull 黑体mdashmdash黑体是适应工艺美术的发展而出现的一种等线体是从日本引进的黑体的结构与宋体没有什么差别只是其笔画粗细一致健实粗壮主要用于文档的标题和重点及标语广告等方面

bull 楷体mdashmdash楷体源于楷书楷体的笔画圆浑笔调灵活结构端正美观但不宜于木板雕刻所以直到清末西洋的石板印刷术传入后才开始广泛用于印刷现代的楷体创造于 20世纪的二三十年代主要用于文档的正文(多用于中小学教材)也可用于工艺美术等方面

3字库bull 字库为一种文字的某一字体的所有字符的集合一般存放在一个磁盘文件中

bull 由于象形文字中单字的数量大(成千上万)而拼音文字中字母的数量小(不到一百个)所以字库的大小有很大的差别

bull 为了使文档界面丰富多彩常见的字处理软件都支持多种字体带有众多字库

4点阵字型的国家标准bull 我国已经公布了若干字体的点阵字型之国家标准

ndash GB 50071-19852001 信息技术 汉字编码字符集(基本集) 24 点阵字型

ndash GB 50072-19852001 信息技术 汉字编码字符集(辅助集) 24 点阵字型

ndash GB 5199-19862001 信息技术 汉字编码字符集(基本集) 16 点阵字型 宋体

ndash GB 6345-19862001 信息技术 汉字编码字符集(基本集) 32 点阵字型 宋体

ndash GB 12041-2001 信息技术 汉字编码字符集(基本集) 48点阵字型 宋体

ndash GB 17698-1999 信息技术 通用多八位编码字符集( I 区) 汉字 16 点阵字型

232 语音合成bull 文字的声音输出主要使用的是语音合成的技术bull 语音合成功能是ldquo文rarr语rdquo转换bull 文语转换 TTS (Text-To-Speech) 是将文本形式的信息转换成自然语音的一种技术其最终目标是使计算机输出清晰而又自然的声音

bull 英语的语音合成在上世纪 80年代就早已成熟而中文 汉语的合成现在也趋于成熟并有了广泛的应用(如汽车导航仪智能手机等)

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 90: 第一篇  媒体

3字库bull 字库为一种文字的某一字体的所有字符的集合一般存放在一个磁盘文件中

bull 由于象形文字中单字的数量大(成千上万)而拼音文字中字母的数量小(不到一百个)所以字库的大小有很大的差别

bull 为了使文档界面丰富多彩常见的字处理软件都支持多种字体带有众多字库

4点阵字型的国家标准bull 我国已经公布了若干字体的点阵字型之国家标准

ndash GB 50071-19852001 信息技术 汉字编码字符集(基本集) 24 点阵字型

ndash GB 50072-19852001 信息技术 汉字编码字符集(辅助集) 24 点阵字型

ndash GB 5199-19862001 信息技术 汉字编码字符集(基本集) 16 点阵字型 宋体

ndash GB 6345-19862001 信息技术 汉字编码字符集(基本集) 32 点阵字型 宋体

ndash GB 12041-2001 信息技术 汉字编码字符集(基本集) 48点阵字型 宋体

ndash GB 17698-1999 信息技术 通用多八位编码字符集( I 区) 汉字 16 点阵字型

232 语音合成bull 文字的声音输出主要使用的是语音合成的技术bull 语音合成功能是ldquo文rarr语rdquo转换bull 文语转换 TTS (Text-To-Speech) 是将文本形式的信息转换成自然语音的一种技术其最终目标是使计算机输出清晰而又自然的声音

bull 英语的语音合成在上世纪 80年代就早已成熟而中文 汉语的合成现在也趋于成熟并有了广泛的应用(如汽车导航仪智能手机等)

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 91: 第一篇  媒体

4点阵字型的国家标准bull 我国已经公布了若干字体的点阵字型之国家标准

ndash GB 50071-19852001 信息技术 汉字编码字符集(基本集) 24 点阵字型

ndash GB 50072-19852001 信息技术 汉字编码字符集(辅助集) 24 点阵字型

ndash GB 5199-19862001 信息技术 汉字编码字符集(基本集) 16 点阵字型 宋体

ndash GB 6345-19862001 信息技术 汉字编码字符集(基本集) 32 点阵字型 宋体

ndash GB 12041-2001 信息技术 汉字编码字符集(基本集) 48点阵字型 宋体

ndash GB 17698-1999 信息技术 通用多八位编码字符集( I 区) 汉字 16 点阵字型

232 语音合成bull 文字的声音输出主要使用的是语音合成的技术bull 语音合成功能是ldquo文rarr语rdquo转换bull 文语转换 TTS (Text-To-Speech) 是将文本形式的信息转换成自然语音的一种技术其最终目标是使计算机输出清晰而又自然的声音

bull 英语的语音合成在上世纪 80年代就早已成熟而中文 汉语的合成现在也趋于成熟并有了广泛的应用(如汽车导航仪智能手机等)

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 92: 第一篇  媒体

232 语音合成bull 文字的声音输出主要使用的是语音合成的技术bull 语音合成功能是ldquo文rarr语rdquo转换bull 文语转换 TTS (Text-To-Speech) 是将文本形式的信息转换成自然语音的一种技术其最终目标是使计算机输出清晰而又自然的声音

bull 英语的语音合成在上世纪 80年代就早已成熟而中文 汉语的合成现在也趋于成熟并有了广泛的应用(如汽车导航仪智能手机等)

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 93: 第一篇  媒体

语音合成的过程图文本输入

darr

larrrarr larrrarr语法规则 文本分析 发音词典

darr

音标韵律符号

darr darr

larrrarr larrrarr合成单元语音数据 语音控制 韵律控制(节奏音调响度)

darr darr

综合谱形状反射声道特征 语音段落基音幅度

darr darr

语音合成器

darr

语音输出

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 94: 第一篇  媒体

TTS系统框图

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 95: 第一篇  媒体

作业bull 平时作业 1 (选做)用 VC 编写一个在屏幕上

输出中文字符串的 Windows 应用程序要求用户可以设置字体字号颜色方向和串的内容

bull 平时作业 2 (选做) 编写宽字符串( UTF-16 )与普通字符串( GB 2312 )的相互转换函数(提示可以利用 MFC 的 CString 的 AllocSysString() 和 STL 的 map容器)

bull 大作业参考选题 1研究 GB 13000 Unicode和 或 ISOIEC 10646 标准的结构内容字符集编码方式以及相互关系

bull 大作业参考选题 2实现 GB 2312 Big5 GBKGB 18030 GB 13000 等两个或多个标准之间的汉字代码转换

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 96: 第一篇  媒体

复习思考题bull 计算机对文字的处理包括哪三个部分bull 文字录入计算机的方法主要有哪几类bull 汉字有哪三个要素各对应于什么键盘输入法bull 语音识别系统可以如何分类语音识别的目标是开

发什么样的语音识别系统bull ASCII 的英文原文和中文译文是什么 ASCII 是由什么组织在什么时候制定的

bull ASCII 所对应的 ISO 标准号是多少该 ISO 标准是什么时候制定的

bull 给出标准化组织 ANSI ISO 和 IEC 的含义bull 常用的中文编码的国家标准有哪些它们各自的特

点与适用范围是什么

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 97: 第一篇  媒体

bull GB 2312 中的汉字分成几级各级中的汉字按什么顺序排列

bull GB 2312 中的汉字用几个字节表示为什么只有 94个区 位

bull 给出 Big5 的含义bull GB 13000 与 ISOIEC 10646 的关系是什么bull 给出 UCS 和 BMP 的英文原文中文译文含义与相互关系

bull 中日韩统一汉字( CJK )在 BMP 的哪个区含有多少个汉字

bull UCS 的字符编码有哪些表示形式它们各有什么特点bull GBK 与 GB 18030 有什么关系它们与 GB 2312 和

GB 13000又有什么关系bull Unicode 与 ISOIEC 10646 有什么关系比较它们的异同

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
Page 98: 第一篇  媒体

bull UTF 是什么它有哪些具体编码方式这些方式各有什么特点

bull 文字输出方式包括哪两大类bull 字形技术含哪三个方面bull 有哪三种字型它们各有什么特点bull 常用的汉字字体是哪几种它们各用于哪些方面bull 语音输入与语音输出的核心技术各是什么bull 给出 TTS 的英文原文和中文译文并描述其系统的

主要构成和功能

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98