在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 可以試試,如果你沒有更好的工具的話。
UTF 8有簽名和無簽名的區別
當有簽名的utf 8編碼內容被解析器解析時,解析器直接根據簽名即可判斷出使用utf 8編碼來進行解析,當無簽名時,解析器會根據內容的編碼來進行判別。所以,有簽名的將更容易被解析器以正確的編碼方式進行解析。有簽名也就是帶 bom 資訊,無簽名就是不帶 bom。bom,即 byte order mark...
帶BOM的UTF 8和無BOM 的UTF 8的區別
utf 8 不需要 bom,儘管 unicode 標準允許在 utf 8 中使用 bom。所以不含 bom 的 utf 8 才是標準形式,在 utf 8 檔案中放置 bom 主要是微軟的習慣 順便提一下 把 utf 16 le 稱作 unicode 而又不詳細說明,這也是微軟的習慣 bom byte...
utf8 和 UTF 8 在使用中的區別
在使用中常常遇到utf 8和utf8,現在終於弄明白他們的使用不同之處了,現在來和大家分享一下,下面我們看一下utf8 和 utf 8 有什麼區別 utf 8 是標準寫法,php在windows下邊英文不區分大小寫,所以也可以寫成 utf 8 utf 8 也可以把中間的 省略,寫成 utf8 一般程...