php+mysql顯示亂碼的個人總結

說起亂碼,我就很討厭的,每次亂碼都要花費我很長的時間去找原因,而網上搜索的答案很多,很亂,很難判斷哪個答案是適合自己系統的,現在就把我在php+mysql中文顯示正常的代碼給貼出來,希望對大家有所幫助。
我的系統是centos5.5,mysql是5.5.20 , php是5.3.10
 
cat /etc/sysconfig/i18n
LANG="zh_CN.GBK"
 
 
vi /etc/my.cnf
分別在如下幾項添加字符集:

[client]
default-character-set=gbk
[mysqld]
character_set_server = gbk 
 網上很多文章都是在這裏添加 default-character-set=gbk,剛開始我也照網上的資料做,每次啓動mysql都是報錯的,後來通過查找資料才知道mysql的高級版本不用default-character-set=gbk,而是用character_set_server = gbk
[mysql]
default-character-set=gbk

修改後保存。大家根據自己設置的方式重啓mysql數據庫
mysql -uroot -p
mysql> show variables like 'char%';
+--------------------------+----------------------------------+
| Variable_name            | Value                            |
+--------------------------+----------------------------------+
| character_set_client     | gbk                              |
| character_set_connection | gbk                              |
| character_set_database   | gbk                              |
| character_set_filesystem | binary                           |
| character_set_results    | gbk                              |
| character_set_server     | gbk                              |
| character_set_system     | utf8                             |
| character_sets_dir       | /usr/local/mysql/share/charsets/ |
+--------------------------+----------------------------------
這是修改後的mysql數據庫編碼
 
在php中的mysql_connect(...);mysql_select_db(...);後插入mysql_query("set names 'GBK'");防止在php轉碼的時候出現亂碼
 
希望對大家在mysql出現亂碼的時候有所幫助
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章