由于语言不同特别是源文件编辑器的语言不同,中文环境下编译时会在被引用的 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 却是当前代码页的回车了。真心祝愿碰到同样问题的朋友能够耳根清静。