爲www.besaltnlight.ca validator.w3.org報告:有效validator.w3.org報告標記錯誤 - 檢測字符編碼 「UTF-8」
字符編碼改寫! 檢測到的字符編碼「utf-8」已被抑制,而使用「iso-8859-1」。
php代碼輸出iso-8859-1和php將其設置爲默認字符集。
是什麼導致了這個問題?我使用了錯誤的文檔類型?
哦,並會在IE中引起怪癖模式的任何?
感謝您的幫助。
格里
爲www.besaltnlight.ca validator.w3.org報告:有效validator.w3.org報告標記錯誤 - 檢測字符編碼 「UTF-8」
字符編碼改寫! 檢測到的字符編碼「utf-8」已被抑制,而使用「iso-8859-1」。
php代碼輸出iso-8859-1和php將其設置爲默認字符集。
是什麼導致了這個問題?我使用了錯誤的文檔類型?
哦,並會在IE中引起怪癖模式的任何?
感謝您的幫助。
格里
該文檔以UTF-8編碼。它有一個字節順序標記,智能引號和省略號,所有編碼都以UTF-8正確編碼。它始於兩個字節順序標記,這是無效的。您必須刪除一個,並且驗證程序還說,在UTF-8文檔中出現BOM可能會造成混淆,因此您可以將它們都刪除。
既然你輸出UTF-8,您必須將HTTP標頭更改爲:
Content-type: text/html; charset=utf-8
因爲你缺少這個頭,你強制瀏覽器猜測。另外,由於相同的原因,中間標籤必須更改爲
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
。
您的輸出以Unicode字節順序標記開始,以UTF-8編碼。
這可能是PHP文件的第一部分字節,或者是主文件包含的任何PHP文件。你的編輯甚至可能不會顯示它們。解釋爲ISO-8859-1輸出的開始看起來像<!DOCTYPE html
,它們甚至是兩個字節順序標記,一個接一個。
正如jleedev所說,要麼確保你的文件真的用Latin-1編碼,要麼把編碼聲明爲UTF-8。
ŭlo:我不輸出任何utf BOM。驗證器正確地說一些舊的瀏覽器不支持它,所以我試圖將所有輸出都作爲ISO-8859-1 ... – Gerry 2011-06-13 02:46:13
然後使用另一個編輯器,它不會自動將BOM添加到正在編輯的PHP文件中 - 以及配置你的編輯器保存爲拉丁文1(ISO-8859-1)。 (這可能是這個BOM是在你包含的庫文件之一中。) – 2011-06-13 11:10:28
我曾經有過,它強制IE7進入怪癖模式... – Gerry 2011-06-13 02:43:34