Unicode是一個非常好的編碼方式,其中一部份的原因,是因為Big5實在太爛了 XD。Big5的誕生是經過許多妥協的結果,而它最大的缺點就是收錄的字數過少。雖然雙位元組編碼能使用的字數原本就受到限制,但看人家UTF-16除了一些中日韓統一表意文字擴展區(CJK Extension)的字之外,也是只需用到兩個位元組。Big5的字數實在是過少,例如堃、羣、朶、喆、册等一些常碰到的字或異體字皆未編入,在戶役政、日常使用方面都造成了不少困擾。甚至以更嚴重的角度來說,臺灣的正體中文就被限制在這13,052個、取捨不甚良好的字之中,在文學、命名方面都受到了箝制。
因為維基百科對於Unicode在技術面的敘述十分完整,所以在這邊只說一些一般和寫程式會用到的部分。目前還有許多網頁是以Big5編碼格式呈現,但是它們還是可以無礙的插入Unicode字元,例如「堃」(U+5803)便插入「堃」,如此便能在Big5網頁中正常處理Unicode字元。在一般情形中瀏覽器會自動做這個轉換,不過在有安裝Unicode補完計畫時,瀏覽器可能會被誤導輸出補完計畫中對應的雙位元組字元,造成字元無法被沒裝補完計畫的人正常檢視(但可先用補完計畫附的轉換程式處理)。網頁只要使用Unicode格式,便一定不會出現強者許功蓋(見Big5維基百科介紹),遇到正簡體中文、日文、德文等語言,也都可以用設定的編碼方式正常、不需使用&#的方式處理。
不同編碼方式使用的位元組
| 字元 | UTF-8編碼 | UTF-16 (Little-Endian) | |
| ASCII 0~127 (一般英文) | A | 41 | 41 00 |
| 絕大部分的中文 | 囧 | E5 9B A7 | E7 56 |
| 擴展平面A的中文 | 㣻 | E3 A3 BB | FB 38 |
| 擴展平面B的中文 | 𠅮 | F0 A0 85 AE | 40 D8 6E DD |
Unicode字元的編碼交換,最常用的有UTF-16(Big、Little-Endian)、UTF-8兩種方式。兩種編碼方式主要的差別是UTF-16除了擴展平面的字之外,一率用2 bytes處理,而UTF-8會隨字元類型的不同佔用不同的位元組數。UTF-16由於每個字的長度大致固定,適合用於程式的內部處理,也是Windows或程式語言如Java、C#內部的Unicode處理方式。UTF-8的最大好處是一般的ASCII字元只需佔用一個位元組,主要用於資料交換,如網頁、XML資料等。
在Unicode的支援方面,Windows 98、ME基本上可以顯示,不過系統的內碼並不是Unicode。2000、XP在中文方面,預設可以顯示除了擴展平面A、B的中文,安裝Office 2007內附的微軟正黑體或是另外下載教育部標準宋體Unicode版就可以顯示擴展平面A的字元,Office 2007的新注音輸入法也能設定是否顯示擴展平面的字元(可以選但是看不到字)。Vista的話,則全面支援擴展平面A、B的字元(不過用的人短期之內應該還不多)。題外話,關於Office 2007的中文化和Unicode的處理方面,當時我在台灣微軟打工的時候,就是在做這方面的測試工作~。
| |
| BabelMap的字型資料顯示 | Vista中的輸入法畫面,綠色的是擴展平面A、紅色的是擴展平面B的字元 |





