VSCode_C++_输出窗口中文乱码解决方案

VSCode_C++_输出窗口中文乱码

C++常常要用到控制台输出一些调试信息,但是由于代码本身的编码格式与控制台所用的编码格式不一致,就会导致控制台输出乱码。基于此,可以有两种解决方案:

更改代码文件的本身编码格式(UTF-8,GB2312等)

最简单有效(建议采用这种方式)
VSCode 底部状态框内有当前文件编码格式,将其修改为GB2312即可

更改控制台的编码格式

控制台默认的编码格式可以通过cmd输入chcp查看
如下图:
cmd显示当前编码格式
更改控制台的编码格式也有两种方法一是通过在代码外部改变默认全局的控制台编码格式,另一个是在代码内部自定义编码格式。
改变默认全局的控制台编码格式,可以通过注册表进行修改或者其他方法,但是我并未得到正确有效的更改注册表的方法,建议自行尝试。验证方法的正确性很简单,修改后只要打开控制台显示下当前的编码格式即可。除此之外还有一种方法,通过区域设置来更改。可以参考这篇博客这种方法会导致其他一些文件出现乱码。
在代码内部自定义编码格式,可以通过控制台的API实现。
控制台API参考文档

测试代码如下所示(注意:此代码文件的编码格式是UTF-8,若采用GB2312的编码格式,输出结果会不同)

#include <iostream>
#include <windows.h>
using namespace std;
int main(){
    cout<<"编码字符"<<endl;
    cout<<"CodePage:"<<GetConsoleOutputCP()<<endl;
    SetConsoleOutputCP(65001);
    cout<<"编码字符"<<endl;
    cout<<"CodePage:"<<GetConsoleOutputCP()<<endl;
    system("pause");
    return 0;
}

输出结果
测试结果

  • 11
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值