標籤:style blog http io ar os 使用 sp on
平常工作時不時地會用到Windows命令列,編譯個小程式或者使用某些命令列程式什麼的,但是中文版Windows的命令列可選的字型只有點陣字型和新宋體,我都不喜歡。在網上搜尋了一下,發現這個問題源自於Windows命令列的字碼頁設定。字碼頁是字元編碼發展過程的產物,本文不再詳述,感興趣的同學可以關注我的專欄《編碼精粹》 。下面我們直接看怎麼解決這個問題,敘述以Windows 7為例,但是應該適合大多數版本的Windows系統。
一、預設情況
預設情況下的效果如下所示:
這個字型稍微用用還行,如果每天都要用的話,我會瘋的,尤其是漢字的效果,讓人不忍直視。
開啟cmd,點擊左上方表徵圖,在彈出的系統功能表中選擇屬性,就會出現如下所示的屬性視窗。可以看到cmd程式的當前字碼頁是936,使用的編碼是GBK。接著切換到字型選項卡,查看可選的字型。
字型列表中只有點陣字型和新宋體,這個問題源於Windows對Console程式的設定,開啟註冊表定位至[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont],就可以看到Windows下Console程式的TrueType字型設定了。
我們可以看到936等幾個字串值每一項都對應一個字碼頁,比如936對應簡體中文,950代表繁體中文等。0和00(000是我後加的)兩項則比較特殊,其實這兩個都是字碼頁437對應的字型。也就是說除了字碼頁437之外,其他的字碼頁只能指定一種可用的字型,否則就要使用點陣字型。
二、解決方案
既然問題的根源已經找到,那麼解決起來也很簡單。如果不使用預設字型以外的字型的話,可以很簡單的將字碼頁切換到437,然後選擇喜歡的字型即可。當然了預設情況下字碼頁437可用的字型也只有Lucida Console和Consolas,Lucida Console的效果就不敢恭維了,Consolas我覺得還挺不錯的。那字碼頁怎麼切換呢?很簡單chcp [codepage]即可。
現在我們再來看一下屬性頁面的可選字型。
可以看到字型列表中有Consolas和Lucida Console了,選擇Consolas看一下效果。
還不錯哈!但是,如果你和我一樣想使用更多的字型,或者對Consolas在命令列程式中的效果不滿意的話,就要考慮一下增加命令列程式可用的字型了。要增加字型其實也很簡單,在註冊表中[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont]項下增加一項名字為000的字串值,並將其值設定為你想要用的字型的名字,如果要增加更多字型只要再增加一項字串值,並將其命名為0000,也就是多加一個0即可。中我增加了一個名為Bitstream Vera Sans Mono的字型,你可以選擇任何你想用的字型,當然了必須是系統中已經有的。
選擇Bitstream Vera Mono,然後看一下效果~
這回順眼不少了哈~
三、兩個注意事項
- 有的同學說在字碼頁437下,中文顯示有問題,這個我沒有遇到過。如果你確實遇到了這樣的問題的話,可以嘗試著先按照前面我說的方法更改或添加字型,然後再將字碼頁切換到936。
- 前面講的方法不僅適用於命令提示字元程式cmd,也適用於PowerShell。
更改Windows命令列字型