Big5-HKSCS編碼初探(上)

身為中文編碼解析工具的開發者,一直以為自己"略懂"中文編碼,這兩天再度見證"學海無涯",默默收回"略懂"二字...

從以下畫面說起:

五種瀏覽器(IE, Opera, Chrome, Firefox, Safari)一次排開檢視同一個網頁,IE10再度成為瀏覽器家族的黑羊,只有它無法顯示"滙"及"衞"兩個中文字。

開啟notepad++看看hkscs-test.htm有何奧妙之處?

值得注意的地方有三處:

1) charset=Big5-HKSCS 
2) 檔案為ANSI編碼 
3) notepad++跟IE一樣,無法解析ANSI編碼的"滙"跟"衞"

回頭檢視瀏覽器網頁編碼狀態,很快找出IE無法正確顯示的原因。IE將網頁識別為BIG5編碼,其餘瀏覽器則正確地依網頁宣告採用Big5-HKSCS。

由此推論,IE問題出在未正確採用Big5-HKSCS解析網頁。若將網頁宣告改為chartset=big5,則其他瀏覽器也會出現異常,且出現的亂碼不同。

關鍵在於Big5-HKSCS,過去摸過Big5、GB2312、UTF-8、UCS,就是沒跟它交手過。查了資料後才正式認識它,Big5-HKSCS的正式名稱是香港增補字符集(Hong Kong Supplementary Character Set,簡稱HKSCS)是香港政府基於繁體中文電腦操作環境中最流行的大五碼(Big-5)之上擴展的字符集標準,是現時香港的中文資訊交換內碼標準。

用中文編碼解析工具檢查,可查出"滙"的Big5-HKSCS編碼是FA C0,"衞"則是8F C0。

找到一個日本網站提供Big5與Big5-HKSCS完整對照表,驗證這兩個字碼就是Big5-HKSCS中的"滙"及"衛"無誤,而其在Big5無對應字元。

開啟Windows 7 VM做測試,若將System Locale設成Chinese (Traditional, Hong Kong, S.A.R.),notepad++及Notepad便能正確顯示HKSCS字集的額外文字,但IE11仍不行。網站上的討論傾向IE只認得標準Big5,不支援Big5-HKSCS(但我沒能找到官方文件證實),如真要看charset=Big5-HKSCS的網頁,請改用其他瀏覽器。

心得: 開啟Big5-HKSCS網頁請使用非IE瀏覽器,如果你是網頁開發人員,請回歸Unicode,使用UTF-8編碼才是王道!

歡迎推文分享:
Published 27 February 2014 10:18 PM 由 Jeffrey
Filed under:
Views: 9,790



意見

# Sam said on 24 March, 2014 06:28 AM

我也預到類似問題 , 最後更新了 IE9 Security Update 後可以看到那些香港字了:

support.microsoft.com/.../zh-tw

# Jeffrey said on 24 March, 2014 10:47 PM

to Sam, 謝謝補充,已筆記。

你的看法呢?

(必要的) 
(必要的) 
(選擇性的)
(必要的) 
(提醒: 因快取機制,您的留言幾分鐘後才會顯示在網站,請耐心稍候)

5 + 3 =

搜尋

Go

<February 2014>
SunMonTueWedThuFriSat
2627282930311
2345678
9101112131415
16171819202122
2324252627281
2345678
 
RSS
創用 CC 授權條款
【廣告】
twMVC

Tags 分類檢視
關於作者

一個醉心技術又酷愛分享的Coding魔人,十年的IT職場生涯,寫過系統、管過專案, 也帶過團隊,最後還是無怨無悔地選擇了技術鑽研這條路,近年來則以做一個"有為的中年人"自許。

文章典藏
其他功能

這個部落格


Syndication