網頁亂碼、資料庫顯示亂碼、資料庫顯示空白如何解決?

 

在網頁開發過程中,常出現網頁亂碼、資料庫顯示亂碼、資料庫顯示空白...等問題

下面是過去開發的一些經驗

 

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

utf8_1  

 

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)的預設值

mysql_utf81  

 

G. 資料表欄位建立時採用UTF-8編碼

說明:這邊的效果和E是一樣的,如果沒有指定預設會使用資料庫建立時的預設值

資料表繼承自資料庫的編碼 -> 資料庫的編碼繼承自my.ini(或my.cnf)的預設值 

mysql_utf82  

 

 

 

上述所有設定全部設定完成之後,網頁、資料庫內應該就不會有亂碼產生

提供給大家參考

 

如果覺得對你有幫助的話. 麻煩幫小弟按個讚哦~

 

arrow
arrow

    newaurora 發表在 痞客邦 留言(0) 人氣()