作者reptile ()
看板EZsoft
标题Re: [心得] Unicode 补完计画 (UAO)
时间Fri Nov 2 22:44:40 2007
※ 引述《mstar (Wayne Su)》之铭言:
: 在中文模式下,只要发现这两个字元组合在一起,系统就会将之转成「特」字
: 就因这原理,故常有一些英文软体画面的框线在中文模式下变成乱码
: (eg. C4C4C4C4「────」 会变成「阐阐」)
当年,因为英文软体很多
而且很多都会用到框线,所以倚天中文为了避开这个问题
另外搞了一套倚天码出来
: BIG5
: 当时 BIG5 编码是非常急就章而推出的,选字根本就是依据教育部的常用字标准,
: 所以很多字都没被选入 (eg.堃、煊、喆) 但之後 BIG5 变成主流,大家只好将就着用
: (政府户政、图书管理等系统用不同的编码,所以字数多很多)
BIG5 的收字,主要是收教育部的常用及次常用字标准
图书管理系统,主要是用 CCCII (这编码是国际通用的,其实甚至是美国先用的)
: Unicode
: 後来有一群人/公司开始发展 unicode,也就是将世界上主要的文字统一成一种编码
: 只要电脑支援这编码、有相对应的字型,就可以看到所有文字
: http://zh.wikipedia.org/wiki/Unicode
当时本来要推的是 ISO 10646
ISO 10646 是用字面的概念来处理不同语系
所以当一行文字出现多种语言的时候,就会花费大量的讯息在切换字面上
所以最後大家乾脆全部平等
统一用 Unicode (所以有人把 Unicode 翻成统一码)
Unicode 是编一个 16bit 的码,也就是说可容纳 65536 字
再也没有字面的问题了 (因为它等於只有一个字面)
後遗症就是,Unicode 无法相容於当时的 ASCII 环境
当然还有另一个问题就是,光是汉字的部份粗估就有七万字以上
所以,16bit Unicode 光是汉字就塞不下
不过,当时的人没想那麽多,只想求一个勉强可以运用的统一码
所以,汉字的收字,以有出现在 BIG5、GB、SJIS 为主
: unicode 编码方式和 BIG、GB、SJIS 等传统编码 (称为 DBCS) 有点不一样,
: 以目前最常用的 UTF8来说,它按照文字的属性分为用单一 byte 组成的、用
: 两 byte 组成的...到用四 byte 组成的,普通的中文字多是二、三 byte 组成
: http://zh.wikipedia.org/wiki/UTF-8
因为 Unicode 要 16bit,ASCII 却只要 8bit
一方面来说,用 ASCII 为主的软体,一换用 Unicode 就要多一倍的储存空间
另一方面是,Unicode 无法相容於 ASCII 环境,光程式就要改到死....
所以就另外搞一个 UTF8 出来,不同范围的 Unicode 字眼
编成 1 ~ 4 个 bytes,不用说 0-127 就是保留给 ASCII 的
: 有人认为中文、日文、韩文、越南文中很多汉字其实都一样或是差不多,
: 所以推动 CJKV,以将编入 unicode 中的汉字缩减
: http://zh.wikipedia.org/wiki/CJKV
因为编这个标准的是外国人
所以他们会认为都是一样的,就开始东并西并
不过,也不能说他们很混
据说他们在编码的时候,还特地来台湾学中文
: 万恶的渊薮、一切问题的起源:微软
: 时代继续发展,万恶的微软推出 Windows,将正体中文编为 codepage 950
: 但是,没把前述造字区中的日文、俄文字母以及某些符号收进去!
: 之後一直到 Win2003,除了新增了欧元符号以外,还是没日文字
香港比我们积极很多,日文假名及一些符号并没有出现在 BIG5 里
广东话中也有很多字没被收到 BIG5 里 (废话,BIG5 是台湾人用的)
所以,香港後来有搞一个香港增补字符集,Windows 也有采用
(可以想像一下,等於是 Microsoft 内建了 UAO)
不过,香港增补字符集,问题也蛮多的......
忘了补充,因为 Unicode 只有 16bit
汉字又远多於这个数,所以後来才又搞出 Ext A & Ext B
--
以上,是印象所及的一些补充
十几年前,我对这块蛮有兴趣的,收集了不少资料
现在这些资料也不知道丢到哪去了......
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 122.126.79.120
※ 编辑: reptile 来自: 122.126.79.120 (11/02 22:49)
1F:推 cole945:unicode只是个"表"实际怎麽编是utf7/8/16le/16be/32等~ 11/02 23:10
2F:→ cole945:并不是unicode是16bit @.@ 11/02 23:11
3F:推 reptile:没人说表不能是码吧?况且,一开始Unicode这个表的确是16bit 11/02 23:21
4F:推 alicekey:好像问题都出在中文字太多...还有别的文字也这麽多的吗? 11/03 00:40
5F:推 seansylin:unicode的表一开始是2^16没错,但改版後一直在增大 11/03 00:49
6F:→ seansylin:表有多少字不是重点,编码方式才是造成文中论述的主因 11/03 00:51
7F:→ seansylin:,所谓不相容ascii是指像utf-16之类的"编码",utf-8没 11/03 00:52
8F:→ seansylin:有问题,而不同编码各有其目的和优劣,并非utf-8最好 11/03 00:53
9F:→ seansylin:不过反正都是unicode编码则彼此转换是没有任何障碍的 11/03 00:54