Unicode Version 17 最近发布了,本文想对Unicode标准本身做一个简介。
标准本身是由四个部分组成的,分别是核心规范,码表,字符数据库和附则共同组成。
- 核心规范 Unicode Core Specification
该部分是整个规范的描述信息,基本可以当一本独立的书来看,包含24个章节,大概可以分为三个部分,前五章是一部分,后面的第六到二十三章是一本,二十四章是一部分。
第一章包含设计目的,讨论了文本处理的整个过程和概念。
第二章描述标准的整体结构,包含设计原则,码点和字符的概念,编码方式等等主题。
第三章阐述合规性,描述什么情况是符合或者不符合规范的。
第四章是对字符属性的描述,在字符数据库中包含每个字符的多种属性,这里是对这些属性的描述说明。
第五章包含具体实现的指南。
第六到二十三章是对区块的具体描述,包含区块的基本信息,特殊字符的讨论,特殊的排版需要等等,也就是把所有的区块归类为十七个左右的大类来讨论。
第二十四章是对码表的整体性描述。
网页版本:www.unicode.org/versions/Un… PDF版本:www.unicode.org/versions/Un…
- 码表 Unicode Code Charts
Unicode给编码的每一个字符都起了独立的名字,码表的内容就是码点-字符-字符名字的对应关系。
码表的目录是一个页面,按照分类列出了Unicode中的所有区块,分为两个大类,第一类是文字(Script),按照地理区域分类,第二类是符号(symbols)和标点符号(punctuation),其实相当于不是文字的区块都在这个类别里面,标点符号,数字,Emoji,私有区块都在这里,麻将,扑克区块也在这里。
每一个区块都对应一个PDF文件,每个文件包含该区块内每一个字符的表格和每一个字符的具体名字。
- 字符数据库 The Unicode Character Database
这个数据库其实是一系列的txt文件,按照字符属性的不同分到不同的文件中,这些文件的内容都是格式化过的,可以通过程序来读取,所以这部分内容叫数据库。
如果需要实现Unicode,程序库需要读取这些文件,然后按照规范或者规范附则文件中描述的算法来实现具体的功能,实现过程中很多时候就是在数据库中查表获得字符的属性做判断。
具体地址:www.unicode.org/ucd/
- 附则 Unicode Standard Annexes
对于一些复杂的主题,放入核心规范太大了,就独立分到独立的文档中,这一系列的文档共同叫Unicode规范附则,这是规范的一部分,伴随Unicode的升级,这部分内容也同步升级。
具体地址:www.unicode.org/reports/ind…
- 技术标准和技术报告 Unicode Technical Standards and Unicode Technical Reports
这部分内容与附则相似,文档的编号也是与附则文档的编号交叉的,区别是这部分内容不在规范内,有些是同步升级的,有些不是,内容相对Unicode相关性较远。