在VS中,使用高級保存選項功能的時候,我們將會發現UTF8有兩種格式,一個是帶簽名的UTF8,一個是無簽名的UTF8。
那么這兩種的格式有什么區別呢?
帶簽名的UTF8:
帶簽名的UTF8,是在生成的文件中,在文件的開頭使用UTF8標志,這樣在下次使用編輯器編輯的時候,編輯器能準確的識別當前文件的編碼格式,并做正確的解碼。
無簽名的UTF8:
相反,無簽名的UTF8是在保存的時候,不再文件頭部寫入文件的編碼格式。
那么文件編碼需要消耗多少空間呢? —— 答案是3個字節。
因此,在一般使用過程中,我們建議使用帶簽名的UTF8格式來保存文件。在硬盤如此廉價的今天,你不會省這3個字節吧?
=====================分割線=========================
補圖:

=====================分割線=========================
再次補充,關于BOM的處理,此文還是有些欠考慮,但是只是非常簡單的想處理掉手中出現的問題,并記錄解決方案。這里謝謝choury的嚴謹提醒。
BOM(BYTE ORDER MARK)只是文件的一個可選項,有很多軟件并未提供對BOM的支持,因此此類軟件如果打開含有BOM數據的文件時,會將此數據作為數據內容本身進行處理。如果在程序中,可能會作為程序內容來解析,這樣有些程序在遷移的時候就會出現問題。在涉及到程序多處多平臺遷移的時候,一般建議慎重考慮是否啟用帶簽名的UTF8 格式。那么如何確定自己的文件UTF-8格式是帶BOM的呢?
最簡單的方法就是用二進制查看文件,看文件起始是否是EF BB BF;其次,也可以用DW看看是否是包含簽名BOM的。
如果你不想使用帶簽名BOM格式的UTF8文件格式保存文件,你可以將文件在二進制下用可見字符替換掉起始的三個字節,而后在普通的文本編輯中刪除該可見字符即可。 —— UltraEdit32 可以試試,如果你沒有更好的工具的話。