乱码大全(14)──Unicode(1; 简介)

来源:百度文库 编辑:神马文学网 时间:2024/04/29 00:14:40
乱码大全(14)──Unicode(1; 简介)  “乱码大全”,作者:bluesea,水木清华 BBS 成员。欢迎在 BBS 中转载,帮助计算机初学者解决使用软件过程中遇到的实际问题。本文原载于水木清华 BBS 的 Internet讨论区。地址是: telnet://bbs.tsinghua.edu.cn ,WWW访问的地址是 http://bbs.tsinghua.edu.cn 。当下面的条件全部满足时,转载本文可以不经过作者允许:(1) 转载水木清华 BBS 的信头;(2)不修改原文;(3) 转载仅限于各种 BBS 和非商业性质的个人网点。严禁各种形式的抄袭,严禁非作者将 本文或局部用于任何正式出版的刊物。请所有转载文章的网友注意阅读本文的第一段,遵守网络的惯例、尊重作者的劳动。本自然段是全文的一部分。
bluesea@163.net
8 位字符集只能容纳 256 个字符,比如 Latin-1 (ISO 646) 包括了英语、数字、常用标点和常见的一些欧洲字符。但是它们无法很好地承担在世界范围内进行信息交换的重任,因为它们没有足够的空间来容纳其他语言上万的字符。这包括:日语(JIS)、汉语(GB、BIG5)、韩语(KS)、印度语(ISCII)等等。
1993年,ISO 10646 (Universal Character Set,USC-4) 诞生,它使用了 4 个字节的宽度以容纳足够多的相当可观的空间,但是这个过于肥胖的字符标准在当时乃至现在都有其不现实的一面,就是会过分侵占存储空间并影响信息传输的效率。与此同时,Unicode 组织于约 10 年前以 Universal, Unique 和 Uniform 为主旨也开始开发一个16 位字符标准,为避免两种 16 位编码的竞争, 1992 年两家组织开始协商,以期折衷寻找共同点,这就是今天的 UCS-2 (BMP, Basic Multilingual Plane,16bit) 和 Unicode,但它们仍然是不同的方案。详细的信息参见:
http://www.unicode.org/
http://www.digital.com/info/DTJB02/DTJB02SC.TXT
在统一方案中集成不同语种的编码并不容易。GB/BIG5/JIS 原本可能在同样的编码位置是不同的字符,Unicode 对它们的融合和实现必须通过额外的映射表,这就与英语字符的使用产生了很大差距,对于汉语的使用,Unicode 还有很多没有解决的问题,Universal, Unique 和 Uniform 的道路还依然漫长。(相关内容可以参见 http://www.students.uiuc.edu/~c-tsai4/cunicode.html,本人并不全部同意其观点)。
无法统计有多少种情况使得汉字成为乱码。数十种编码以及规范的或不规范的实现形式、不同的 email 客户程序、不同的 SMTP……,Unicode 也不例外。和 Unicode 有关的汉字乱码有两类:一类是由 Unicode 编码的汉字,它可以通过一个码表将 Unicode 转换成 GB 或 BIG5;另一类是转换码产生的乱码,由于 Unicode 编码是 16 位编码,因此它和很多只能使用 US-ASCII 编码的应用程序不兼容,因此产生了对 Unicode 进行各种转换的编码,以满足不同场合的需要。 具体到产生乱码的编码形式,一般有两种,即: UTF-7 和 UTF-8。
我们将先解决这两种转换码的问题,然后再讨论 Unicode 与 GB、BIG5的转换,最后讨论 HTML 汉字编码与欧洲字符表示、Unicode 转换码之间的关系。