Windows控制臺(CMD/PowerShell)中文亂碼問題的解決方法
問題
在控制臺啟動一個bat腳本,腳本中有中文,打開一看全是亂碼:

解決方法
要永久解決 Windows 控制臺(CMD/PowerShell)的中文亂碼問題,并統(tǒng)一使用 UTF-8 編碼,可以按照以下步驟操作。這些方法適用于 Windows 10/11 系統(tǒng)。
方法一:通過系統(tǒng)區(qū)域設置啟用 UTF-8 支持(全局生效)(已測試可行,注意有些軟件可能不兼容導致亂碼,比如MobaXTerm的目錄!)
1. 打開系統(tǒng)區(qū)域設置:
- 右鍵點擊“此電腦” → 選擇“屬性” → 點擊“高級系統(tǒng)設置” → 在“高級”選項卡下點擊“區(qū)域” → 點擊“更改系統(tǒng)區(qū)域設置”。
- 或者直接通過控制面板:
控制面板 → 時鐘和區(qū)域 → 區(qū)域 → 管理 → 更改系統(tǒng)區(qū)域設置。

2. 啟用 UTF-8 支持:
- 在彈出的窗口中,勾選 “Beta 版:使用 Unicode UTF-8 提供全球語言支持”。
- 點擊“確定”,系統(tǒng)會提示你重啟電腦以使更改生效。

3. 重啟電腦:
- 重啟后,系統(tǒng)的默認編碼會變?yōu)?UTF-8,所有終端(CMD/PowerShell)將默認使用 UTF-8 編碼。
測試結果
怎么重啟后cmd還是有部分亂碼???

用powershell倒是變好了:

還有一個問題,我的MobaXTerm目錄變亂碼了,新建目錄輸入中文還是亂碼:

方法二:通過注冊表修改 CMD 的默認編碼(已測試可行,注意可能導致雙擊啟動.bat腳本閃退問題)
如果不想修改系統(tǒng)區(qū)域設置,可以直接通過注冊表調整 CMD 的默認編碼。
1. 打開注冊表編輯器:
- 按下
Win + R,輸入regedit,回車打開注冊表編輯器。
2. 修改 CMD 的編碼:
- 導航到以下路徑:
HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe

- 右鍵空白處 → 新建 → DWORD (32 位) 值,命名為
CodePage。

- 發(fā)現(xiàn)我好像已經(jīng)創(chuàng)建過了??

- 雙擊
CodePage,將數(shù)值數(shù)據(jù)設置為65001(十進制),點擊“確定”。

3. 設置 CMD 啟動時自動切換編碼:
- 導航到以下路徑:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor

- 右鍵空白處 → 新建 → 字符串值,命名為
AutoRun。

- 雙擊
AutoRun,將數(shù)值數(shù)據(jù)設置為chcp 65001,點擊“確定”。

測試結果
我雙擊.bat腳本怎么控制臺閃退起不來了。

要先打開cmd,然后再執(zhí)行腳本才行,現(xiàn)在倒是沒有亂碼了:

方法三:通過注冊表修改 PowerShell 的默認編碼(沒測試)
1. 創(chuàng)建 PowerShell 配置文件:
打開 PowerShell,執(zhí)行以下命令創(chuàng)建配置文件(如果不存在):
if (!(Test-Path $PROFILE)) {
New-Item -Type File -Path $PROFILE -Force
}
打開配置文件進行編輯:
notepad $PROFILE
2. 添加 UTF-8 編碼設置:
- 在配置文件中添加以下內容:
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8
- 保存文件并關閉編輯器。
3. 允許腳本執(zhí)行(如果遇到權限問題):
- 在 PowerShell 中以管理員身份運行:
Set-ExecutionPolicy RemoteSigned
方法四:調整終端字體(沒測試)
某些字體不支持中文字符渲染,需手動設置支持中文的字體(如 Lucida Console 或 Consolas)。
1. 修改 CMD 字體:
- 打開 CMD → 右鍵標題欄 → 選擇“屬性” → 進入“字體”選項卡。
- 選擇
Lucida Console或Consolas,點擊“確定”。
2. 添加缺失字體(可選):
- 如果系統(tǒng)缺少支持中文的字體,可以通過注冊表添加:
- 路徑:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont - 右鍵空白處 → 新建 → 字符串值,命名為
0(或數(shù)字序號),數(shù)值數(shù)據(jù)設置為字體名稱(例如Consolas)。
- 路徑:
方法五:通過快捷方式設置 CMD/PowerShell 啟動參數(shù)(沒測試)
1. 創(chuàng)建或修改快捷方式:
- 右鍵桌面或任務欄的 CMD/PowerShell 快捷方式 → 選擇“屬性”。
- 在“目標”字段中,追加以下參數(shù):
- CMD:
cmd /k "chcp 65001 > nul" - PowerShell:
powershell.exe -NoExit -Command "chcp 65001"
- CMD:
2. 保存并測試:
- 點擊“應用” → “確定”,然后通過修改后的快捷方式打開終端,編碼會自動切換為 UTF-8。
注意事項
1. 兼容性問題:
- 啟用 UTF-8 后,部分老舊軟件(如某些壓縮包、批處理腳本)可能會出現(xiàn)亂碼。如果遇到問題,可以暫時禁用 UTF-8 支持。
- 修改注冊表前,建議備份注冊表(
文件 → 導出)。
2. 檢查當前編碼:
- 在終端中輸入
chcp,輸出應為65001(UTF-8)。
3. IDE 內置終端:
- 如果使用 VS Code、WebStorm 等工具的內置終端,需在設置中指定編碼為 UTF-8(通常默認已支持)。
通過以上方法,你可以永久解決 Windows 控制臺的中文亂碼問題,并確保所有終端使用 UTF-8 編碼。如果仍有問題,請檢查字體設置或嘗試更新系統(tǒng)。
以上就是Windows控制臺(CMD/PowerShell)中文亂碼問題的解決方法的詳細內容,更多關于Windows控制臺中文亂碼的資料請關注腳本之家其它相關文章!
相關文章
用winrar和ftp命令實現(xiàn)自動備份文件并自動上傳到指定的ftp服務器
這篇文章主要介紹了用winrar和ftp命令實現(xiàn)自動備份文件并自動上傳到指定的ftp服務器的方法,需要的朋友可以參考下2014-05-05
關于bat腳本中的命令狀態(tài)碼相關的%errorlevel%變量問題
bat腳本中常用%errorlevel%表達上一條命令的返回值,即命令執(zhí)行狀態(tài)碼、也稱命令退出碼,本文給大家介紹bat腳本中的命令狀態(tài)碼相關的%errorlevel%變量問題,感興趣的朋友一起看看吧2022-05-05
命令行實現(xiàn)MAC與IP地址綁定 ip mac綁定 如何綁定mac地址
一般手上沒有軟件,就可以使用這命令行實現(xiàn)MAC與IP地址綁定2008-01-01

