visual studio2005 程序调试消除常见的C++编译器警告 warning C4819

【转帖】visual studio2005 程序调试消除常见的C++编译器警告 warning C4819

由于语言不同特别是源文件编辑器的语言不同,中文环境下编译时会在被引用的 directX 的包含文件中出现非法的回车等空白符号,导致经常出现如下告警:
warning C4819: The file contains a character that cannot be represented in the current code page (936). Save the file in Unicode format to prevent data loss.
warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
在网上搜来搜去,没有找到满意的答案。最后只好采取了一个笨办法,在此共享如下:
用VS2005的查找替换功能,打开允许正则表达式选项(Regular expressions),在VC++包含文件夹下,查找替换 /n 为 /n。
这个办法耗时很长,不过可以扔到一边让它运行一整晚,如果目标明确,也可以指定某个目录或者某个文件进行,时间就节约很多了。
其实查找的 /n 是跨平台的回车,替换的 /n 却是当前代码页的回车了。真心祝愿碰到同样问题的朋友能够耳根清静。

补充下,您看的没有错,两个/n在输入的时候,是一样的,照着上边说的做,顽固的C4819就会得到解决。其实这个问题很讨厌,并不仅仅是清净与否的问题,当某一个cpp文件在编译的时候,碰到了C4819,那一般就意味着,这个cpp文件将不再可以运行时调试了!因为编译器会在调试的时候,识别不出来这个cpp文件。

再次补充,导致未知字符的原因其实还有下边的情况:文件中包含大量的全角的标点符号,这种全角的符号就会导致vc2005经常报不可识别的字符。比如: 【,】->【,】【。】->【.】【;】->【;】推荐代码中的注释尽量避免中文,就算写中文,一定要用英文标点。碰到未知字符的文件,建议把全角符号全部替换成半角,有帮助

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值