mysql字符集顯示故障排查一例

        前幾天,項目要求使用mysql數據庫,通過網頁讀取數據庫中的數據記錄,往數據庫中插入記錄後,從頁面讀取時發現中文顯示亂碼,其他的字母數字等字符倒是正常顯示,但中文無法正常顯示。負責該項目開發的同事搞了很久也沒搞好,讓我幫忙搞搞。因爲已經很久沒弄過mysql了,那些命令及參數的用法那些早忘光了,不得已先求助於搜索引擎的幫助快速複習一下,先熟悉一下mysql的一些用法。明白了mysql的基本用法以後,咱們就開始分析這個故障。

        項目中使用mysql數據庫來保存數據,所有的數據都保存在項目的數據庫中。首先確認故障現象,mysql數據庫中已經保存了項目的數據,現在需要手工向數據庫中插入一些記錄,記錄中包含了中文字段,數據庫原來也存有中文字段的記錄,在手工插入mysql數據庫過程中,發現插入數據庫沒有問題,在mysql本地查詢該記錄也沒有問題,但通過網頁來讀取顯示mysql中的數據時,數據庫中原有的數據正常顯示,但讀取新插入的記錄時,中文顯示亂碼,mysql在本地查詢該記錄,顯示也都正常,通過頁面讀取該記錄時中文就成了亂碼,請教了大名鼎鼎的“度娘”,大概明白了mysql的字符集設置的問題。(主要就是utf8,gbk,latina1,gb2312這幾個)

      先查看mysql字符集設置,執行以下命令:

mysql> show variables  like '%char%';

得到了當前數據庫的字符集設置。因爲是使用utf8字符集來建立的數據庫,那就全部改成utf8字符集來試下,能不能正常顯示。執行以下命令:

mysql>mysql  --default-character-set=utf8  -uroot   -p*******;

進入數據庫以後刪除新插入的記錄,再重新插入記錄,頁面讀取新插入的記錄是中文依然顯示亂碼,因爲項目是本地通過命令行來插入數據的記錄的,那我就把mysql的客戶端字符集改爲原來的字符集試試,中文還是顯示亂碼,我又試了保留原來的字符集,只把客戶端字符集改爲utf8字符集,結果中文還是顯示亂碼。鬱悶,難道沒法搞了麼??

我再全部使用utf8字符集來連接數據庫,這次就把客戶端字符集改爲gbk了,再試下,頁面讀取新插入記錄,中文顯示終於正常了。好了,收工吧~~~~太久沒搞過mysql了,全部忘了,這次正好複習複習,再鞏固下。。。。。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章