当前位置: 首页 > backend >正文

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 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 编码。如果仍有问题,请检查字体设置或尝试更新系统。

http://www.xdnf.cn/news/13384.html

相关文章:

  • JxBrowser 7.43.2 版本发布啦!
  • 预训练模型 CBAM注意力
  • 【docker n8n】windows环境如何挂载
  • 【计算机组成原理 第5版】白、戴编著 第四章 指令系统 课后题总结
  • 第二章 开发板与芯片介绍
  • 慢接口优化万能公式-适合所有系统
  • 【论文阅读笔记】HaDes幻觉检测benchmark
  • GISBox如何导入Revit格式的BIM数据?
  • 案例解读:交安与建安安全员 C 证在实践中的差异
  • 电路图识图基础知识-电机顺序启动控制电路解析(二十二)
  • 期末考试复习总结-《从简单的页面开始(下)》
  • NLP学习路线图(三十八): 文本摘要
  • 3分钟配置好nacos集群(docker compose)
  • 接口测试与接口测试面试题
  • 讲讲JVM的垃圾回收机制
  • 【八股消消乐】构建微服务架构体系—熔断恢复抖动优化
  • 认识 Python 【适合0基础】
  • 魔兽世界正式服插件与宏-敏锐盗贼实用宏探索(3)-起手奥义【袭】之突如其来
  • C++ Programming Language —— 第1章:核心语法
  • SpringBoot自动化部署实战
  • Python主动抛出异常详解:掌握raise关键字的艺术
  • 云原生核心技术 (6/12): K8s 从零到一:使用 Minikube/kind 在本地搭建你的第一个 K8s 集群
  • 基于STM32F103C8T6单片机双极性SPWM逆变(软件篇)
  • 软件定义汽车的转型之路已然开启
  • MH2213 32位Arm® Cortex®-M3 Core核心并内嵌闪存和SRAM
  • 模型上下文协议(MCP)实践指南
  • 医院系统源码核心功能开发探索:问诊、陪诊、预约挂号、电子处方
  • 华为仓颉语言初识:并发编程之同步机制(下)
  • 分布式ID最新最佳实践?UUIDv7介绍
  • 进程间通信详解(二):System V IPC 三件套全面解析