1. 程式人生 > >VS2013 2015 2017 新建預設UTF-8檔案

VS2013 2015 2017 新建預設UTF-8檔案

1、擴充套件更新中下載

ForceUTF8

2、設定後重啟VS即可


補充一些知識點

至於上面UTF-8 with BOM 和 UTF-8 no BOM

總結

以下是一些經典語錄:

  • HTML有charset屬性,XML有encoding屬性,沒必要拉BOM撐場面

  • UTF-16這種編碼連ASCII都雙位元組,實在不適用於做網頁

  • 通常BOM是用來標示Unicode純文字位元組流的,讓文字處理程式識別txt檔案是哪個Unicode編碼(UTF-8,UTF-16BE,UTF-16LE)

  • Windows相對對BOM處理比較好, 開啟文字檔案時它會自動識別並剔除BOM.

  • Windows的設計者希望能在使用者不注意的情況下同時相容Unicode和非Unicode(Multiple byte)文字檔案.

  • Linux一步到位進入UTF-8, 過渡期至少經歷了三到四年.

  • BOM不受歡迎主要是在UNIX環境下,因為很多UNIX程式不鳥BOM。因為BOM本身違反了一個UNIX設計的常見原則,就是文件中存在的資料必須可見。

  • UNIX環境下我們還有VIM這種神器,即使遇到BOM擋道,我們也可以通過 set nobomb; set fileencoding=utf8; w 三條命令解決問題。

  • 似乎也真就只有Windows堅持用BOM了。

  • UTF-8不需要BOM, 所以不含BOM的UTF-8才是標準形式.

  • 微軟在 UTF-8 中使用 BOM 是因為這樣可以把 UTF-8 和 ASCII 等編碼明確區分開

  • UTF-8 的網頁程式碼不應使用 BOM,否則常常會出錯

  • 寫C++程式碼建議程式要在windows 和 mac 還有linux 上執行的話,原始碼最好儲存成utf-8 帶bom的格式,這樣比較通用一些。而用utf-16 無論大端還是小端,g++ 都不認的。或者用utf-8 不帶bom格式,然後程式碼不要出現非ascii 127以後的字元。

  • 帶用bom的utf-8也是符合國際標準的

  • 微軟在堅持使用bom上沒有錯,因為這是在為使用者考慮的。也許給我們這些寫程式的帶來了不便,但是,計算機最廣泛的使用者不是程式設計師。

  • 帶頭的鵝和去頭的鵝,有些編輯器比較傻會把去頭的鵝認成鴨子

  • 以UTF-8格式編碼, 從notepad++ --> Mongodb裡面複製東西的時候,莫名其妙多了不少的位元組數。如果不安裝notepad++,使用預設的記事本,那就更是個坑,預設有bom,你還無法選擇。

  • 就是因為這個bom,CSV匯入mongodb時,第一個欄位總是不正常,直接導致用第一個欄位作為條件find時,出不了結果!

  • utf8對ascii的相容確實是它的好,但是這個優點在某些時候恰恰成了隱藏問題的缺點。因此bom大法好,加bom保平安.

  • 為什麼windows的記事本要強行給utf8加bom的原因——為了相容舊系統的編碼問題,unix陣營放棄帶bom的utf8——為了讓它們的上古程式能繼續執行下去,這個各自有自己利益訴求的差異決定其實並不對錯


測試:

如果開啟以前寫有中文的cpp檔案