不過若是你們使用 utf-8 編碼來編寫網頁的時候, 每每會由於 bom (Byte Order Mark) 的問題,致使網頁中常常出現一些不明的空行或者亂碼字符。 這些都是由於 utf-8 編碼方式對於 bom 不是強制的。所以 utf-8 編碼在保存文件的時候,會出現不一樣的處理方式。php
好比有的瀏覽器(FireFox)能夠自動過濾掉全部 utf-8 bom , 有的 (IE) 只能過濾掉一次 bom (爲何是一次? 當你出現 Include 屢次文件時就會碰上這個問題了:) );html
對此 w3.org 標準 FAQ 中對此問題有一個專門的描述:web
http://www.w3.org/International/questions/qa-utf8-bomwindows
在此我的認爲對於這個問題最好的處理方式就是在編輯(保存)文件的時候統一去除 utf-8 bom , 同時又必須使得編輯器能夠正確讀出 utf-8 字符集,但惋惜目前 windows 系統中對於保存文件的處理方式缺省情款下都會自動加上 bom.瀏覽器
(經過抓包工具分析, google 中文頁面統一使用 utf-8 編碼方式,下載的頁面中沒有帶有 bom 標識)服務器
操做系統: WindowsXP Professional , 缺省字符集:中文網絡
1) notepad : 能夠自動識別出沒有帶 bom 的 utf-8 編碼格式文件,但不能夠控制保存文件時是否添加 bom , 若是保存文件,那麼會統一添加 bom 。編輯器
2)editplus : 不能自動識別出沒有 bom 的 utf-8 編碼格式文件,保存文件爲 utf-8 時會自動添加 bom工具
3) UltraEdit : 對於字符編碼的功能最爲強大, 能夠自動識別帶 bom 和不帶 bom 的 utf-8 文件 (能夠配置) ; 保存的時候能夠經過配置選擇是否添加 bom.網站
(特別須要注意的是,保存一個新創建的文件時,須要選擇另存爲 utf-8 no bom 格式)
後來發現 Notepad ++ 也對於 utf-8 bom 支持比較好,推薦你們使用。
第二個:設置不顯示Notice
首先,這個不是錯誤,是warning。因此若是服務器不能改,每一個變量使用前應當先定義。
方法1:服務器配置修改
修改php.ini配置文件,error_reporting = E_ALL & ~E_NOTICE
方法2:對變量進行初始化,規範書寫(比較煩瑣,由於有大量的變量)。但尚未找到好定義方法,望你們指教
方法3:每一個文件頭部加上:error_reporting(0); 若是不行,只有打開php.ini,找到display_errors,設置爲display_errors = Off。之後任何錯誤都不會提示。
總結:
如果有bom就是用第二個設置了不顯示Notice也會出現樣式亂的狀況,因此最根本的仍是解決掉bom