vscode (c/cpp)解决终端 无法输出中文/中文乱码的问题 2020最新最全。

博客作者花费数晚解决VSCode C++程序中文乱码问题,关键在于删除task.json中错误的GBK编码设置。删除该设置或改为UTF-8后,VSCode能正常显示中文。分享了影响编码的相关设置,包括区域设置、VSCode配置等。此外,还提供了两种方法确保输入输出中文的正确性,但无法同时实现F5运行和调试时的中文支持。

11.1更新:task.json里关于编码的代码全部删除。其余默认设置,cpp文件utf8编码,vscode玄学地能输出中文了。

耗费三个晚上,终于解决问题(正常显示中文)。

此方法不会导致windows其他内容乱码
仅适用于设置UTF-8,可能对要设置GBK有参考价值

尝试了
更改区域设置、cmd和powershell编码等方法,均无效。

最后发现自己的task.json里有一句

"-fexec-charset=GBK", // 生成的程序使用GBK编码,不加这一条会导致Win下输出中文乱码

正是这一句导致了中文问题(当时选择的教程是用的GBK 吧??诶)

由于我的vscode的设置全都是UTF-8的,加了这一句GBK,怎么, 改都是GBK,也就无法在终端正常显示中文了

一定要注意自己的配置文件里关于编码的设置

删除这一句就行了,或者把GBK改成UTF-8(建议删除,防止以后改成GBK的时候又出要幺蛾子)

相信看到这篇文章的朋友们都已经了解了以下所有关于编码问题的设置方法

以下分享一下关于我电脑上可能影响vscode编码的相关设置

windows版本:
win10 家庭中文版1909

vscode版本:
版本: 1.50.0 (system setup)
提交: 93c2f0fbf16c5a4b10e4d5f89737d9c2c25488a3
日期: 2020-10-07T06:10:52.432Z
Electron: 9.2.1
Chrome: 83.0.4103.122
Node.js: 12.14.1
V8: 8.3.110.13-electron.0
OS: Windows_NT x64 10.0.18363

编译器:mingw64

1、区域设置(默认中国)
在这里插入图片描述

2、区域编码设置(默认)
在这里插入图片描述
3、cmd编码设置(默认)

4、PowerShell编码设置(默认)
在这里插入图片描述
以下设置打开方式:vscode左下角齿轮图标>>设置

5、Encoding设置(默认)
在这里插入图片描述
6、终端类型设置(默认)
在这里插入图片描述
7、终端cmd和shell设置(默认)
在这里插入图片描述
在这里插入图片描述

2020.10.14.18:00更新:
经长达4个小时的探索,
最终无法在按下F5运行cpp程序的时候既正常显示printf(“中文”);,
又能读入输入的中文并正常显示

输入输出中文的解决方法:(其他以上编码方式同上述步骤)
如果有源代码里的中文打印出来有乱码,请删掉重新写,保存
方法1、
01在vscode左下角编码位置->>通过编码保存,选择utf8
02在终端用命令行 chcp 936
03通过以下两行代码运行程序(文件名请自作调整)
g++ test.cpp -o test.exe
./test.exe
方法2、用Code Runner运行cpp代码
01在vscode左下角编码位置->>通过编码保存,选择gbk2312
02用code runner运行

缺点:无法通过打断点的方式debug

<think>首先,用户的问题是:“我想查找使用VScode解决终端输出乱码问题的方法 请问VScode解决终端输出乱码问题解决办法”。这是一个关于解决VSCode终端输出中文乱码问题的查询。 我有提供的引用,这些是站内引用,我需要参考它们来回答问题。参考包括: - 引用[1]:提到关于解决vscode终端输出中文乱码问题的教程,推荐方法二,并提到原因和方法。 - 引用[2]:描述VScode终端输出乱码问题,显示乱码的例子。 - 引用[3]:解释VScode解决终端输出乱码问题,强调编码知识,并提到使用Mingw和C/C++插件。 - 引用[4]:提供vscode终端输出中文乱码问题的终极解决方案,建议修改注册表来统一编码为UTF-8,避免一些其他方法的问题。 - 引用[5]:提到解决乱码的临时性方法,统一编码为UTF-8。 用户说这些引用仅供参考,并不是真正的需求,我应该尽可能参考用户上一次的问题和我的回答。但在这个会话中,这是第一条消息,所以没有上一次的回答。用户的问题就是这条消息。 回顾系统指令:我需要使用中文回答,结构清晰,帮助用户逐步解决问题,保证回答真实可靠。另外,根据系统级指令,我必须在回答中引用的段落末尾自然地添加引用标识,例如[^1]。 系统指令还说:引用站内内容时,在相关段落末尾添加引用标识,例如[^1]。所以,当我引用这些提供的引用时,我需要添加引用标识。 用户的问题是查找解决VSCode终端输出中文乱码问题的方法。我需要基于提供的引用综合回答。 关键解决方法从引用中提取: - 引用[1]:提到方法二(永久性),但没有细节。它说“强推方法二”,并提到CMD修改成旧控制台作为附加(方法三临时性)。 - 引用[3]:解释原因,VSCode本身不具备运行能力,需要使用如Mingw的GUN集成开发环境。 - 引用[4]:提供终极方案:修改注册表来统一编码为UTF-8,避免使用Windows系统区域设置的Beta选项,因为它可能导致其他软件问题。 - 引用[5]:提到临时性方法统一编码为UTF-8。 综合这些,常见原因是在Windows上编码不一致(如系统编码是GBK,而VSCode使用UTF-8)。解决方法通常是统一编码。 步骤: 1. **统一编码为UTF-8**:这是常见解决方案。引用[4]推荐修改注册表来设置系统范围UTF-8。 2. **避免特定设置**:引用[4]警告不要使用Windows系统区域的“Beta版:使用Unicode UTF-8”选项,因为它可能不稳定。 3. **永久性方法**:引用[1]推荐方法二,但细节未提供;引用[4]建议修改注册表。 4. **临时性方法**:引用[5]提到临时性方法,比如在终端运行命令更改编码。 5. **环境设置**:引用[3]强调确保开发环境如Mingw配置正确。 因此,我应建议一个清晰的逐步方法: - 推荐永久性解决方案:修改注册表设置系统编码为UTF-8(如引用[4])。 - 作为备选,检查VSCode设置和系统环境变量。 - 提到临时性方法供快速修复。 在回答中,我需要结构清晰: - 解释原因:简要说明乱码原因(编码不一致)。 - 提供解决方法:逐步指导。 - 引用相关部分:在末尾添加引用标识。 最后,生成相关问题:根据系统指令,我需要生成相关问题,放在末尾用§§相关问题§§格式。 结构回答: 1. **引言**:确认问题,简述原因。 2. **解决方法**: - 方法一:修改注册表设置UTF-8(推荐,永久性)。 - 方法二:检查VSCode终端设置。 - 方法三:临时性方法(如使用命令)。 3. **注意事项**:避免某些设置。 4. **相关问题**。 确保使用中文,LaTeX正确(但这里可能不需要LaTeX,因为没有数学内容)。 最后,添加引用:当提到具体方法时,在段落末尾添加[^数字]。 例如: - 如果你采用修改注册表的方法,这是一种永久性的解决方案[^4]。 - 确保你的开发环境如Mingw配置正确[^3]。 相关问题示例: 1. 如何检查我的系统当前编码设置? 2. VSCode中如何配置终端编码? 3. 乱码问题在其他编辑器如Pycharm中如何解决? </think>### VScode 终端输出乱码问题解决方法 在使用 VSCode 时,终端输出中文乱码通常是由于系统、终端和代码之间的编码不一致导致的(例如,系统默认编码为 GBK,而 VSCode 或代码文件使用 UTF-8)。这种不一致会引发中文字符显示为乱码。以下是基于可靠解决方案的综合指南,我已整合多个来源的推荐方法,优先选择永久性修复方案,以确保一劳永逸地解决问题。操作前请备份重要数据,以防意外更改。 #### 步骤 1: 确认原因和准备(可选但推荐) - **检查当前编码设置**: 打开 VSCode,查看右下角的编码状态(如 UTF-8 或 GBK)。同时,检查系统区域设置(Windows 设置 > 时间和语言 > 区域 > 区域设置),默认编码通常是 GBK。乱码往往源于 VSCode 使用 UTF-8,而系统终端(如 CMD 或 PowerShell)使用 GBK。 - 提示:如果代码文件是 UTF-8 编码,但系统终端默认 GBK,就会导致乱码[^3][^5]。 #### 步骤 2: 永久性解决方案(推荐首选) 以下方法能从根本上统一编码,避免后续问题: - **方法一:修改 Windows 注册表设置系统范围 UTF-8** 这是最可靠且永久的方案,无需更改 VSCode 配置即可解决乱码。操作步骤如下: 1. 按 `Win + R`,输入 `regedit` 打开注册表编辑器。 2. 导航到路径:`HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor`。 3. 右键点击空白处,选择 “新建” > “字符串值”,命名为 `Autorun`。 4. 双击 `Autorun`,设置数值数据为 `chcp 65001`(65001 代表 UTF-8 编码)。 5. 重启 VSCode 和系统终端(如 CMD 或 PowerShell),测试中文输出是否正常。 - **优点**:全局生效,不影响其他软件稳定性(避免 Beta 版 UTF-8 选项的风险)[^4][^1]。 - **注意事项**:修改注册表需管理员权限;如果问题依旧,检查是否与其他设置冲突。 - **方法二:配置 VSCode终端设置(备用永久方案)** 如果不想修改注册表,可通过 VSCode 内置设置统一编码: 1. 在 VSCode 中,打开设置(按 `Ctrl + ,` 或菜单 File > Preferences > Settings)。 2. 搜索 `terminal.integrated.profiles.windows`,点击 “Edit in settings.json”。 3. 在 JSON 文件中添加或修改以下内容,强制终端使用 UTF-8: ```json "terminal.integrated.profiles.windows": { "PowerShell": { "source": "PowerShell", "icon": "terminal-powershell", "args": ["-NoExit", "-Command", "chcp 65001"] // 设置 UTF-8 }, "Command Prompt": { "path": "cmd.exe", "args": ["/K", "chcp 65001"] // 设置 UTF-8 } }, "terminal.integrated.defaultProfile.windows": "Command Prompt" // 或 "PowerShell" ``` 4. 保存文件并重启 VSCode。 - **优点**:只影响 VSCode 内部终端,操作简单[^3][^5]。 - **注意事项**:确保代码文件编码也为 UTF-8(在 VSCode 右下角切换)。 #### 步骤 3: 临时性解决方案(快速测试) 如果急需临时修复,可用以下命令(但重启后会失效): - 在 VSCode 终端中直接运行命令: - 对于 CMD 终端:输入 `chcp 65001`。 - 对于 PowerShell 终端:输入 `$OutputEncoding = [System.Text.Encoding]::UTF8`。 然后重新运行代码查看输出。 - **适用场景**:临时调试或测试,不推荐长期使用[^5][^1]。 #### 步骤 4: 验证和常见问题处理 - **测试方法**:创建一个简单的测试文件(如 test.cpp),写入中文输出代码: ```cpp #include <iostream> int main() { std::cout << "你好,世界" << std::endl; // 测试中文输出 return 0; } ``` 编译运行后检查终端显示。 - **如果问题依旧**: - 检查开发环境(如 Mingw)是否正确安装,确保编译器和终端兼容 UTF-8[^3]。 - 避免使用 Windows 系统区域的 “Beta 版:使用 Unicode UTF-8” 选项,因为它可能导致其他软件崩溃(如图吧工具箱出错)[^4]。 - 重置 VSCode 设置:如果之前尝试过其他方法导致混乱,可通过删除 `settings.json` 文件恢复默认(路径:`%APPDATA%\Code\User\settings.json`)。 #### 总结 优先推荐 **方法一(修改注册表)** 作为永久解决方案,因为它统一系统编码且稳定可靠[^4][^1]。如果乱码仅限于 VSCode,则 **方法二(配置 settings.json)** 更安全。解决后,乱码问题应消失。如果仍有疑问,可提供更多细节(如操作系统或代码示例),我进一步协助。
评论 9
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值