|
|

楼主 |
发表于 2007-1-29 13:05:38
|
显示全部楼层
Post by ericyosho
真是这样么?我怎么感觉,utf8是一种暂时性的编码方式,可以说是以前的编码到unicode的过渡吧。
因为unicode是两个字节才表示一个字符,对于英语国家来说,利用率就下降了一半,因为原来的ascii码都是一个字节表示一个字符。而且英语国家不需要其他一些扩展的字符集,所以就使用了utf8这种折中的办法。当使用ascii原有的字符时,仍然用一个字节表示,使用扩展字符集时才用两个或两个以上字节表示。
我说的 “将来”也是一个时间段而已啦,呵呵,或许50年,或许100年。
不过,关于utf8,并不只是提高利用率,好像,还有是因为UCS2的方式不适合传输,因为里面的有些字符编码在unix等系统当中,会被当做特别的用处,好像如果用UCS2的编码的话,如果不对unix等系统进行大的修改的话,无法使用,字符编码会被“截断”。utf是一种传输方式,UCS是一种字符编码方式,我看资料应该还是有区别的。
+++++++++++++++++
在 Unix 下使用 UCS-2 (或 UCS-4) 会导致非常严重的问题. 用这些编码的字符串会包含一些特殊的字符, 比如 '\0' 或 '/', 它们在 文件名和其他 C 库函数参数里都有特别的含义. 另外, 大多数使用 ASCII 文件的 UNIX 下的工具, 如果不进行重大修改是无法读取 16 位的字符的. 基于这些原因, 在文件名, 文本文件, 环境变量等地方, UCS-2 不适合作为 Unicode 的外部编码. ++++++++++++++++++
+++++++++++++++++
最终, Unicode 将取代所有这些编码, 主要通过 UTF-8 的形式. UTF-8 将应用在
文本文件 (源代码, HTML 文件, email 消息, 等等)
文件名
标准输入与标准输出, 管道
环境变量
剪切与粘贴选择缓冲区
++++++++++++++++++ |
|