網頁亂碼、資料庫顯示亂碼、資料庫顯示空白如何解決?
在網頁開發過程中,常出現網頁亂碼、資料庫顯示亂碼、資料庫顯示空白...等問題
下面是過去開發的一些經驗
A. PHP程式內加入UTF-8宣告
說明:要求瀏覽器使用UTF-8邊碼顯示網頁內容
header("Content-Type:text/html; charset=utf-8");
B. HTML程式內加入UTF-8宣告
說明:要求瀏覽器使用UTF-8邊碼顯示網頁內容
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
注意:A權重 >B權重,且有時B會失效
C. 檔案使用記事本開啟後,另存成UTF-8編碼
說明:程式人員把寫好的程式存檔後,系統會採用預設的編碼方式儲存這些程式碼,一般來說windows使用的是ANSI、Linux使用的是UTF-8
D. 在PHP程式內加入資料庫輸入、讀取都採用UTF-8編碼
mysql_query("SET NAMES utf8");
說明:
資料被存入資料庫的路徑是:client → connection → server
從資料庫取出資料的路徑是:server → connection → results
在每一個階段的存取,mysql都會將資料做編碼轉換
因此這行程式是要求mysql使用UTF-8的編碼做轉換
E. MySQL的my.ini檔案內檢查預設字符是否為UTF-8(Linux找my.cnf檔)
把所有預設的語系設定改成 -> default-character-set=utf8
說明:修改客戶端和伺服器端的預設編碼格式
F. 資料庫建立時指定採用UTF-8編碼
說明:這邊的效果和E是一樣的,如果沒有指定預設會使用my.ini(或my.cnf)的預設值
G. 資料表欄位建立時採用UTF-8編碼
說明:這邊的效果和E是一樣的,如果沒有指定預設會使用資料庫建立時的預設值
資料表繼承自資料庫的編碼 -> 資料庫的編碼繼承自my.ini(或my.cnf)的預設值
上述所有設定全部設定完成之後,網頁、資料庫內應該就不會有亂碼產生
提供給大家參考
如果覺得對你有幫助的話. 麻煩幫小弟按個讚哦~