What is Unicode-At-On?

從歷史因素來講 Unicode-At-On 有太多廢話可以說了,又臭又長而且還會讓人看到一頭霧水,因此我在決定採用技術上的方法來解釋就好。

所謂的字元集 (character set)是指一定範圍的字碼和字元對應的關係,正體中文用的是 Big5,簡體中文用的是 GB2312。各個字元集彼此之間的範圍可能會重疊,也有可能不一樣;唯一的交集就是 ASCII 的 0-127 這部分,因為他們對應到電腦世界通用的英文字母大小寫和數字。因為除了 ASCII 範圍外的其他字碼在不同字元集對應到的文字不一定一樣,所以後來有了 Unicode 決定要把所有的字組成一個統一的字元集。

正體中文環境下大多是以 Big5 為預設的字元集,從過去 DOS 時代的各種中文系統到現在的 Windows 系統都是如此。由於過去在 DOS 的中文系統中的 Big5 造字區,當時佔有率最高的倚天中文系統內建了一些中文字、符號,其中包括了日文的假名文字,他們帶給了使用者很大的便利所以廣泛的被用在國內的 bbs 和網頁上面。到了 Windows 時代,由於使用者習慣使用這些文字和符號,但是因為他們不是 Big5 標準裡面的文字 (只是造字) 而沒有被 Win9x 內建在系統字型裡面,於是就有人[註一]把過去倚天中文的造字抄成 Windows 造字檔給大家使用,讓 Win9x 也可以看到和使用這些造字。

微軟在推出 Win2k 時把核心加入對 unicode 的支援,並且也使用了 unicode 來創造它的多國語言共用平台計畫,在系統裡面也建立了許多的對應表來做 unicode 和各種字元集之間的轉換,以便支援非 unicode 的程式。舉例來說,當我們從日文網頁上 copy 上面的內容時,系統會依照對應表把 S-JIS 轉成 unicode 再存到剪貼簿;如果要貼上到 unicode 程式像是 Word XP,系統就直接把 unicode 輸出到 Word;如果是要貼上到非 unicode 程式像是 PCMan,系統會把 unicode 轉成使用者目前的鍵盤配置語系輸出。所以如果貼上的時候你的鍵盤語系不是繁體 (正體) 中文,貼出來的東西就會出問題。

但是在 Win2k/XP 系統中,因為系統以 unicode 為核心,Big5 的造字區正常應該對應到 unicode 的造字區,在前面所提到的轉換過程裡面,日文的假名 unicode 最後沒有對應到 Big5 中,所以全部被當成了 ascii 而變成了 ‘ ‘ 或是 ‘?’ 這類字元。於是,有兩個人[註二]想到利用修改 Win2k/XP 裡面 Big5 和 Unicode 對應表的方式把原本倚天的擴充造字對應到了 unicode 裡面的相對應字碼,於是這個問題就暫時 (部分) 解決了[註三]。後來這兩個人連絡上之後,合併了兩個人的程式共同發行,就成了現在大家所知道的 Unicode-At-On。


[註一] 過去 Win9x 時代很流行的櫻花輸入法以及中國海字集都是利用這種匯入外部造字檔的方式。

[註二]but 是最早推出「Unicode 補完計畫 2.0」的人,他原本的補完計畫除了對應日文假名之外,還利用單向對應的方式將日文特有的漢字轉為對應的繁體中文字,方便使用者 copy/paste。Kii Ali 則是後來「Big5 Extension 2.00」的作者,他當時把 unicode 的日文假名漢字、簡體中文全部對應到 Big5 造字區裡面。後來 KiiAli 把 but 還有做 Mozilla/Firefox 版 patch 的 witchfive 找來 cpatch.org 一起製作新版的補完計畫,就產生了 Unicode-At-On。

[註三] 因為這種「Unicode-At-On」版本的 Big5 包含了很多版本的字在裡面,不是正式的定案字集,也通常不會國際軟體正式支援,所以只能說是暫時的過度方案。一旦這個字集成為新的標準或是 Unicode 一統天下,這個補完套件就是多餘的了。


其他補充:

  1. 關於網頁上的日文顯示:
    曾經有人反應,因為有了這個補完計畫,所以造成網頁上的日文字只有裝了補完計畫的人才看得到,因此說要抵制這個產品,這其實這是他個人的誤解。過去在櫻花輸入法、中國海字集的時代,沒有裝這些套件的人一樣看不到這些使用者所輸入的造字字體阿!這其實是同樣的問題,裝了補完計畫也是讓 Big5 多出了這些假名等字體符號,對於沒裝補完套件的人來說這些都是造字,當然看不到。

    網頁字體的問題解決方法就是那麼兩個,一是改用 UTF-8 (Unicode 的一種儲存方式),二是轉換為 HTML 專用的16進位表示法 (&#abcde;)。

  2. 改檔名程式的作用:
    因為 Win2k/XP 的檔名是以 unicode 儲存的,所以過去如果有使用櫻花輸入法等造字儲存檔名的話,要利用改檔名程式把 unicode 的造字碼改回到 UAO 對應的字碼,才會正常顯示。
  3. Apploc 的作用和問題:
    Microsoft AppLocale 是為了讓非 unicode 程式能在 WinXP/2k3 (不支援 Win2k) 上能夠正常顯示的 frontend (前導程式),它的作用像是把選單等程式的介面依照指定的 charset 轉為 unicode,有點像是過去 Win9x 時代的「南極星」,不過程式可以顯示不代表就可以正確執行就是了。另外,網路上也有不少使用者說這個程式有 bug 會把 Windows Installer 搞爛,也有人提出了解法,可以自己參考看看。
  4. 檔案無法解壓縮、遊戲無法安裝:
    很多壓縮檔格式都不支援 unicode 字元,檔名如果有使用在 Big5 底下會出現不合法檔名的字元 (通常是日文檔名比較容易發生) 就會沒辦法正常解壓縮。可以試著用 apploc 切換到該語系執行解壓縮軟體來開啟該壓縮檔,如果可以正常顯示檔名的話通常就可以正確解壓縮出來。如果這個方法沒有用的話,那就只能乖乖的切換系統 default charset 了。

    此外,有些遊戲無法使用 apploc 安裝,也有可能是因為安裝程式的壓縮檔有上述情形發生,以致於解壓縮出問題,這時候只有乖乖切換 default charset 沒有偷懶的方法。

    還有一種可能是中文目錄名稱讓遊戲軟體在產生捷徑的時候出了問題,如果是「開始」、「桌面」的問題的話可以試試看把目錄名稱改成英文 (ex.”Start Menu”),使用者名稱只能開一個新的英文名稱使用者來解決。

  5. 關於 PieTTY
    PieTTY 是網友 piaip 修改 PuTTY 做出來的東西,除了簡化介面之外還加入了對中文顯示的修正。此外還有一個特殊的功能,就是這支程式可以把 Big5 造字轉為 Unicode 顯示,也就是說如果你用這支程式來連 bbs 的話你可以在不需要安裝 Unicode-At-On 的情況下看到日文假名並且正常地複製貼上。詳細說明可以參考作者的 FAQ 網頁。

延伸閱讀:

2 Comments »

  1. pe said

    請問一下關於補充3
    windows installer的問題
    請問一下要怎麼修正這個問題呢?
    因為我受到這個問題所苦已經很久了
    網路上也找不太到
    不知道你有沒有修正方式可以和小弟分享~~m(_ _)m

  2. [...] 15, 2008 by Maverick 我一直覺得我前面那篇寫得失敗,原理講了很多,但是不夠淺顯易懂。用最簡單的話來說,UAO [...]

RSS feed for comments on this post · TrackBack URI

Leave a Comment