1. 程式人生 > >轉為utf8編碼的正確姿勢

轉為utf8編碼的正確姿勢

最近發現專案裡面有的檔案eclipse開啟為亂碼,顯然這是由於有的同事不小心把GBK編碼的檔案提交到SVN。
強迫症發作,全部改為utf-8,使用的工具是Notepad++。結果是悲劇,提交程式碼之後,部署時編譯報錯,整整
停了2個小時測試環境才恢復。雖然是極其簡單的事,我覺得還是有必要記錄下來,希望大家不要掉入同一個坑。

專案請用utf8編碼

專案請用utf8編碼,專案請用utf8編碼,專案請用utf8編碼,重要的事情說三遍。IDE設定預設的編碼為utf8。所有的開發人員都要遵守。這樣,就避免了坑。

轉為utf8編碼的正確姿勢

萬一有需要轉為utf8,如下步驟:
1. 請使用Notepad++開啟檔案
2. 選擇“格式”選單 -> 選擇“轉為 UTF-8 無 BOM 編碼格式”
3. 儲存檔案

Notepad++截圖

筆者在開始在步驟2選擇的是“轉為 UTF-8 編碼格式”,引發悲劇。

BOM到底是什麼鬼?

BOM全稱Byte order mark,就是指定byte的編排順序。byte編排有先大,先小兩個型別。
BOM放在文字檔案的開頭。BOM有以下三個作用:

  1. 指定byte的編排順序。
  2. 說明文字是unicode字符集。
  3. 具體指明是UTF-8,還是UTF-16,異或UTF-32。BOM對應的值不同。

UTF-8編碼下,BOM為0xEF0xBB0xBF,沒有什麼意義,官方不推薦使用。一個文字讀取程式如果不支援UTF-8的BOM或者讀取出來是,那麼編譯程式就掛。丟棄UTF-8的BOM就正常(eclipse貌似就是這樣)。所以UTF-8下不要用BOM

,一個可能引起錯誤的存在而已。

UTF-16和UTF-32下BOM是必須有的,不太一樣,不常用,所以不扒。

參考連結