更改Windows命令行字體


平常工作時不時地會用到Windows命令行,編譯個小程序或者使用某些命令行程序什么的,但是中文版Windows的命令行可選的字體只有點陣字體和新宋體,我都不喜歡。在網上搜索了一下,發現這個問題源自於Windows命令行的代碼頁設置。代碼頁是字符編碼發展過程的產物,本文不再詳述,感興趣的同學可以關注我的專欄《編碼精粹》 。下面我們直接看怎么解決這個問題,敘述以Windows 7為例,但是應該適合大多數版本的Windows系統。

一、默認情況

默認情況下的效果如下所示:

這個字體稍微用用還行,如果每天都要用的話,我會瘋的,尤其是漢字的效果,讓人不忍直視。

打開cmd,點擊左上角圖標,在彈出的系統菜單中選擇屬性,就會出現如下所示的屬性窗口。可以看到cmd程序的當前代碼頁是936,使用的編碼是GBK。接着切換到字體選項卡,查看可選的字體。

cmd屬性窗口

字體列表中只有點陣字體和新宋體,這個問題源於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,然后看一下效果~

這回順眼不少了哈~

三、兩個注意事項

  1. 有的同學說在代碼頁437下,中文顯示有問題,這個我沒有遇到過。如果你確實遇到了這樣的問題的話,可以嘗試着先按照前面我說的方法更改或添加字體,然后再將代碼頁切換到936。
  2. 前面講的方法不僅適用於命令提示符程序cmd,也適用於PowerShell。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM