今天会员【HiroLCS】提到一个问题,就是在VS2017新建的C/C++控制台程序显示的中文竟然是乱码,效果图如下:
出现乱码,必然是编码问题。而编码问题就要考虑到多方面的因素,大致分为:文件编码、代码编码、输出结果显示的编码。我们只要以此来检查这三部分,就可以找到乱码的原因。而要想不出现乱码,那么这三部分都需要正确,其中一部分的编码并没有对错之分,编码和解码一致才是正确的。
1.文件编码
将cpp文件使用Notepad++软件打开,然后底部状态栏的右边可以看到当前文件的编码。我们可以看到,我们在VS2017里创建的cpp文件,是UTF-8编码。
2.代码编码
代码编码指的是在VS项目中,我们在项目属性里指定的字符集,如下图所示:
我们可以看到,VS项目里使用的字符集是Unicode编码。这个编码是对代码中出现的字符串默认使用的编码。所以你看到标题上是项目默认值。如果你在字符串里显式(刻意)指定字符串编码方式,如L"这就是Unicode编码字符串",因为左边有一