Windows cmd中文乱码解决方法(Windows控制台中文乱码、CMD乱码、控制台乱码、Command Prompt命令提示符cmd.exe乱码)

发布于:2025-06-11 ⋅ 阅读:(18) ⋅ 点赞:(0)

问题

在控制台启动一个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 ConsoleConsolas)。

1. 修改 CMD 字体

  • 打开 CMD → 右键标题栏 → 选择“属性” → 进入“字体”选项卡。
  • 选择 Lucida ConsoleConsolas,点击“确定”。

2. 添加缺失字体(可选)

  • 如果系统缺少支持中文的字体,可以通过注册表添加:
    • 路径:
      HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont
    • 右键空白处 → 新建 → 字符串值,命名为 0(或数字序号),数值数据设置为字体名称(例如 Consolas)。

方法五:通过快捷方式设置 CMD/PowerShell 启动参数没测试

1. 创建或修改快捷方式

  • 右键桌面或任务栏的 CMD/PowerShell 快捷方式 → 选择“属性”。
  • 在“目标”字段中,追加以下参数:
    • CMDcmd /k "chcp 65001 > nul"
    • PowerShellpowershell.exe -NoExit -Command "chcp 65001"

2. 保存并测试

  • 点击“应用” → “确定”,然后通过修改后的快捷方式打开终端,编码会自动切换为 UTF-8。

注意事项

1. 兼容性问题

  • 启用 UTF-8 后,部分老旧软件(如某些压缩包、批处理脚本)可能会出现乱码。如果遇到问题,可以暂时禁用 UTF-8 支持。
  • 修改注册表前,建议备份注册表(文件 → 导出)。

2. 检查当前编码

  • 在终端中输入 chcp,输出应为 65001(UTF-8)。

3. IDE 内置终端

  • 如果使用 VS Code、WebStorm 等工具的内置终端,需在设置中指定编码为 UTF-8(通常默认已支持)。

通过以上方法,你可以永久解决 Windows 控制台的中文乱码问题,并确保所有终端使用 UTF-8 编码。如果仍有问题,请检查字体设置或尝试更新系统。