景山小窝

  • 首页
  • WOW
  • 奇趣事
  • 手机控
  • 计算机
    • 好软件
    • 路由器
  • 黑苹果
  • 算号器
你若安好,便是晴天。
生气是拿别人的错误惩罚自己。
  1. 首页
  2. 计算机
  3. 正文

VS2017 输出中文时候乱码 vs2017 c语言输出中文乱码 解决办法

2019-01-01 695点热度 0人点赞 0条评论

在VS2017新建的C/C++控制台程序显示的中文竟然是乱码,效果图如下:

VS2017控制台程序显示中文为乱码的问题解决办法

出现乱码,必然是编码问题。而编码问题就要考虑到多方面的因素,大致分为:文件编码、代码编码、输出结果显示的编码。我们只要以此来检查这三部分,就可以找到乱码的原因。而要想不出现乱码,那么这三部分都需要正确,其中一部分的编码并没有对错之分,编码和解码一致才是正确的。

1.文件编码

将cpp文件使用Notepad++软件打开,然后底部状态栏的右边可以看到当前文件的编码。我们可以看到,我们在VS2017里创建的cpp文件,是UTF-8编码。

2.代码编码

代码编码指的是在VS项目中,我们在项目属性里指定的字符集,如下图所示:

VS2017控制台程序显示中文为乱码的问题解决办法

我们可以看到,VS项目里使用的字符集是Unicode编码。这个编码是对代码中出现的字符串默认使用的编码。所以你看到标题上是项目默认值。如果你在字符串里显式(刻意)指定字符串编码方式,如L"这就是Unicode编码字符串",因为左边有一个大写的字母L。或者使用printf这样的ASCII版本字符串的函数,就只能是ASCII编码。我们一般说的是ANSI编码,ANSI编码就做内码,意思是系统内部使用的编码,会自动将你这些字符串编码为系统默认使用的字符集,我们一般都是GB2312,因为我们是中国。如果我们直接说是ASCII编码,也就是VS2017里对应的多字节字符集。

如果你在代码中直接写双引号,然后也不管字符集这些,再没有特地指定编码的函数里,系统会自动使用默认的编码字符集来编码字符串,也就是你上面看到的项目属性里的【使用Unicode字符集】。

如果我们直接创建一个项目,然后输入中文,然后就显示了乱码。自然这个和代码的编码无关。不管你用哪种字符集,都会出现乱码。代码编码乱码一般出现在字符编码转换时出现。

3.显示编码(解码)

当控制台程序运行的时候,结果输出在控制台黑窗口中。此时我们才看得到输出的结果。如果确定控制台显示使用的编码呢?我们启动控制台程序,然后在控制台的标题栏里右击,选择“属性”,如下图:

VS2017控制台程序显示中文为乱码的问题解决办法

然后弹出一个对话框,如下图所示:

VS2017控制台程序显示中文为乱码的问题解决办法

可以看到,控制台使用的是GBK编码,即GB2312编码。找了一下,控制台这里没有修改显示编码的地方。

检查一遍我们发现,文件编码是UTF-8,代码编码不影响,显示时解码用的是GBK编码。也就是说,存储到文件的字符是UTF-8编码,而我们控制台显示的编码是GBK,自然就是编码不对应,产生了乱码。

解码的办法就是让保存文件的编码和显示的编码一致即可。前面发现控制台编码不能直接在属性里修改,修改起来不方便。那么我们来改变文件的编码咯。

我们可以用Notepad++软件将cpp文件的编码修改为ASCII即可,这样就对应到了GBK编码。这样就没有乱码了。当然,VS里也有修改文件编码的功能。在VS2010等VS版本里,在文件菜单下,选中了文件之后,就可以看到高级保存选项,这里就可以修改文件的编码。然而在VS2017却故意去掉了,需要我们额外找出来。

在“工具”->“自定义”->“命令”界面中,如下图所示:

VS2017控制台程序显示中文为乱码的问题解决办法

我们点击“保存选定项”,然后点击“添加命令”,弹出如下界面:

VS2017控制台程序显示中文为乱码的问题解决办法

我们在左边选择“文件”,然后在右边选择“高级保存选项(V)...”,确定即可。添加后是这样的:

VS2017控制台程序显示中文为乱码的问题解决办法

VS2017控制台程序显示中文为乱码的问题解决办法

我们发现,文件菜单下的“高级保存选项”就出来了。我们可以用这个菜单项来修改代码文件的编码了,而不需要借助第三方编辑器了。我们打开我们要修改的cpp文件,然后点击“高级保存选项”,弹出如下界面:

VS2017控制台程序显示中文为乱码的问题解决办法

开始时显示的是Unicode编码,我们这里已经改为了GB2312编码了。然后确定即可。

此时我们再编译代码,然后没有乱码了。如下图所示:

VS2017控制台程序显示中文为乱码的问题解决办法

文章标题:VS2017控制台程序显示中文为乱码的问题解决办法
文章地址:http://www.cjjjs.com/article/2017105195331208
本作品采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可
标签: 暂无
最后更新:2019-03-04

codeidc

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

文章评论

您需要 登录 之后才可以评论

codeidc

这个人很懒,什么都没留下

分类
  • WOW
  • 奇趣事
  • 好软件
  • 手机控
  • 未分类
  • 计算机
  • 路由器
  • 黑苹果
归档
  • 2023年2月
  • 2023年1月
  • 2022年11月
  • 2022年4月
  • 2022年3月
  • 2021年11月
  • 2021年10月
  • 2021年1月
  • 2019年6月
  • 2019年5月
  • 2019年4月
  • 2019年3月
  • 2019年1月
  • 2018年12月
  • 2018年11月
  • 2018年10月
  • 2018年9月
  • 2018年8月
  • 2018年6月
  • 2018年5月
  • 2018年4月
  • 2018年3月
  • 2018年2月
  • 2018年1月
  • 2017年12月

COPYRIGHT © 2021 codeidc.com. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

豫ICP备2021031502号