微尘印记
解决Windows终端中文乱码问题

解决 Windows 终端输出中文乱码问题:修改系统区域设置(方法一)

在使用 VS Code 进行 C++ 开发时,很多 Windows 用户都会遇到控制台输出中文乱码的问题。这通常是因为 Windows 终端默认使用 GBK 编码,而现代的代码文件(尤其是使用 UTF-8 编码的文件)在输出时会发生冲突。

本文将详细介绍一种简单直接的解决方案:修改系统区域设置


解决方案:修改系统区域设置 (Beta UTF-8)

这是目前最接近“一劳永逸”的方法,通过开启 Windows 的全局 UTF-8 支持,使终端能够正确识别和显示 UTF-8 编码的文字。

Windows_更改编码.gif

操作步骤

  1. 打开区域设置
    • 在任务栏空白处点击右键,选择 “任务栏设置”
    • 在弹出的设置窗口左侧搜索框中输入 “区域”,并选择 “区域设置”
  2. 管理语言设置
    • 在区域设置页面中,点击 “管理语言设置”(通常在相关设置或页面底部)。
  3. 更改系统区域设置
    • 在弹出的“区域”窗口中,切换到“管理”选项卡,点击 “更改系统区域设置(C)…”
  4. 开启 UTF-8 支持
    • 在新的弹出的窗口中,勾选 “Beta 版:使用 Unicode UTF-8 提供全球语言支持”
  5. 重启生效
    • 点击确定后,系统会提示需要重新启动。点击 “现在重新启动”

重启后,你的 Windows 终端(CMD 和 PowerShell)将默认支持 UTF-8 编码,VS Code 中的中文输出通常就能恢复正常了。


进阶方案:方案 2 - 设置终端启动时自动切换为 UTF-8

如果你不想修改系统的全局编码设置(因为这可能会导致某些极少数旧软件出现乱码),可以尝试通过修改 VS Code 配置,让终端在启动时自动切换到 UTF-8 编码。

VSCode_打开设置1.gif

操作步骤

  1. 打开设置:点击 VS Code 窗口左下角的 齿轮图标,选择 设置 (Settings)
  2. 打开配置文件:在设置窗口的右上角,点击那个类似“打开文件”的图标(即“打开当前配置文件设置”),这会打开你的 settings.json 文件。
  3. 修改终端配置:在 settings.json 中找到 "terminal.integrated.profiles.windows" 项,并按照以下内容修改 cmdPowerShell 的配置:
"terminal.integrated.profiles.windows": {
  "cmd": {
    "args": ["/K", "chcp 65001 > nul"],  // 关键:启动时执行切换编码命令
    "icon": "terminal-cmd",
    "path": [
      "${env:windir}/Sysnative/cmd.exe",
      "${env:windir}/System32/cmd.exe"
    ]
  },
  "PowerShell": {
    "args": ["-NoExit", "chcp 65001 > $null"], // 关键:启动时执行切换编码命令
    "icon": "terminal-powershell",
    "source": "PowerShell"
  }
}

备注

  • 找不到齿轮图标?:尝试使用快捷键 Ctrl + Shift + P,输入 toggle activity bar 并回车,以恢复左侧活动栏。

  • 警告:如果修改后发现无法执行调试(Debug)任务,说明该方法在你的环境下不适用,请还原配置并尝试方案 1。

  • 来源说明VSCode 配置 C++ 教程 (vscode-cpp-starter)

〰️

💬 评论

🧙‍♂️

评论区正在施法中...

信使正在穿越次元壁,即将抵达... *Alohomora!* 🔓

    输入关键词开始搜索