bom檔案是啥意思

1.什麼是BOM

BOM是用來判斷文字檔案是哪一種Unicode編碼的標記,其本身是一個Unicode字元("/uFEFF"),位於文字檔案頭部。

在不同的Unicode編碼中,對應的bom的二進位制位元組如下:

FE FF UTF16BE
       FF FE UTF16LE
       EF BB BF UTF8

所以我們可以根據檔案頭部的幾個位元組和上面的表格對應來判斷該檔案是哪種編碼形式。


2.存在的問題

雖然BOM字元起到了標記檔案編碼的作用但是他並不屬於檔案的內容部分,所以會產生一些問題:

1.在某些使用場景下就會有問題。例如我們把幾個JS檔案合併成一個檔案後,如果檔案中間含有BOM字元,就會導致瀏覽器JS語法錯誤。

2.PHP就不能識別bom頭,PHP並不會忽略BOM,所以在讀取、包含或者引用這些檔案時,會把BOM作為該檔案開頭正文的一部分。根據嵌入式語言的特點,這串字元將被直接執行(顯示)出來。由此造成即使頁面的top padding 設定為0,也無法讓整個網頁緊貼瀏覽器頂部,因為在html一開頭有這3個字元呢!


3. 如何去掉UTF8編碼的記事本檔案的BOM頭

使用notepad 的時候選擇設定無BOM頭的UTF8編碼