|
编码的混乱,是历史造成的。当初电脑只能处理英文,用 0~127 的 ASCII 字符。后来,各国都需要本地化,就出现了利用 128~255 之间的字符进行本地化的问题。先是欧洲国家的本地化,采用单字节字符集 0~255 。不同国家对 0~127 之间的 ASCII 字符的解释都是一样的,差别在于对 128~255 之间的扩展字符有着各不相同的解释。以上方案,似乎叫做 multi-lingual support(多国语言支持)。
然而,到了亚洲,情况发生了根本的变化。字符个数十分庞大,远远超过 256 个,不能用单字节来表示。各国都推出了自己的本地化方案,中国制定了国家标准 GB2312,日本,韩国等都是类似,也制定了他们的标准。亚洲各种字符集标准互不兼容,就像欧洲的各种 multi-lingual 方案互不兼容一样。
统一码是后来才出现的。然而,在统一码出现之前,各国(各地区)本地化已经成了气候,不能简单删除掉本地化的规范。这样,就需要共存。共存就涉及到字符集的转码。
字符集转码的问题很多。未来的软件,可能都会向着统一码靠拢。Linux 就基本上都是采用统一码了,将来会逐步淘汰掉其他各种乱七八糟的字符集编码格式。如果能够消除转码,电脑的世界将轻松很多。
微软的 notepad 会产生 BOM。然而,带有 BOM 的 boot.ini 就会出问题。所以,就连微软都不是全面支持 BOM。其他不支持 BOM 的软件就更不能算是什么事了。
最根本之道,是消除转码,都采用统一码。也许一百年不行,那就 200 年,300 年…… |
|