在ISO制定10646时,以 Universal, Unique 和 Uniform 为主旨的Unicode组织也开始开发Unicode16位字符标准,为避免 16 位编码的竞争,1991年10月ISO与Unicode组织达成协议,采用同一编码字集。这就是当前的 UCS-2 和 Unicode,但它们仍然是不同的方案。目前,Unicode有两套标准,一套叫Unicode-16UCS-2,用2个字节为字符编码,另一套叫Unicode-32UCS-4,用4个字节为字符编码。Unicode采用16位编码体系,1996公布Unicode-16UCS-2,可以表示的码位数为65535个,基本上可以容纳所有的欧美字符和绝大部分的亚洲字符,内容包含6811个符号,20902个汉字,11172个韩文拼音,6400个造字码位,20249保留码位。
在Unicode中,所有的字符将被一视同仁,汉字不再使用“两个扩展ASCII”,而是使用“单个Unicode”,这样,拆字、统计字数等问题也就自然而然的解决了。但是,使用Unicode处理字符时,还需要考虑与ASCII字符的兼容问题。
UTF( UCS Transformation Format UCS)转换格式将Unicode编码规则和计算机的实际编码对应起来。目前,有2种流行的UTF:UTF-8和UTF-16。其中UTF-8不同,定义了一种规则,这种规则可以和ASCII编码保持最大程度的兼容,将Unicode编码为00000000-0000007F的字符,用单个字节来表示;将00000080-000007FF的字符用两个字节表示;00000800-0000FFFF的字符用3字节表示。UTF-8最多需要用6字节表示一个字符。在UTF-8里,英文字符仍然跟ASCII编码一样,而中文的编码范围是在0080-07FF之间。
但是,在Unicode编码中,还需要使用ISO10646中的第0字面以后的字符,UTF-16可以将原为32位的ISO10646字符码转换为2个或多个16位的Unicode。目前,组合两个Unicode字符码来代表一个ISO10646字符,UTF-16可提供16个字面。对BMP(BMP,Basic Multilingual Plane,16bit)而言,当然无需使用UTF-16转码,所以UTF-16主要应用于ISO10646的第1~第14字面(因为第15字面为专用字面,WG2不予编码)。
|