昨天主管讓我把VS項目里的warning給清理下,結(jié)果發(fā)現(xiàn)幾個這樣的warning:
warning C4819: 該文件包含不能在當(dāng)前代碼頁(936)中表示的字符。請將該文件保存為 Unicode 格式以防止數(shù)據(jù)丟失
剛用VS不久的我就在網(wǎng)上搜尋各種解決方案,結(jié)果都不好使,比如好多網(wǎng)友說:
(1)轉(zhuǎn)換Code文件為Unicode格式;
(2)在Project -> Properties -> Configuration Properties -> C/C++ -> Advance 的 Disable Specific Warnings 中添加相應(yīng)的警告編號:4819;
(3)或找出不符合Unicode格式的文件,然后在該文件的開始處加入下面的語句:
# pragma warning (disable:4819)
(4)哪個文件出現(xiàn)這個警告錯誤,打開它, 用VS2010的查找替換功能,打開允許正則表達(dá)式選項,選擇當(dāng)前窗口,查找替換 \n 為 \n , 然后,這個世界就清凈了。原因: 查找的 \n 是跨平臺的回車,替換的 \n 卻是當(dāng)前代碼頁的回車了。
(1)沒有試過,(2)(3)也沒試過,因為即便解決了warning,也是治標(biāo)不治本,對于(4)我試了好多遍結(jié)果都是枉然~;
今天早上來到公司,繼續(xù)尋找解決方案,經(jīng)過其他網(wǎng)友提示,開始自己摸索著調(diào)試了,功夫不負(fù)有心人,最終問題被我解決了,下面是我的解決方案,給大家呈上(我用的是VS2010):
首先打開有該warning的文件,點擊【文件】選【高級保存選項】,顯示如下,或是其他別的編碼格式,
現(xiàn)在開始改變編碼格式為【簡體中文(GB2312)- 代碼頁936】或【Unicode】,總之是適合自己的編碼格式
點擊【確定】后保存,重新編譯,warning消失。
到這里相信問題已經(jīng)解決,祝君好運!