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中修改编码默认值

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值