VC++ warning C4819 的解决方法

在使用Visual Studio生成程序时,出现如下警告: warning C4819:The file contains a character that cannot be represented in the current codepage (936). Save the file in Unicode format to prevent data loss(该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失) 由于不影响程序的生成,当初并未在意。后来为了让编译无警告,查了下造成该警告的原因:   报警原因: 警告主体是一个文件,其内容中包含了代码页(936)中没有的字符。也就是说,这个字符使用的编码在GBK编码中未定义。 需要注意的是,该警告与代码本身无关,出现问题的位置多见于Boost等非中文程序库源代码的注释中。

警告影响: 在调试程序时,程序无法停在断点处。   解决方案: 解决办法有两个,一是另存文件,可以快速消除警告。二是修改相关字符,适合非法字符少的情况。 一、解决方案一: 1、在Visual Studio打开引起报警的文件。 2、选择菜单FILE(文件)->Advanced Save Options(高级保存选项)。 3、选择“Unicode(UTF-8 with signature(带签名))-Codepage(代码页)65001”或者“Unicode-Codepage(代码页)1200”后确定,即可。 也可以使用其它编辑器进行类似的编码转换,甚至记事本另存一下就可以解决。   二、解决方案二: 1、在Visual Studio打开引起报警的文件。 2、使用快捷键Ctrl+Shift+F或选择菜单EDIT(编辑)->Find and Replace(查找和替换) ->Find in Files(在文件中查找)。 3、在Find what(查找内容)中输入正则表达式“[^\x00-\x7F]”,并勾选Find options(查找选项)中的Use Regular Expressions(使用正则表达式)来查找非法字符。 4、修改或去掉所有非法字符。 不过如果文件中存在汉字,会干扰查找的结果,所以这个方法比较适合处理非中文的源代码。 使用有正则表达式查找功能的其它编辑器也可以进行类似的工作。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值