2.4.1.3. Unicode和ISO 10646的区别

统一码联盟公布的Unicode标准包含了ISO/IEC 10646-1实现级别3的基本多文种平面BMP。在两个标准里,所有的字符都在相同的位置并且有相同的名字。

ISO/IEC 10646标准,就像ISO/IEC 8859标准一样,只不过是一个简单的字符集表。它定义了一些编码的别名,指定了一些与标准有关的术语,并包括了规范说明,指定了怎样使用UCS连接其他ISO标准的实现,比如ISO/IEC 6429和ISO/IEC 2022。还有一些与ISO紧密相关的,比如ISO/IEC 14651是关于UCS字符串排序的。

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

所以,可以理解为,ISO 10646中定义了编码规则,定义了哪些值对应了哪些字符,而Unicode不仅定义了这些编码规则,还定义了其他一些关于文字处理的细节算法等内容。

即:

Unicode

= ISO 10646的编码规则 + 某些语言的细节处理算法

对于一般人来说,Unicode 和 ISO 10646,虽然两者有些细节的区别,但是我们多数不用去关系这点细节内容,而对于字符编码规则方面,此处可以简单的理解为:

Unicode

= ISO 10646编码标准

= 标准所制定的UCS字符集