森宝网络

ISO10646指的是什么?

  

ISO10646指的是什么?

  

ISO10646指的是什么?

  

ISO10646指的是什么?

  

ISO10646指的是什么?

  什么是Unicode?历史上,有两个独立的,创立单一字符集的尝试.一个是国际标准化组织(ISO)的ISO10646项目,另一个是由(一开始大多是美国的)多语言软件制造商组成的协会组织的Unicode项目.幸运的是,1991年前后,两个项目的参与者都认识到,世界不需要两个不同的单一字符集.它们合并双方的工作成果,并为创立一个单一编码表而协同工作.两个项目仍都存在并独立地公布各自的标准,但Unicode协会和ISO/IECJTC1/SC2都同意保持Unicode和ISO10646标准的码表兼容,并紧密地共同调整任何未来的扩展.UnicodevsISO10646Unicode协会公布的Unicode标准严密地包含了ISO10646-1实现级别3的基本多语言面.在两个标准里所有的字符都在相同的位置并且有相同的名字.Unicode标准额外定义了许多与字符有关的语义符号学,一般而言是对于实现高质量的印刷出版系统的更好的参考.Unicode详细说明了绘制某些语言(比如阿拉伯语)表达形式的算法,处理双向文字(比如拉丁与希伯来文混合文字)的算法和排序与字符串比较所需的算法,以及其他许多东西.另一方面,ISO10646标准,就象广为人知的ISO8859标准一样,只不过是一个简单的字符集表.它指定了一些与标准有关的术语,定义了一些编码的别名,并包括了规范说明,指定了怎样使用UCS连接其他ISO标准的实现,比如ISO6429和ISO2022.还有一些与ISO紧密相关的,比如ISO14651是关于UCS字符串排序的.考虑到Unicode标准有一个易记的名字,且在任何好的书店里的Addison-Wesley里有,只花费ISO版本的一小部分,且包括的辅助信息,因而它成为使用广泛得多的参考也就不足为奇了.然而,一般认为,用于打印ISO10646-1标准的字体在某些方面的质量要高于用于打印Unicode2.0的.专业字体设计者总是被建议说要两个标准都实现,但一些提供的样例字形有显著的区别.ISO10646-1标准同样使用四种不同的风格变体来显示表意文字如中文,日文和韩文(CJK),而Unicode2.0的表里只有中文的变体.这导致了普遍的认为Unicode对日本用户来说是不可接收的传说,尽管是错误的.UTF-8首先UCS和Unicode只是分配整数给字符的编码表.现在存在好几种将一串字符表示为一串字节的方法.最显而易见的两种方法是将Unicode文本存储为2个或4个字节序列的串.这两种方法的正式名称分别为UCS-2和UCS-4.除非另外指定,否则大多数的字节都是这样的(Bigendianconvention).将一个ASCII或Latin-1的文件转换成UCS-2只需简单地在每个ASCII字节前插入0x00.如果要转换成UCS-4,则必须在每个ASCII字节前插入三个0x00.在Unix下使用UCS-2(或UCS-4)会导致非常严重的问题.用这些编码的字符串会包含一些特殊的字符,比如\0或/,它们在文件名和其他C库函数参数里都有特别的含义.另外,大多数使用ASCII文件的UNIX下的工具,如果不进行重大修改是无法读取16位的字符的.基于这些原因,在文件名,文本文件,环境变量等地方,UCS-2不适合作为Unicode的外部编码.在ISO10646-1AnnexR和RFC2279里定义的UTF-8编码没有这些问题.它是在Unix风格的操作系统下使用Unicode的明显的方法.UTF-8有一下特性:UCS字符U+0000到U+007F(ASCII)被编码为字节0x00到0x7F(ASCII兼容).这意味着只包含7位ASCII字符的文件在ASCII和UTF-8两种编码方式下是一样的.所有>U+007F的UCS字符被编码为一个多个字节的串,每个字节都有标记位集.因此,ASCII字节(0x00-0x7F)不可能作为任何其他字符的一部分.表示非ASCII字符的多字节串的第一个字节总是在0xC0到0xFD的范围里,并指出这个字符包含多少个字节.多字节串的其余字节都在0x80到0xBF范围里.这使得重新同步非常容易,并使编码无国界,且很少受丢失字节的影响.可以编入所有可能的231个UCS代码UTF-8编码字符理论上可以最多到6个字节长,然而16位BMP字符最多只用到3字节长.BigendianUCS-4字节串的排列顺序是预定的.字节0xFE和0xFF在UTF-8编码中从未用到.下列字节串用来表示一个字符.用到哪个串取决于该字符在Unicode中的序号.U-00000000-U-0000007F:0xxxxxxxU-00000080-U-000007FF:110xxxxx10xxxxxxU-00000800-U-0000FFFF:1110xxxx10xxxxxx10xxxxxxU-00010000-U-001FFFFF:11110xxx10xxxxxx10xxxxxx10xxxxxxU-00200000-U-03FFFFFF:111110xx10xxxxxx10xxxxxx10xxxxxx10xxxxxxU-04000000-U-7FFFFFFF:1111110x10xxxxxx10xxxxxx10xxxxxx10xxxxxx10xxxxxxxxx的位置由字符编码数的二进制表示的位填入.越靠右的x具有越少的特殊意义.只用最短的那个足够表达一个字符编码数的多字节串.注意在多字节串中,第一个字节的开头"1"的数目就是整个串中字节的数目.例如:Unicode字符U+00A9=10101001(版权符号)在UTF-8里的编码为:1100001010101001=0xC20xA9而字符U+2260=0010001001100000(不等于)编码为:111000101000100110100000=0xE20x890xA0这种编码的官方名字拼写为UTF-8,其中UTF代表UCSTransformationFormat.请勿在任何文档中用其他名字(比如utf8或UTF_8)来表示UTF-8,当然除非你指的是一个变量名而不是这种编码本身.

未经允许不得转载:五金工具_五金配件_五金建材_机械设备-森宝五金网 > ISO10646指的是什么?

评论

留言与评论(共有 0 条评论)
   
验证码: