notebook_unicode.png  

Unicode補完計畫」應該很多人聽過,網路上每次有人問說哪裡日文看不到,總是會有人不負責的丟下一句「裝Unicode補完計畫」就沒了......大多數的人根本不瞭解也不想了解它反正我裝了全部的日文就都看的到了。不過身為網路好公民的你,我想是有義務了解的。除了現在正在看這篇文章的你與你的家人,不想了解又亂用的人都會有報應的啦(╯ ̄皿 ̄)╯╧╧ (這句話好像在哪聽過...)

Unicode補完計畫的使用不當,會造成未安裝Unicode補完計畫者看不到你發出的日文!

假如你用的是繁體中文,電腦使用上又常常會要用到日文的,最重要的是,你根本就有安裝「Unicode補完計畫」的人,拜託進來看看。只想知道解決方法而不想看原因的,請參考下篇:
Unicode補完計畫請小心使用(下)-解決方案

總之,無論如何還是要需要安裝的人:拜託了!請小心使用!!!


這些莫名其妙的問題是從哪來的呢?

 Big5從頭說起
早在二十幾年前,big5這種繁體中文字的編碼就誕生了。不過隨著電腦普及,資料交換增加,big5的缺點也開始暴露出來。首先,big5收錄的字數不足,維基百科上的例子是游錫堃的「堃」和王建煊的「煊」,經常會把打成「方方土」、「火宣」。而冨樫義博的「樫」也常被誤用為堅...不過最麻煩的還是今天的重點:根本沒收錄日文假名。

為了在big5環境能使用日文,於是有了中國海字集,也就是有名的櫻花輸入法所採用的字集(其實最早是倚天的字集啦...不過那是年代物了,而且中國海包含倚天)。這個字集利用big5的造字區幫big5加了不少字,包括一些常用字還有符號、日文假名、日文漢字、俄文符號...等。雖然當時政府單位也有意為big5的不足作延伸,不過弄出來的東西都很雞肋,加上中國海字集又曾經和微軟的office一起販售(就是說office支援中國海字集),所以很受歡迎。在那個Windows 95/98的年代,想看日文大家就會叫你去灌櫻花輸入法。

 事情是怎麼發生的?
微軟使用的big5編碼包叫做Code Page 950,和最古早80年代制定的big5相比只多出了7個倚天擴充字:碁、銹、恒、裏、墻、粧、嫺和34個製表符號,以及歐元符號€。雖然使用者和微軟敲碗說要日文假名很久了,不過微軟從Windows 3.1以來始終如一,直到Vista,甚至Windows 7,還是繼續用他的Code Page 950。

所以...到現在我們還是沒辦法安裝系統後就能看到big5編碼的日文,而罪魁禍首就是微軟啦!為什麼不把能支援日文的big5字集包進去呢? 或許微軟一開始可以說中國海字集之類的不是官方標準,所以不想包(微軟你什麼時候這麼注重標準啦= =),但是中推會制定的big5-2003,這個包含假名、簡字、俄文的big-5早就被行政院列為官方標準了,Vista還是不甩,造成使用者不便,這就是你的問題了!

 那Unicode又是什麼?
由於各種語言都有自己的編碼(統稱ANSI),假如要在同個頁面顯示不同語言的文字,不但要安裝該種文字的編碼包,還要轉換來轉換去,容易出錯又很麻煩,所以就出現了所有語言文字通吃的編碼--Unicode,中文稱為萬國碼。因應標準以及趨勢,微軟Windows的NT架構作業系統(即2000/XP/Vista等)皆以Unicode為核心,隨系統附的IME輸入法也開始支援Unicode,現在我們想看別種文字終於可以不用那麼麻煩了!但也僅限於新產出的資訊...古早時期的資訊仍然是以各種語言各自為政的ANSI編碼,因此作業系統必須能扮演各國ANSI和Unicode之間轉換的角色



 Unicode補完計畫(Unicode-At-Once, UAO)
因為微軟本身不支援包含日文的big5(big5+、big5-2003、中國海等),以及其與Unicode之間的轉換,但是從big5日文出現以來產生的大量資訊,仍然流通於網路上,不容忽視。為此有人做出了解決方案,就是Unicode補完計畫,舊稱Big5-Extension。它和中國海、櫻花輸入法之類的擴充字集不同,Unicode補完計畫本身並不是擴充字集,它只是修改了一些字碼的對應關係:

pic2.gif

原本,沒安裝補完計畫時,當你在Unicode的環境(XP, etc.)要顯示一個big5假名,因為系統裡沒這些倚天造出來的big5日文字(微軟的「標準」big5不含假名),所以什麼也看不到,通常是空格。

pic3.gif

安裝Unicode補完計畫後,系統會幫你把這些字對應到該字的Unicode字碼上,而Unicode什麼字都有,當然也包含假名,所以你就可以透過Unicode看到big5假名了。

 這樣很好阿!哪裡有問題?
先看看這張圖,補完計畫完整的對應是長這樣

pic6.gif

before那邊,造字區的對應剛剛說過了,而Unicode的あ沒有對應,是因為不用對應,各位的Windows 2000/XP/Vista本來就都看得到Unicode,不需要轉成big5,Unicode的あ直接顯示あ就好了。after那張,「Unicode造字區→Big5造字區→Unicode」這個對應剛剛也說了,沒什麼問題,問題在於「Unicode→Big5」造字區這個箭頭! 也就是說各位生出來的Unicode日文假名,可以對應回Big5造字區! 這有什麼好處呢?

有很多歐美大廠製造出來的程式不支援Unicode,也就是說你把這些程式看Unicode編碼的文字(包括日文)會變成一堆????。在ANSI (big5)環境下,灌了Unicode補完計畫的系統會幫你把新輸入的Unicode字元轉成Big5,再以好讓這些程式(例如:Windows 95/98)能正確使用日文。

 所以到底問題是出在哪?--重點來了!!
以網頁為例:在未安裝Unicode補完計畫的系統中,在以Big5編碼的網頁輸入字元,儲存時會被轉成Big5,若是無法轉成Big5(就是說Big5沒這個字的話),瀏覽器會將該字元轉為另一種暫時性的代碼(&#xxxxx),好讓整個網頁看起來像是Big5編碼(其實夾雜等待轉換的Unicode)。但若是裝了Unicode補完計畫,因為在Unicode和Big5造字區之間做了雙向對應,當你輸入Unicode日文,儲存時卻可以轉換成Big5,於是你打出來的Unicode日文就被轉換成Big5日文儲存了!

結果就是製造出來的這些,你以為是Unicode,但其實是Big5的日文沒裝Unicode補完計畫的人,根本看不到!(也就是上一段說的「Before」)。而且根據相同的道理,不僅日文,只要是原本Big5沒有,但是Unicode補完計畫有的字,打出來別人都是看不到的。這樣不就又和櫻花輸入法一樣了~套一句為基百科的話:『於是這反而與「Unicode補完計畫」的創立宗旨背道而馳:原先避免以外字集解決缺字的「Unicode補完計畫」,反而變成了另一套外字集。』。很多人就這麼不小心地又製造出一堆討人厭的Big5日文,別人看不到你打的字是要怎麼交流~



因為本篇達字數上限了,所以切成兩篇,解決方法請看下篇吧。原本的網址是給下篇用,相關連結、參考資料以及原本的回覆也都放到下篇。

Unicode補完計畫請小心使用(下)-解決方案
 

arrow
arrow
    全站熱搜

    showian 發表在 痞客邦 留言(4) 人氣()