1. 問題描述
由於Windows中文系統中,命令提示符默認的編碼是 "簡體中文 GBK",代碼頁編號為936。
而開發常用的編碼為UTF8,要操作的時候就得手動切換編碼 chcp 65001
此時才能保證提示和輸入不會亂碼。
但是這只是權宜之計,重啟命令提示符后又會變成默認的GBK,需要有一個辦法默認讓命令提示符變成 UTF8編碼。
很多帖子都說改注冊表里的一個項就可以:
HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe
修改"CodePage"=dword:0000FDE9
博主是直接安裝的Windows10 1903 專業版,注冊表內沒有這個項,應該是微軟取消了這個項。
因為微軟也想用性能給好,功能更強大的Power Shell替代命令提示符,所以在以后的版本會逐步替代掉命令提示符。但是博主用習慣了命令提示符,雖然也體驗到了Power Shell的強大,還是用習慣了命令提示符,所以決心要改一下。
2. 解決思路
既然系統軟件都是基於注冊表保存的配置,那么命令提示符的配置也一定是基於注冊表的。直接修改十六進制值是很麻煩的,所以不如從別處入手。可以在命令提示符中手動切換編碼,難道不可以在注冊表里,讓命令提示符啟動的時候自動修改命令提示符的編碼么?
3. 解決問題
(1) 按 "win" + "r" 打開 "運行" ,輸入 regedit 后點擊確定,打開了 注冊表編輯器。
(2) 按照目錄進入 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor 目錄。
(3) 在右邊空白處右鍵,選擇"新建"-"字符串值"。
數值名稱:autorun
數值數據:chcp 936
(4) 重新開啟命令提示符,會直接顯示 Active code page: 65001 說明已經自動修改為utf8編碼了。
(5) 為了適應部分程序可能是使用GBK編碼,我們需要一個簡單的辦法一鍵修改默認編碼。新建一個 .bat 批處理文件,在里面寫入字符串。
@reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor" /v "autorun" /t REG_SZ /d "chcp 代碼頁編號" /f
修改里面的漢字部分為其他編號,保存后用管理員身份運行就可以修改了。
4. 其他資料
(1) 主流代碼頁編號如下。
chcp 437 英文
chcp 932 日文
chcp 936 簡體中文
chcp 950 繁體中文
chcp 65001 UTF-8