对于国内用户来说,大多设置Windows操作系统语言为简体中文(编码为GBK或GB2312),由此导致Visual Studio 2017默认采用GBK/GB2312编码格式,其创建的项目文件(.cpp, .h等)都采用GBK/GB2312编码,可能会给代码的移植性带来一点阻碍(主要是中文乱码),笔者就经常用VS运行github等的项目然后出现如下警告或者乱码:
warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
在此,建议统一使用UTF-8(无bom)编码格式,那么具体要怎么修改呢?请看下文几种方法(视情况择一即可)。
- 最简单的好像是修改操作系统默认语言为英语(English)(笔者没尝试),英语不错或者想锻炼英语能力的小伙伴可以试试(仅供参考)
-
使用VS2017的“高级保存选项”
由于这个选项在vs2017中是默认隐藏的,需要手动调出来。具体操作方法如下:
1、单击“工具”➡“自定义”,弹出“自定义”对话框。
2、单击“命令”标签➡进入“命令”选项卡。
3、“菜单栏”下拉列表➡选择“文件”选项。
4、单击“添加命令”➡弹出“添加命令”对话框。
5、在“类别”列表中,选择“文件”选项;在“命令”列表中,选择“高级保存选项”选项。
6、单击“确定”按钮,关闭“添加命令”对话框。
7、选中“控件”列表中的“高级保存选项”选项,单击“上移”或者“下移”按钮,可以调整该命令的位置。
8、单击“关闭”按钮,完成“高级保存选项”命令的添加操作然后选中高级保存选项,弹出的对话框可以选择编码utf-8
-
使用ForceUTF8插件
工具➡拓展和更新➡联机➡搜索框输入“ForceUTF8”➡下载安装
安装此插件后,所有文件均会以utf-8编码格式保存,方便省心。
最后非常重要的一步,那就是指定使用utf-8编译!
选中当前项目——右键属性——配置属性——C/C++——命令行——输入/utf-8
只有完成这一步,warning信息才会真正消失。
然而,改完后我又发现了一个新问题,那就是vs2017的控制台也是默认使用GB2313编码的,所以控制台又乱码了→_→(我太难了)…
ps:查看控制台所用编码的方法:点击控制台标题栏左上角–>属性–>选项–>找到当前代码页能看到编码格式。
所以又需要更改vs2017控制台的编码格式为utf-8,方法如下:
1.按下win(windows键)+R,输入regedit然后回车进入到注册表编辑器(温馨提示:修改注册表有风险,操作前建议先备份)
2.找到 计算机\HKEY_CURRENT_USER\Console
3.寻找有vs、console等字符串的相关项
在我这里是第三项 C:_Program Files (x86)_Microsoft Visual Studio_2017_Professional_Common7_IDE_CommonExtensions_Platform_Debugger_VsDebugConsole.exe,不同电脑这里显示的名称可能不一样,不过没关系,只要是vs的控制台就行。
4.修改CodePage值
选中右边栏CodePage,右键将其值936(该值对应GB2312)修改其值为65001(该值对应的就是utf-8编码),上图我已经更改过了。
修改完后,用vs编译运行C++就不会出现控制台乱码了。
ps:以上方法也同样适合更改windows系统控制台的编码格式。
以上就是本文的全部内容了,如果有帮助的话,不妨点个赞吖~
我是夏虫爱语冰,转载请注明本文链接:https://blog.csdn.net/Love_Point/article/details/105658241,注意百度和各类采集站皆不可信,搜索时请谨慎甄别。同时由于文章一般都有时效性,本人可能会不定期对自己的博文进行修正和更新,因此敬请访问出处以查看最新版本。