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

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

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

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

用powershell倒是變好了:

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

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

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

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

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

3. 設(shè)置 CMD 啟動(dòng)時(shí)自動(dòng)切換編碼:
- 導(dǎo)航到以下路徑:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor

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

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

測(cè)試結(jié)果
我雙擊.bat腳本怎么控制臺(tái)閃退起不來了。

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

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

