今天在用notepad++寫代碼時 載入一個frameset架構模版後 在頁面上一直不顯示該頁面,查看源碼後都正常。然後索性把裡面東西全刪掉 隨便寫了幾個測試文字可以正常顯示。
折騰了好長時間,最後偶然看見了有兩個控制模版的PHP檔案不一樣 一個是以UTF-8無BOM編碼另一個是UTF-8格式編碼,試著就把那個UTF-8格式的改成了UTF-8無BOM格式了。然後儲存,開啟firefox,之前不顯示的frameset模版居然顯示了。然後又在chrome下試了試 還是不顯示,然後就想到了是不是還有其他PHP檔案的格式沒有轉成無BOM格式。查了下把所有的凡是UTF-8的都改成了UTF-8無BOM格式 儲存後chrome也可以正常顯示了。終於鬆了一口氣。
之前一直對UTF-8和UTF-8無BOM這格式沒太在意。所以就百度查了下他們到底有什麼區別。大致如下:
UTF-8 編碼的檔案可以分為 no BOM 和 BOM 兩種格式。
何謂BOM? "EF BB BF" 這三個位元組就叫BOM,BOM的全稱叫做"Byte Order Mard"。在utf-8檔案中常用BOM來表明這個檔案是UTF-8檔案,而BOM的本意實在utf16中用來表示高低位元組序列的。在位元組流之前有 BOM表示採用低位元組序列(低位元組在前面),而utf8不用考慮位元組序列,所以其實有無BOM都可以。UTF-8以位元組為編碼單元,沒有位元組序的問題。 UTF-16以兩個位元組為編碼單元,在解釋一個UTF-16文本前,首先要弄清楚每個編碼單元的位元組序。例如收到一個“奎”的Unicode編碼是 594E,“乙”的Unicode編碼是4E59。如果我們收到UTF-16位元組流“594E”,那麼這是 “奎”還是“乙”?
如果檔案保 存時,選擇了使用 BOM,會使頁面顯示不正常。一般來說,php是不支援有BOM的,php檔案應該儲存為UTF-8無BOM類型
所以在儲存 UTF8 編碼PHP檔案時,不要使用 BOM。
http://www.bkjia.com/PHPjc/819539.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/819539.htmlTechArticle今天在用notepad++寫代碼時載入一個frameset架構模版後在頁面上一直不顯示該頁面,查看源碼後都正常。然後索性把裡面東西全刪掉隨便寫了...