warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失

persistence.hpp : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失

utility.hpp : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失

平台:win10 64位,visual studio 2017 64位

最近在使用vs2017时老是遇见warning C4819警告,在网上也查到了一些方法http://www.cnblogs.com/xsgame/p/3461803.html,如下:

以前在LINUX下写的跨平台库,考到VS2017下后 提示这个,原因是换行符。


------解决方案--------------------
一般来说,这个警告没有什么影响。要想去掉这个警告的方法有:
 
(1)转换Code文件为Unicode格式;
 
(2)在Project -> Properties -> Configuration Properties -> C/C++ -> Advance 的 Disable Specific Warnings 中添加相应的警告编号:4819;
 
(3)或找出不符合Unicode格式的文件,然后在该文件的开始处加入下面的语句:
 
        # pragma warning (disable:4819)
 
(4)哪个文件出现这个警告错误,打开它, 用VS2017的查找替换功能,打开允许正则表达式选项,选择当前窗口,查找替换 \n 为 \n ,  然后,就可以了。原因: 查找的 \n 是跨平台的回车,替换的 \n 却是当前代码页的回车了。 
------解决方案--------------------
换行符的问题。 
------解决方案--------------------
有时是空白符的问题,全部删去,再选定整个文件,重新设置格式。 
------解决方案--------------------
这个警告最好不要禁止,因为出现这个警告的文件,就会无法设置断点...

(1)转换Code文件为Unicode格式;
 
(2)哪个文件出现这个警告错误,打开它,按Ctrl+A 全选代码,选择菜单的 “编辑→高级→设定选定内容的格式”,然后保存;再用VS20XX的查找替换功能,打开允许正则表达式选项,选择当前窗口,查找替换 \n 为 \n , 然后,这个世界就清净了。原因: 查找的 \n 是跨平台的回车,替换的 \n 却是当前代码页的回车了。


%%%%%%%%%%我的解决方案%%%%%%%%%%

(2)种在属性页面里添加警告编号:4819的方法试过,有效,但是此为禁止警告的方法;

(3)种在对应文件的开始处添加语句 # pragma warning (disable:4819)额方法试过,有时有效,有时没效,并且这也是禁止警告的方法

(4)种查找替换\n的方法试过,没效,也可能是我的操作不当,这是重新设置格式的方法

后来我都是采用的第(1)种方法这也是重新设置格式的方法,具体操作如下:

1,双击警告的信息,弹出警告信息所对应的文件

2,把对应的文件另存为,会弹出另存为对话框,然后点击  保存  按钮右边的下三角,会弹出下拉菜单,有保存和编码保存两个选项,再点击编码保存。(注:有时在另存为时,文件名的最后多三个默认的字符:空格、点和星号(即 .*),如下图红色箭头所指向的,此时在另存为的时候一定要删除这三个默认字符,文件名一定要和原来的文件名相同)


3,点击编码保存后,会出现确定另存为对话框如下图所示,再点击按钮


4,接着会弹出高级保存选项,如下图所示,在编码菜单中选择要保存的编码:Unicode(UTF-8 带签名)- 代码页65001,然后点击确定即可。(注:还有一个不带签名的Unicode(UTF-8 无签名)- 代码页65001,两者是不同的,如果保存的是后者,编译时仍然会提示 warning C4819,一定要注意区分


  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值