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

【windows】终端/命令行显示中文乱码

在 Windows 系统中,终端显示中文乱码通常由编码设置不匹配导致。以下是综合多种方法的解决方案:

一、临时切换编码(适用于当前会话)

  1. 使用 chcp 命令
    在 CMD 或 PowerShell 中执行以下命令,将编码临时切换为 UTF-8:
    chcp 65001
    此方法仅对当前窗口生效,关闭后恢复默认编码。

二、永久修改默认编码

方法 1:通过注册表修改(适用于 CMD)
  1. 修改 CMD 的 CodePage

    • 打开注册表编辑器(Win + Rregedit
    • 导航到路径:
      HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe
    • 新建或修改 CodePage 项(DWORD 值),设为十进制 65001(对应十六进制 0xFDE9)。
  2. 设置自动执行命令

    • 导航到路径:
      HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor
    • 新建字符串值 AutoRun,数据设为 chcp 65001。此设置会在每次启动 CMD 时自动执行编码切换。
方法 2:系统区域设置(全局生效)
  1. 启用 Unicode UTF-8 支持
    • 打开“控制面板”→“时钟和区域”→“区域”→进入“管理”选项卡→点击“更改系统区域设置”。
    • 勾选 ​​“使用 Unicode UTF-8 提供全球语言支持”​,重启后生效。

三、调整终端字体

某些字体不支持中文字符渲染,需手动设置:

  1. 右键 CMD 标题栏→“属性”→“字体”选项卡,选择支持中文的字体(如 Lucida ConsoleConsolas)。
  2. 若字体缺失,可通过注册表添加字体支持(路径 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont)。

四、PowerShell 的特殊设置

  1. 临时修改编码
    [Console]::OutputEncoding = [System.Text.Encoding]::UTF8
  2. 永久修改
    • 创建或编辑 PowerShell 配置文件 Microsoft.PowerShell_profile.ps1,添加:
      [Console]::OutputEncoding = [System.Text.UTF8Encoding]::new()
    • 执行 Set-ExecutionPolicy Unrestricted 允许配置生效。

五、IDE 终端的额外配置

对于 VS Code、WebStorm 等开发工具的内置终端:

  1. VS Code​:在 settings.json 中添加:
    "terminal.integrated.shellArgs.windows": ["-NoExit", "/c", "chcp 65001"]
  2. WebStorm​:进入 Settings → Tools → Terminal,确保编码与系统一致。

注意事项

  • 风险提示​:修改注册表前建议备份,错误操作可能导致系统不稳定。
  • 兼容性​:部分旧程序可能不支持 UTF-8,需根据场景调整编码(如切换回 chcp 936 使用 GBK)。

通过以上设置,可覆盖大多数中文乱码场景。若问题仍未解决,可检查源码文件编码是否与终端设置一致,或排查系统字体损坏问题。

http://www.dtcms.com/a/212023.html

相关文章:

  • 自用git记录
  • java数组,ArrayList,LinkedList
  • 机器学习——支持向量机SVM
  • Android学习之登录界面(包含忘记密码 记住密码)(java + 详细注释 + 源码)
  • 基于大模型的大肠癌全流程预测与诊疗方案研究报告
  • Github 2025-05-25 php开源项目日报 Top10
  • 最好用的wordpress外贸主题
  • 反序列化之Wakeup方法绕过
  • Flink流水线集成Gravitino
  • Java反射详解
  • JVM 的内存模型
  • MySQL#秘籍#一条SQL语句执行时间以及资源分析
  • 超简单Translation翻译模型部署
  • 信奥赛CSP小学五年级动态规划入门
  • 【docker】--compose介绍
  • 高级特性实战:死信队列、延迟队列与优先级队列(二)
  • Go 语言基础 2 Func,流程控制
  • 【linux篇】系统世界跳跃的音符:指令
  • 嵌入式STM32学习—— 定时器中断(应用-利用定时器中断实现LED亮一秒灭一秒)
  • 并发编程知识点
  • MyBatis实战指南(二)如何实现小鸟图标与导入Teacher数据库表实战
  • 位图与布隆过滤器
  • RabbitMQ核心机制——延迟队列
  • win11 禁用/恢复 内置笔记本键盘(保证管用)
  • 【公式】MathType公式右编号对齐
  • MySQL连接错误解决方案:Can‘t connect to MySQL server on ‘localhost‘ (10038)
  • leetcode2081. k 镜像数字的和-hard
  • 华为OD机试真题——仿LISP运算(2025B卷:200分)Java/python/JavaScript/C/C++/GO最佳实现
  • 【短距离通信】【WiFi】WiFi7起源和应用场景介绍
  • MySQL 定时逻辑备份