VS2017修改编码格式为utf-8,再也不用担心乱码了
VS2017修改编码格式为utf-8,再也不用担心乱码了
对于国内用户来说,大多设置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系统控制台
的编码格式。