來強制瀏覽器以utf-8格式查看頁面。"/> 來強制瀏覽器以utf-8格式查看頁面。">
網頁亂碼一直是網路程式設計高手都頭痛的問題,我是一個PHP Web程式設計的初學者,學習當中也遇到了這個問題,找出了相關的資源,總結如下:
一般的中文編碼:gb2312,gbk(前者的一種擴展),這兩種編碼缺乏國際通用性;UTF-8為國際標準編碼,一般網頁編碼使用該編碼方式;
出現亂碼大部分是由於編碼方式的不一致導致的,其中主要有四個地方不一致就可能存在這個可能:
1、頁面文件的編碼方式( .html,.php等)
2、html.head中指定瀏覽器的編碼方式
3、MySql資料庫傳輸的編碼方式
4、Apache字元集
這四個的編碼一般需要統一起來,統一為UTF-8更為合適。以下四點要注意:
1、PlusEdit這種編輯會辨識檔案編碼,開啟並儲存後編碼方式保持不變;而像visual studio 2005、Zend Studio等開發工具會以工具首選項中的字元集打開並儲存,可能會改變原來的編碼方式。
可能原來是utf-8的,zend studio ->工具(首選項編碼為gb2312),打開並保存就變成了gb2312可能會出現亂碼;
2、< ;meta http-equiv="Content-Type" content="text/html; charset=utf-8">這句話可以強制要求瀏覽器以utf-8編碼方式來查看頁面,但有一點需要注意,可能Apache的字元集為非UTF-8,例如GB2312,此時瀏覽器會優先以伺服器(GB2312)的字元集編碼打開,又可能導致亂碼。
所以一般可以這樣處理:關閉伺服器Apache的字元集AddDefaultCharset off 此時瀏覽會以頁面Head中字元集開啟。
3、PHP一般都與Mysql資料庫交互,兩者進行資料通訊時,也有一個編碼問題,不管增還是查,必須指定通訊編碼方式(一般與Head中編碼方式UTF-8一致,否則取出的資料是以非UTF-8編碼的,到頁面上顯示仍舊為亂碼;把UTF-8編碼的字元透過非UTF-8的通訊方式傳輸到資料庫同樣會失敗,我遇到了這個Insert失敗問題,希望大家不要重蹈覆轍,O(∩_∩)O~) 指定通訊方式方法:mysql_query('set names utf8'),注意不是utf-8;
4、一般跟資料庫建庫時的編碼沒有關係,修改後sql語句執行會有問題,例如前台視覺化工具操作刪除資料時會報字元集不符合的錯誤,也不需要修改my.ini檔案中的編碼方式,修改後可能導致Mysql無法啟動,報1065錯誤。
只要命令列執行mysql客戶機程式時增與查沒有出現亂碼,資料庫的編碼方式應該是沒有問題的,重點需要檢查的是否是上面三個導致的亂碼。
推薦影片教學:PHP影片教學
#以上是php頁面瀏覽出現文字亂碼的詳細內容。更多資訊請關注PHP中文網其他相關文章!