3.3. 編碼標準

在電腦開始使用的時候,所有的字都只用 1byte 來儲存, 1byte 包含 8bits,每個 bits 都只能表示 on/off, 也就是 1byte 只能表示 0000 0000 到 1111 1111 的編碼範圍, 只有 256 個編碼空間,這對數萬字的中文而言,是不夠的。

中文字在目前常見的電腦上是由兩個位元組(two bytes) 所編碼組成的。 最常見的編碼方式有台灣地區所通行的 Big5 編碼,及大陸地區所使用的 GB 編碼。而且開頭的位元組幾乎都是大於 128 的數值,也就是所謂 non-ASCII 碼的範圍(ASCII 是指小於 128 的編碼)。

字集(Character Set)是一組符號或文字的組合, 而編碼(Encoding)則是將這一組符號或文字以適當的方式編入位元組中, 以便電腦能夠表示與儲存。 目前現有的字集如中文字集、英文字集、日文字集等, 而中文編碼則是選取部份或全部字集中的部分或全部字, 給予一個號碼,如 Big5 包含部分中文字集、英文字集、部分日文字集等。

接下來就是萬碼奔騰,眾多中文編碼標準的問題, 目前台灣使用的中文編碼存在許多問題,第一是中文編碼有數種 Big5、CCCII、CNS11643、Big5E、Big5+、ISO 10646、CP950、EUC-TW, 每個編碼所包含的中文字數不同,編碼方式也不相同, 而且大部分都沒有國家標準規格, 第二是常用的 Big5 編碼字數不足。

雖然常用的 Big5 已經使用 2bytes 來表示中文字,但是 2bytes = 16bits = 2^16 = 65536 個編碼空間, 以 Big5 的標準而言,為了要和 ASCII 能夠相容,最多只能使用兩萬多字 ([0x80-0xFE][0x40-0x7E,0xA1-0xFE] = 127*190 = 24,130), 現存的中文字最少在七萬以上,造成許多字在 Big5 的系統下, 無法使用。在加上中文標準繁多,卻又沒有最後的國家標準規格, 各家廠商所實做產品也就未必相容。 最明顯的例子就是日文平假片假名, 在這些中文編碼中並不是每個都包含, 當遇到所謂的「Big5日文」時,就會產生許多問題。