点代码又称代码点。用于编码抽象字符的整数范围叫做代码空间,其中的特殊整数叫做代码点。当抽象字符被映射或在代码空间中被指定为特殊代码点时,就被叫做编码字符。
代码点类型
代码点的分类方式有多种,不是所有被指派的代码点都代表抽象字符,仅有图表、格式、控制和私用代码点可以做到。代理和非字符被指定为代码点,但不能指定为抽象字符。保留的代码点可以被指派,任何一个代码点都可以被指派到以后使用的标准版本中。一般分类提供了图解字符的精细分类,同样区别于其他基本类型(除了非字符和保留字符)。在Unieode字符数据库中定义的属性为Unicode代码点分类系统提供了不同的分类。
控制代码:65个代码点(U+0000..U+001F和U+007F..U+009F)作为控制代码被保留,因为与
ISO/IEC 2022框架C0和C1控制代码相兼容。
非字符:66个代码点不可对字符进行编码。非字符包括U+FDD0..U+FDEF和以或结尾的代码点,即U+FFFE,U+FFFF,U+1FFFE,U+1FFFF,...U+10FFFE,U+10FFFF。
自行使用:三个区域的代码点保留为自行使用。这些区域字符不会被
Unicode标准定义。这些代码点可以用于任何字符,但是成功转换需要发送者和接收者的一致解释。
替代:2048个代码点被指派为替代代码点,这些代码点经常以UTF一16编码形式使用。
受限转换:未被指派到抽象字符中的代码点在转换中是受限制的。
1、代理代码点不能以Unicode编码形式转换。由于代理代码点和Unicode值不一致,因而不能以任何Unicode编码形式表示。
2、无字符代码点因内部使用而保留,它们不能被转换。然而,在Unicode编码形式中它们却能很好地表示,并且可以在编码形式之间转化。这就使无字符代码能够以Unicode编码形式保存,即使它们的设计是用于外部转换的。
3、所有实现操作需要保存储存的代码点,因为在新版的Unicode标准的执行过程中,它们可能会产生。例如,假设一个用户在使用Unicode 5.0系统,第二个用户在使用Unicode 3.2系统,第一个用户发给第二个用户包含有Unicode 5.0中新指令代码点的文件,而这些代码点在Unicode 3.2版中却没有被指派。这时,第二个用户可以编辑该文件,不改变保存的代码,然后即可发出去。在这种情况下,第二个用户就可以转换被保存的代码点。
代码点语义:大部分代码点的语义由Unicode标准建立,但控制、私用、非字符代码除外。控制代码的语义由其他标准或协议(如ISO/IEC 6429)决定,但是仍有一些控制代码的语义在Unicode标准中有特殊的定义。私用字符的语义在Unicode标准的范围之外,它的使用由个人协议决定,例如双方之间的协议。非字符只在内部使用中才有语义。
代码点的分配
Unicode标准中的代码点按照以下原则进行分配。
1、如果有一个公认的文字标准,Unicode标准一般会对这个文字中相关顺序的字符遵循这一标准。
2、前256个代码遵循ISO/IEC 8859—1(拉丁语1),7位的
ASCII(ISO/IEC 646 IVR)码占据前128个代码位置。
3、具有共同特征的字符是相邻的。举例来说,基本的阿拉伯语字符块是按照ISO/IEC 8859-6来构建模型的。在波斯语、乌尔都语等中使用的阿拉伯文字,不包含在ISO/IEC 8859—6中,而是分配到基本阿拉伯字符代码块后。从右至左书写的文字也安排在一起。
4、在可能的范围内,文字分配是为了不超越128代码点边界线,对于补充字符,需要运用一个不超越1024代码点界限的额外约束,这些制约因素更好地优化了创建表格的任务,以便访问字符属性。
5、代码代表了字母、标点、符号以及读音符号,一般情况下,它们在多种语言或者文字中使用,并且一起分布在相应的位置上。
6、Unicode标准并没有把字符代码分配与依赖语言校勘或
计算机辅助软件工程相关联。
7、
CJK统一象形文字安排在三部分中,每一部分都是根据象形字安排的。这样的顺序是以基本的笔画数来排序的。