vscode运行C++乱码
时间: 2025-06-07 15:38:32 浏览: 24
### 解决方案概述
在 Windows 系统中,VSCode 的默认编码为 UTF-8,而命令提示符 (cmd) 或 PowerShell 默认使用 GBK 编码。这种编码不一致性可能导致运行 C/C++ 程序时出现中文乱码问题[^1]。
### 方法一:通过 Code Runner 插件调整编码
为了使 Code Runner 插件能够正确处理中文字符,在 VSCode 设置中修改 Code Runner 的终端编码:
1. 打开 VSCode 并进入设置页面 (`Ctrl+,`)。
2. 搜索 `code-runner.executorMap`。
3. 修改对应编程语言的执行映射,加入 `-fexec-charset=GBK` 参数用于指定编译器使用的字符集。对于 C++ 可以这样配置:
```json
{
"code-runner.executorMap": {
"cpp": "cd $dir && g++.exe $fileName -o $fileNameWithoutExt.exe -fexec-charset=GBK && .\\$fileNameWithoutExt"
}
}
```
这种方法使得每次编译和运行程序都采用相同的字符集,从而避免了乱码现象的发生[^2]。
### 方法二:更改 VSCode 终端编码
另一种解决方案是改变 VSCode 内置终端所使用的编码格式为与外部命令行工具相匹配的形式——即由原来的 UTF-8 改成 GBK:
1. 同样是在设置界面(`Ctrl+,`)内操作;
2. 使用搜索栏查找 `terminal.integrated.shellArgs.windows`;
3. 添加参数 `/c chcp 936>NUL&&` 到 shell args 中去,这会强制集成终端启动时切换到 GBK 字符集环境;
具体配置如下所示:
```json
{
"terminal.integrated.shellArgs.windows": [
"/c",
"chcp 936>NUL&&"
]
}
```
此改动仅影响内置终端的行为,并不影响其他地方如文件保存等内容的实际编码形式[^3]。
### 验证效果
完成上述任一种方法之后重新打开一个新的内部终端窗口并尝试再次运行带有汉字输出语句的应用程序来验证是否解决了该问题。
### 注意事项
如果选择了第二种办法,请注意当您希望保持原有工作流不变的情况下(比如某些依赖于特定编码特性的脚本),可能需要额外考虑如何兼容这些特殊情况下的需求。
阅读全文
相关推荐


















