一、中文乱码的原因:
1.
中文在不同编码格式下
,
存储的方式不一样
.
2.
如果程序是
A
编码方式编译运行的
,
但是控制台却是以
B
编码方式来显示
,
就会出现乱码
.
3. vs
的控制台默认编码是
GB2312,
编号号是
836
注意
:GBK
编码是兼容
GB2312
的
,
一般描述
GBK
常常就是指
BG2312
如果源代码文件的编码如果是其他编码格式
,
就会导致中文乱码
.
正常场景:
在
vs
中新建文件时
,
该文件默认都是
GB2312
编码
.
因为控制台默认也是
GB2312
编码
,
所以一般情况下
,
都不会出现中文乱码
.
错误场景:
1.
直接在项目中导入了其他已经创建好的源代码文件
,
如果该文件不是
BG2312
编码
,
而且含有中文的话
,
就必定会出现中文乱码
.
2.
从其他文件中复制代码到
vs
的文件中
,
也可能导致编码错乱
.
3.
网络编程中
,
和服务器交互通信
,
两端的编码很可能不同
.
二、解决方案:
1、修改文件的编码
修改源代码文件的
”
编码格式
”,
使其和控制台的编码格式保持一致。
![](https://img-blog.csdnimg.cn/56f4b742cf8541aeb1ca1d445e8a910a.png)
![](https://img-blog.csdnimg.cn/315ca84818ba4784b3412072b33d3da0.png)
2、强制指定文件执行
直接指定程序执行时使用的编码
,
使其和运行程序的控制台的编码一致.
#pragma execution_character_set("gbk")