VSCode终端输出中文乱码问题和终端吞输出的解决方法

本文介绍了如何解决VSCode终端中文乱码问题,通过修改集成终端配置,设置为UTF-8编码即可。另外,对于CodeRunner配置导致的代码运行无输出情况,通过修改CodeRunner的执行命令,添加-static-libstdc++参数可以解决。重启VSCode后,问题即可得到解决。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、VSCode终端输出中文乱码问题

如下图所示:终端出现了中文乱码问题,这里提供一种好用的解决方法,也是从别的大神那里看到的,记录下来以防忘记吧。在这里插入图片描述

修改VSCode终端的默认编码

这个方法运行调试时在集成终端运行。代码的内容主要是修改了集成终端的编码格式。在vscode中按快捷键Ctrl+Shift+P,输入Preferences: Open Settings(JSON),然后在 setting.json 中加入以下的代码:

    "terminal.integrated.profiles.windows": {
        "PowerShell": {
          "source": "PowerShell", //一般推荐使用powershell
          "overrideName": true,
          "args": ["-NoExit", "/c", "chcp 65001"],
          "icon": "terminal-powershell",
          "env": {
            "TEST_VAR": "value"
          }
        }
      },

之后重启VSCode后再运行就不会出现乱码。

2、代码没问题,CodeRunner开了在终端输出选项,但终端却不输出

如果遇到这种情况,运行如下测试代码时,

#include <iostream>
#include <vector>
using namespace std;

int main() {

cout <<"Hello world" << endl;
vector<int> v;
return 0;

}

会出现如下这种情况,终端一闪而过,并没有结果输出。在这里插入图片描述
经过搜索,大致知道了解决方案(与-static-libstdc ++进行静态链接)对该问题有帮助,但因为作者比较菜,具体的原理尚不清楚,只能把操作贴在这。

在设置中搜索 code-runner.executorMap,将其中的:

"cpp": "cd $dir && g++ $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt",

修改为:

"cpp": "cd $dir && g++ $fileName -o $fileNameWithoutExt -static && $dir$fileNameWithoutExt",

然后保存重启,即可解决问题,如果哪位大神知道原理,可以在评论区赐教!

<think>嗯,用户遇到了VSCode终端输出中文乱码问题,需要解决方案。首先,我得回忆一下相关的知识。根据引用里的信息,乱码主要是因为编码不一致,比如文件保存为UTF-8,而终端默认是GBK。所以解决办法应该是统一编码。 用户提到的三个引用中,引用[1]提到设置统一编码为UTF-8,临方法是在终端执行命令。引用[3]详细解释了cmd的编码原理,并给出了两种方法:改终端编码或文件保存格式。引用[2]则可能提到其他方法,比如配置VSCode的设置。 我应该先总结这些方法,分步骤说明。可能第一步是修改VSCode本身的设置,确保文件保存为UTF-8,然后配置终端的编码。另外,还要考虑到用户可能不知道如何永久设置,所以需要提供修改配置文件的步骤。 可能的问题包括用户不清楚如何执行chcp命令,或者不知道在哪里修改设置。所以步骤要详细,比如打开settings.json,添加哪些代码。同,要提醒用户如果临方法有效,但重启后失效,就需要永久设置。 还要注意区分不同情况,比如有些用户可能希望临解决,而有些需要一劳永逸。另外,如果用户使用的是PowerShell或其他终端,可能需要不同的命令,但根据引用[3],终端调用的是cmd.exe,所以重点在cmd的编码设置。 最后,生成相关问题候,要围绕编码原理、其他乱码场景、不同终端设置等,帮助用户扩展知识。</think>### VSCode终端中文乱码解决方案 根据引用内容,乱码的根本原因是**编码格式不统一**(如文件保存为UTF-8,而终端默认使用GBK)。以下是具体解决步骤: --- #### 一、临解决方案(终端单次生效) 1. **在VSCode终端执行命令** ```bash chcp 65001 ``` 该命令将终端符集临改为UTF-8编码[^3] --- #### 二、永久解决方案(推荐) 1. **修改VSCode配置** - 按`Ctrl+,`打开设置 - 搜索`encoding` → 设置文件编码为`utf8` - 搜索`Code Runner` → 勾选`Run in Terminal`(若使用Code Runner插件) 2. **修改终端默认编码** 在VSCode的`settings.json`中添加: ```json "terminal.integrated.profiles.windows": { "Command Prompt": { "path": "cmd.exe", "args": ["/K", "chcp 65001"] } } ``` 此配置使终端每次启动自动切换为UTF-8[^1][^3] 3. **文件保存格式验证** - 用记事本打开源代码文件 → 另存为 → 编码选择`UTF-8 with BOM` (部分场景需要BOM头识别中文--- #### 三、进阶排查 1. **检查系统区域设置** Windows系统需开启Beta版UTF-8支持: - 控制面板 → 区域 → 管理 → 更改系统区域设置 → 勾选"使用UTF-8" 2. **终端类型切换测试** 尝试将VSCode默认终端改为PowerShell或Git Bash,观察是否仍有乱码 --- #### 四、验证结果 新建测试文件: ```cpp #include <iostream> int main() { std::cout << "中文测试" << std::endl; } ``` 按`Ctrl+F5`执行,观察终端输出是否正常显示中文---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值