標籤:
問題:“網頁顯示中午”與“資料庫查看中文”總有一個是亂碼,或者“網頁中總有部分中文亂碼”
裝了PHPStudy之後,用alter修改過一次資料庫的編碼方式為utf8!當時的網頁的編碼顯示是正常的,所以我就沒有放在心上以為可以了!到後來才發現:網頁顯示中文的時候不是亂碼的,但是在資料庫查看中文的時候卻是亂碼的!還有更奇怪的是,我做一個電商網站的時候,發現一級菜單的中文顯示“夏日服裝”--“夏日”顯示正常,“服裝”亂碼!實際上這個只是顯示亂碼,因為我用命令修改了它的顯示編碼方式之後,資料顯示正常了,但是網頁又不正常了;不修改,網頁還是可以正常顯示中文的!這個就令我頭疼了現在問題解決了,總結一下記錄,若有不準確,還請指教,謝謝!
解決:
1)思路:發生亂碼的情況可能由以下幾個情況引起:
(1)編輯檔案儲存時的編碼方式與開啟時的編碼方式不一致--開啟檔案顯示編碼,但是我覺得應該是不影響檔案啟動並執行;
(2)檔案顯示設定的編碼方式與建立資料庫時候數編碼方式不同--檔案運行之後顯示亂碼或者資料庫亂碼
(3)檔案顯示設定和資料庫設定的編碼有部分不同--可能出現上述我出現的情況
【面對第一種情況:用原來的編輯器重新儲存一次為utf8;第二種情況:用alter命令修改資料的編碼方式,或者將資料庫刪了重新匯入】
2)原理:
在MySQL資料庫中預設的編碼是Latin1,是不支援中文的,要支援中文就需要將資料庫的預設編碼方式修改為utf8或者gbk。
先查看一下資料庫的編碼方式情況:show variables like ‘character%‘;顯示如下【這個顯示是我已經修改為utf8】:
或者使用:show variables like ‘collation%‘;查看資料庫編碼
只要保證上面三個connection、database、server三個的編碼方式一樣就不會亂碼了!
3)解決方案:
開啟MySQL的設定檔:mysql.ini,修改兩個地方:
default-character-set=xxx--修改資料庫預設字元集編碼方式,但是卻並不包括資料庫伺服器編碼方式【即不含:collation_server】
character-set-server=xxx--修改資料庫伺服器的編碼方式
只需要將兩者修改為一樣的utf8或者gbk就可以了!【對於不同字元,utf8和gbk所佔用的儲存空間是不一樣的,詳情可Google】
對於資料庫字元集編碼方式的一些命令,大家可以看看博主“血色殘陽專欄”的這篇文章,裡面都有講到!
友情連結:http://blog.csdn.net/wangjun_pfc/article/details/3827631http://blog.csdn.net/wangjun_pfc/article/details/3827631
MySQL資料庫“局部”亂碼