上一篇說了 Silverlight 中的中文字型,現在來說說 Windows 中的中文字型。
在預設情況下,也就是未自行安裝新字型或者 Office 等文文書處理軟體的情況下,Windows 預設提供下列字型:
Windows 95/98/98SE 宋體、黑體、楷體_GB2312、仿宋_GB2312
Windows XP/2000/2003/ME/NT 宋體/新宋體、黑體、楷體_GB2312、仿宋_GB2312 (Windows XP SP3 宋體-PUA)
Windows Vista/7/2008 宋體/新宋體、黑體、楷體、仿宋、微軟雅黑、SimSun-ExtB
那麼每種字型能顯示那些漢字呢?
Vista 之前的 Windows 中宋體/新宋體、黑體支援 GBK 1.0 字元集,
楷體_GB2312、仿宋_GB2312 支援 GB2312-80 字元集。
(註:Windows 3.X 只能支援 GB2312-80 字元集)
Vista 及之後的 Windows 中宋體/新宋體、黑體、楷體、仿宋、微軟雅黑支援 GB18030-2000 字元集,
SimSun-ExtB 只支援 GB18030-2005 字元集擴充 B 部分。
下面對字元集進行簡單的介紹:
GB2312-80 < GBK 1.0 < GB18030-2000 < GB18030-2005
GB2312-80 中的字元數量最少,GB18030-2005 字元數量最多。
GB2312-80 是最早的版本,字元數比較少;
GBK 1.0 中的漢字大致與 Unicode 1.1 中的漢字數量相同;
GB18030-2000 中的漢字大致與 Unicode 3.0 中的漢字數量相同,主要增加了擴充 A 部分;
GB18030-2005 中的漢字大致與 Unicode 4.1 中的漢字數量相同,主要增加了擴充 B 部分;
由於 Unicode 5.2 的發布,估計 GB18030 會在近期發布新版本,增加擴充 C 部分。
需要說明的是在 GB18030 中擴充 B 部分並不是強制標準。
如果想查看 GB18030 的標準文本,請訪問 http://www.gb168.cn 中的強標閱讀。
如果想瞭解 Unicode 的內容,請訪問 http://www.unicode.org。
現在糾正網上普遍的一個錯誤:
GB18030-2000 和 GB18030-2005 都不支援單位元組的歐元符號 € (0x80),只有 GBK 1.0 支援,從標準原文可以得知。
測試代碼
//GBK 的字碼頁為 936 (預設)
string euro1 = Encoding.GetEncoding(936).GetString(new byte[] { 0x80 });
//GB18030 的字碼頁為 54936
//euro2 會顯示為 ?
string euro2 = Encoding.GetEncoding(54936).GetString(new byte[] { 0x80 });
與簡體中文有關的代嗎頁如下:
936 gb2312 簡體中文(GB2312)----其實是GBK
10008 x-mac-chinesesimp 簡體中文(Mac)
20936 x-cp20936 簡體中文(GB2312-80)
50227 x-cp50227 簡體中文(ISO-2022)
51936 EUC-CN 簡體中文(EUC)
52936 hz-gb-2312 簡體中文(HZ)
54936 GB18030 簡體中文(GB18030)
這是我的 Unicode 測試網址,你的系統能顯示那些?
http://www.hongcing.com/tool/unicode(進入串連後,可以點擊下載,上午可能無法訪問,下午、晚上正常訪問)
補充:剛才想到了,但是忘了寫了。
使用楷體_GB2312、仿宋_GB2312後,在 Windows 7/Vista/2008 中可能不再顯示為對應的字型。
這是因為 Windows 7/Vista/2008 中有楷體、仿宋,預設情況下沒有楷體_GB2312、仿宋_GB2312,字型名稱相差“_GB2312”。