Windows cmd中文乱码解决方法(Windows控制台中文乱码、CMD乱码、控制台乱码、Command Prompt命令提示符cmd.exe乱码)
文章目录
- 问题
- 解决方法
- **方法一:通过系统区域设置启用 UTF-8 支持(全局生效)**
- 1. **打开系统区域设置**:
- 2. **启用 UTF-8 支持**:
- 3. **重启电脑**:
- 测试结果
- **方法二:通过注册表修改 CMD 的默认编码**
- 1. **打开注册表编辑器**:
- 2. **修改 CMD 的编码**:
- 3. **设置 CMD 启动时自动切换编码**:
- 测试结果
- **方法三:通过注册表修改 PowerShell 的默认编码**(==没测试==)
- 1. **创建 PowerShell 配置文件**:
- 2. **添加 UTF-8 编码设置**:
- 3. **允许脚本执行**(如果遇到权限问题):
- **方法四:调整终端字体**(==没测试==)
- 1. **修改 CMD 字体**:
- 2. **添加缺失字体(可选)**:
- **方法五:通过快捷方式设置 CMD/PowerShell 启动参数**(==没测试==)
- 1. **创建或修改快捷方式**:
- 2. **保存并测试**:
- **注意事项**
- 1. **兼容性问题**:
- 2. **检查当前编码**:
- 3. **IDE 内置终端**:
问题
在控制台启动一个bat脚本,脚本中有中文,打开一看全是乱码:
解决方法
要永久解决 Windows 控制台(CMD/PowerShell)的中文乱码问题,并统一使用 UTF-8 编码,可以按照以下步骤操作。这些方法适用于 Windows 10/11 系统。
方法一:通过系统区域设置启用 UTF-8 支持(全局生效)
1. 打开系统区域设置:
- 右键点击“此电脑” → 选择“属性” → 点击“高级系统设置” → 在“高级”选项卡下点击“区域” → 点击“更改系统区域设置”。
- 或者直接通过控制面板:
控制面板 → 时钟和区域 → 区域 → 管理 → 更改系统区域设置
。
2. 启用 UTF-8 支持:
- 在弹出的窗口中,勾选 “Beta 版:使用 Unicode UTF-8 提供全球语言支持”。
- 点击“确定”,系统会提示你重启电脑以使更改生效。
3. 重启电脑:
- 重启后,系统的默认编码会变为 UTF-8,所有终端(CMD/PowerShell)将默认使用 UTF-8 编码。
测试结果
怎么重启后cmd还是有部分乱码???
用powershell倒是变好了:
方法二:通过注册表修改 CMD 的默认编码
如果不想修改系统区域设置,可以直接通过注册表调整 CMD 的默认编码。
1. 打开注册表编辑器:
- 按下
Win + R
,输入regedit
,回车打开注册表编辑器。
2. 修改 CMD 的编码:
-
导航到以下路径:
HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe
-
右键空白处 → 新建 → DWORD (32 位) 值,命名为
CodePage
。
发现我好像已经创建过了??
-
双击
CodePage
,将数值数据设置为65001
(十进制),点击“确定”。
3. 设置 CMD 启动时自动切换编码:
-
导航到以下路径:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor
-
右键空白处 → 新建 → 字符串值,命名为
AutoRun
。
-
双击
AutoRun
,将数值数据设置为chcp 65001
,点击“确定”。
测试结果
我双击.bat
脚本怎么控制台闪退起不来了。
要先打开cmd,然后再执行脚本才行,现在倒是没有乱码了:
方法三:通过注册表修改 PowerShell 的默认编码(没测试)
1. 创建 PowerShell 配置文件:
- 打开 PowerShell,执行以下命令创建配置文件(如果不存在):
if (!(Test-Path $PROFILE)) {New-Item -Type File -Path $PROFILE -Force }
- 打开配置文件进行编辑:
notepad $PROFILE
2. 添加 UTF-8 编码设置:
- 在配置文件中添加以下内容:
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8
- 保存文件并关闭编辑器。
3. 允许脚本执行(如果遇到权限问题):
- 在 PowerShell 中以管理员身份运行:
Set-ExecutionPolicy RemoteSigned
方法四:调整终端字体(没测试)
某些字体不支持中文字符渲染,需手动设置支持中文的字体(如 Lucida Console
或 Consolas
)。
1. 修改 CMD 字体:
- 打开 CMD → 右键标题栏 → 选择“属性” → 进入“字体”选项卡。
- 选择
Lucida Console
或Consolas
,点击“确定”。
2. 添加缺失字体(可选):
- 如果系统缺少支持中文的字体,可以通过注册表添加:
- 路径:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont
- 右键空白处 → 新建 → 字符串值,命名为
0
(或数字序号),数值数据设置为字体名称(例如Consolas
)。
- 路径:
方法五:通过快捷方式设置 CMD/PowerShell 启动参数(没测试)
1. 创建或修改快捷方式:
- 右键桌面或任务栏的 CMD/PowerShell 快捷方式 → 选择“属性”。
- 在“目标”字段中,追加以下参数:
- CMD:
cmd /k "chcp 65001 > nul"
- PowerShell:
powershell.exe -NoExit -Command "chcp 65001"
- CMD:
2. 保存并测试:
- 点击“应用” → “确定”,然后通过修改后的快捷方式打开终端,编码会自动切换为 UTF-8。
注意事项
1. 兼容性问题:
- 启用 UTF-8 后,部分老旧软件(如某些压缩包、批处理脚本)可能会出现乱码。如果遇到问题,可以暂时禁用 UTF-8 支持。
- 修改注册表前,建议备份注册表(
文件 → 导出
)。
2. 检查当前编码:
- 在终端中输入
chcp
,输出应为65001
(UTF-8)。
3. IDE 内置终端:
- 如果使用 VS Code、WebStorm 等工具的内置终端,需在设置中指定编码为 UTF-8(通常默认已支持)。
通过以上方法,你可以永久解决 Windows 控制台的中文乱码问题,并确保所有终端使用 UTF-8 编码。如果仍有问题,请检查字体设置或尝试更新系统。