php連接數據庫很簡單但我們在插入保存數據到mysql數據庫時如果不統一頁面與數據庫編碼就可能出現中文亂碼問題,下面我來給大家介紹預止此問題發生方法。
php中關於mysql的操作非常簡單,然而最近在做一個小工具的時候發現php寫入mysql的數據庫中出現了中文字符的亂碼,這個亂碼的問題糾結了我好久,明明英文字符寫入正常,但是中文就是亂碼!
一開始我感覺是我建立mysql數據庫的時候沒有設置UTF-8字符集,然而後來我發現即使我設置了這個字符集還是不能解決問題,寫入mysql的字符串照樣亂碼。
解決這個問題其實很簡單.
1.在建表的時候設置編碼類型為gb2312_chinese_ci.
2.在PHP頁面的數據庫連接語句加一行mysql_query("SET NAMES 'gb2312'",$link); 例如
代碼如下 復制代碼$db_host="localhost";
$db_user="root";
$db_password="password";
$db_name="test";
$link=mysql_connect($db_host,$db_user,$db_password);
mysql_query("SET NAMES 'gb2312'",$link);
$db=mysql_select_db($db_name,$link);
$query="select * from user";
$result=mysql_query($query);
寫入頁面和讀取頁面都加入這行.這樣在MYSQL裡面的中文就能正常顯示了.
另外種辦法修改配置文件my.cnf
[mysqld]
default-character-set=utf8
重新啟動MYSQL改過 這個改了就是把 character_set_server 設成utf8
好了到這些關於php寫入mysql中文亂碼問題就解決了,當然我們主要是注意頁面與數據庫之間的編碼然後使用mysql_query()進行設置。