hemiola 寫:
換個角度想吧。以
http://www.google.co.jp/ 為例,網頁只有指明編碼是 utf-8,沒有指明語系是日文,那 firefox 如何知道網頁內容是「日文」然後使用內定「日文編碼網頁的字體」來顯示網頁。
到底 firefox 如何在 utf-8 內運作,詳情我也不知道。我只是要陳述,我的電腦裏確實是用 細明體 來顯示 utf-8 編碼的日文網頁。
附議hemiola的觀察,這也是我一開始用Firefox的時候為什麼那麼需要一個能設定多種字型的方法:當我們用選項對話盒中設定字型的GUI去設定的時候,由於每種編碼的每種generic font-family就是只能設一種,所以我勢必只能用「細明體」、「新細明體」、「華康仿宋體W4」等等單一的字型來顯示繁體中文,如果只有這樣設定的話,看Google Taiwan不論如何英文和數字都是用這些中文字型顯示,從而變得很醜;偏偏我們如果想「好吧,那設個英文字型」,這樣一來英文是漂亮了,可是中文就只會抓預設的細明體了。
所以怎麼辦。所以後來有強者訪客提供在about:config裡面直接設定的方法,我就再也沒有用內建的GUI了,改字型都是這樣來的。
所以以我設定的為例,這是我的font.name.serif.zh-TW:
代碼:
Calisto MT, Georgia, 華康仿宋體W6, 華康細圓體, DFWeiBeiW7-GB, DFKaiW5-A, DFSong-GB
前兩個是英文字型,Georgia是給沒有Calisto MT的電腦用的,因為我是用一套設定帶著跑;然後是主要的繁中字型:「華康仿宋體W6/華康細圓體」,然後為什麼後面還有?因為有的Big5網頁會出現簡體字和日文字嗎?其實那還好,最主要是因為,
UTF-8的網頁是會抓zh-TW的字型顯示簡體字和日文的!!!我舉些例子:這是我的font.name.sans-serif.zh-TW:
代碼:
Trebuchet MS, 全真圓新書, 華康正顏楷體W5, 華康仿宋體W4, DFWeiBeiW7-GB, DFKaiW5-A, DFSong-GB
現在無法貼圖,但如果我看http://www.google.co.jp/的話,只要是繁中也有的字元,就會用華康正顏楷體W5顯示,而英文的部份是Trebuchet MS,反而只有日體漢字才用別的字型顯示(我猜是DFKaiW5-A的,因為它是一個Unicode字型)。而我的font.name.sans-serif.ja:
代碼:
Eras Bd BT, DFGOYoJun-W5
裡面壓根兒就沒有華康正顏楷!也就是說,明明是UTF-8,內容也是日本的東西,但我的電腦上顯示的就是用zh-TW的字型。那我設的font.name.sans-serif.ja什麼時候有用呢?看日文編碼的網頁就行了,比方說
piro大精美的討論區(也是回頭會貼圖)。
以上是UTF-8運作的一個結果,但也有別的結果,比如
中文維基百科吧,我用font.name.sans-serif.zh-TW怎麼設都不行,後來才知道,遇到它的時候Firefox會抓zh-CN的設定!(我的font.name.sans-serif.zh-CN:
代碼:
Trebuchet MS, DFWeiBeiW7-GB, 華康魏碑體, DFKaiW5-A, DFKMincho-Bd
看圖就知道了,同樣地,我得到zh-CN的設定中,除了給簡體中文用的DFWeiBeiW7-GB之外(因為是簡體中文,所以以它優先),再以華康魏碑體來補充會用到繁體中文的部份,還有DFKMincho-Bd是用來讓韓文字元比較好看。看,很扯吧,如果今天zh-CN只是為了顯示GB2312或GB18030的網頁,那根本與繁體中文和韓文字型無關才對,但就是為了讓UTF-8網頁中可能同時顯示各種文字,而Firefox又會去分別抓zh-TW或zh-CN的時候,所以才要到不同的語言編碼中去設定這麼多字型!
話說從頭,這是我一開始反覆摸索,解決了Big5網頁,卻在UTF-8踢到鐵板,發現設x-unicode那邊怎麼樣都沒有用以後的發現。那時才知道,即使網頁編碼是UTF-8,Firefox卻會抓不同編碼字型來顯示(一個明顯的例子:我看英文、日文、韓文、中文維基百科的時候,顯示的字型設定都不一樣!而它們都是UTF-8編碼的。)
我的猜測是,在charset為UTF-8的網頁中,如果有指定主要的xml:lang的話,也許就會自動去抓不同語言的字型?而這我覺得也沒什麼不好的啊,就算是UTF-8編碼,每個網頁還是會有不同的語言內容吧,所以假設我是使用繁體中文來寫一個網頁,我也比較會希望瀏覽者用的是適合繁體中文的字型設定來顯示這個網頁,所以派Firefox去抓zh-TW也頗合理的;抓x-unicode的話,就每種語言的網頁看來都一樣了,而且使用者未必能把x-unicode設定到面面俱到,所以還不如靠zh-TW啦、zh-CN啦、ko啦、ja啦、x-western啦這些來共同支持。【補充:剛剛去看piro的討論區原始碼,他的確有設xml:lang為ja,而中文維基的xml:lang設為zh。至於Google Japan就沒有設lang了。可為佐證。】
以上是我的心得,還有順便分享給大家我設定字型的方式。這是Firefox複雜麻煩一點的地方,但如果搞清楚的話,它就可以服服貼貼了:)
(暫時無法上傳檔案了,不知是什麼原因?)