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