VScode解决终端输出乱码问题

VScode解决终端输出乱码问题

本篇技术博客旨在解决VScode运行代码过程中终端输出中文乱码的问题。

问题起源

博主最近在复习C语言的过程中,使用VScode作为自己的编辑器,但是VScode有个问题,他在输出中文的时候会输出乱码,笔者对于UTF-8/GBK之类的编码知识略有学习,所以一开始以为自己是代码的编码方式选错了,于是在UTF-8与GBK两种编码中间横跳,发现无论是选择UTF-8还是GBK都无法解决中文乱码的问题。
这里可以选择UTF-8和GBK的编码方式
在经过了漫长的查找资料和尝试以后,博主发现了中文乱码背后的原因,由于VScode本身是一个编辑器,所以其本身是不具备代码运行的能力的,我们需要下载GUN集成开发环境,博主选择的是Mingw+VScode下C/C++插件这样的一个组合

下面是中文乱码的原因解释:

  • 我们代码的编码是UTF-8 把UTF-8编码的代码交给Mingw,它也默认当做UTF-8处理(目前为止这是正确的)
  • Mingw处理后生成的数据还是UTF-8编码(目前为止还是正确的)
  • 把Mingw处理后的数据(UTF-8编码)给cmd(目前为止也是正确的)
  • cmd按GBK编码处理它(UTF-8),这时出现错误,所以出现乱码

知道了原因以后,我们有两种思路去解决这个问题:
1.将CMD转化为UTF-8编码。
2.将Mingw由UTF-8编码经过转码为GBK编码交给cmd,
下面我分别对两种方案进行尝试:

解决问题方案一

· 查看我们cmd的编码环境 : (打开cmd并且输入命令chcp)cmd打开搜索框下搜索cmd即可
所以我们只需要修改这里的code page的值就可以了。(修改以前一般是936)
我们输入命令:
chcp 65001
即可以将cmd从GBK/GB2312转化为UTF-8编码。
关于代码页的详细了解:
在这里插入图片描述
这个时候再编译代码即可看到中文:
在这里插入图片描述
但是这种解决方案他只能临时解决问题,一旦cmd关闭,系统自动重置chcp的值,则中文输出重新会变为乱码:

当然通过修改注册表的数值是可以达到永久修改chcp的值的:
在这里插入图片描述
具体操作如上图:打开注册表编辑器,然后再在这个目录下新建一个字符串,并且将其赋值为chcp 65001。

==============================================
这里应该是写到powershell下面,或者将vscode 的terminal端切换到cmd,具体可以看:如何在powershell中修改编码默认值

### 解决 VSCode Python 终端输出乱码的方法 对于在 VSCode 中遇到的 Python 终端输出中文乱码问题,可以通过调整环境配置以及 IDE 设置来解决。具体措施包括但不限于: #### 方法一:修改 `settings.json` 文件中的 Python 执行命令 为了确保 Python 脚本能够以 UTF-8 编码读写数据,在 VSCode 的全局或工作区级别的 `settings.json` 文件里添加特定参数可以有效防止乱码现象的发生。例如,可以在该文件内加入如下配置: ```json { "code-runner.executorMap": { "python": "set PYTHONIOENCODING=UTF8 && python -u" } } ``` 上述 JSON 片段定义了一个新的执行映射表条目,它指定了每当 Code Runner 插件运行 Python 程序时所使用的命令字符串[^4]。 #### 方法二:设置系统级环境变量 另一种可行的方式是在操作系统层面增加名为 `PYTHONIOENCODING` 的环境变量,并将其值设定为 `UTF-8` 或者其他兼容的语言编码标准。这一步骤有助于让所有基于 Python 构建的应用程序默认采用统一的文字处理模式,从而减少因本地化差异引发的一系列潜在麻烦[^2]。 #### 方法三:利用插件功能优化终端行为 如果前两种方案未能达到预期效果,则还可以考虑安装并启用专门针对此类场景设计的 Visual Studio Code 插件。这些工具通常提供了更加直观易用的操作界面,允许开发者轻松切换不同的字符集选项或是自定义更多高级特性[^5]。 通过以上三种途径之一或多者的组合运用,应当足以克服大多数情况下由编码冲突引起的文字显示异常状况。值得注意的是,每种方法都有其适用范围和局限性;因此建议先尝试较为简单快捷的办法,必要时再深入探究更复杂的解决方案。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值