程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> UTF-8 BOM對PHP的影響

UTF-8 BOM對PHP的影響

編輯:關於PHP編程

今天在用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。

 

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved