1. 程式人生 > >《 warning C4819: 該檔案包含不能在當前內碼表(936)中表示的字元。請將該檔案儲存為 Unicode 格式以防止資料丟失》

《 warning C4819: 該檔案包含不能在當前內碼表(936)中表示的字元。請將該檔案儲存為 Unicode 格式以防止資料丟失》

問題描述

最近專案中添加了很多外部的.h和.cpp檔案,有可能是編碼格式不一樣,在生成解決方案時,輸出窗口出現了好多的warning C4819警告資訊,具體情況如下所示:

warning C4819: 該檔案包含不能在當前內碼表(936)中表示的字元。
請將該檔案儲存為 Unicode 格式以防止資料丟失

 

解決方法

1、選中警告資訊,雙擊滑鼠左鍵進入到報錯程式碼檔案,一般都是cpp檔案,選中檔名稱,然後點選左上角的檔案,選擇高階儲存選項,然後進入高階儲存選項頁面。

2、 進入高階儲存選項頁面以後,此時我的編碼格式為Unicode (UTF-8 無簽名) -內碼表 65001

,因為我這裡使用的是Unicode編碼格式,所以選擇Unicode (UTF-8 帶簽名) -內碼表 65001,注意這裡的無簽名和帶簽名是有區別的。帶BOM(簽名)的UTF-8文字檔案與不帶BOM的UTF-8文字檔案的區別在於:前者在檔案的開頭有3個位元組 EF BB BF。帶簽名即檔案頭含BOM資訊,不帶則沒有。帶了的好處是,只要支援多編碼的編輯器都能正確識別出文件編碼。不帶的話,就不一定了,就有可能識別錯別。總之,這個BOM資訊也就那麼三位元組,沒必要省這麼一點點空間,要用UFT-8就選帶簽名,這樣就不會錯了。