一、檢查HTML頁面轉UTF-8編碼問題
1、在head後,title前加入一行:
<meta http-equiv='Content-Type' content='text/html; charset=utf-8' />
#順序不能錯,一定要在head後,title前。
2、html檔案編碼問題:
點擊編輯器的選單:“檔案”->“另存為”,可以看到目前檔案的編碼,確保檔案編碼為:UTF -8, 如果是ANSI,需要將編碼改成:UTF-8。
3、HTML檔案頭BOM問題:
將檔案從其他的編碼轉換成UTF-8編碼時,有時會在檔案的最開始加上一個BOM標籤, 在個BOM標籤可能會導致瀏覽器在顯示中文的時候出現亂碼。
刪除這個BOM標籤的方法:
#1、可以用Dreamweaver開啟文件,並重新儲存,也就是可以移除BOM標籤!
2、可用EditPlus開啟文件,並在選單「偏好設定」->「檔案」->"UTF-8標誌",設定為:「總是刪除簽章」, 然後儲存文件,即可以去除BOM標籤!
3、WEB伺服器UTF-8編碼問題:
如果你按以上所列的步驟做了,還是有中文亂碼問題, 請檢查你的所使用的WEB伺服器的編碼問題;如果你使用的是Apache,請將設定檔裡的:charset 設為:utf-8(這裡僅列出方法,具體格式請參考apache的設定檔);如果你使用的是Nginx,請將nginx .conf裡的:charset 設為utf-8,具體找到"charset gb2312;"或類似的語句,改成:「charset utf-8;」。
二、PHP頁轉UTF-8編碼問題
#1、在程式碼開始出加入一行:
header("Content-Type: text/html;charset=utf-8");
2、PHP文件編碼問題:
點擊編輯器的選單:“文件”->“另存為”,可以看到當前文件的編碼,確保文件編碼為:UTF-8, 如果是ANSI,需要將編碼改成:UTF-8。
3、PHP檔案頭BOM問題:
PHP檔案一定不可以有BOM標籤,否則,會出現session不能使用的情況,並且有類似的提示:
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent
這是因為,在執行session_start() 的時候,整個頁面不能有輸出,但是當由於前PHP頁面存在BOM標籤, PHP把這個BOM標籤當成是輸出了,所以就出錯了! 所以PHP頁面一定要刪除BOM標籤。
刪除這個BOM標籤的方法:
1、可以用Dreamweaver開啟文件,並重新儲存,也就是可以移除BOM標籤!
2、可用EditPlus開啟文件,並在選單「偏好設定」->「檔案」->"UTF-8標誌",設定為:「總是刪除簽章」, 然後儲存文件,即可以去除BOM標籤!
4、PHP以附件形式儲存檔案的時候,UTF-8編碼問題:
PHP以附件形式儲存文件,檔案名稱必須是GB2312編碼, 否則,如果檔案名中有中文的話,將是顯示亂碼。如果你的PHP本身是UTF-8編碼格式的文件, 需要將文件名變數由UTF-8轉成GB2312:
iconv("UTF-8", "GB2312", "$filename");
推薦教學:PHP影片教學
以上是php網頁亂碼的詳細內容。更多資訊請關注PHP中文網其他相關文章!