1. 程式人生 > >mysql插入中文時亂碼問題解決

mysql插入中文時亂碼問題解決

在使用php+mysql寫部落格的時候,當插入中文時出現亂碼問題,找了很多部落格發現內容很亂很雜,重複的很多,後來試了很多方法終於成功,我也是在前人的基礎上總結是用我的方法。

首先使用show variables like ‘character%’; 來檢視當前資料庫的相關編碼集。
這裡寫圖片描述
當然以上這個是我改好的,也是能成功顯示中文字元的。。。(我的版本是5.6.17隨後說道為什麼強調)那麼我們先來了解一下各項的意義。

  • client 為客戶端使用的字符集。
  • connection 為連線資料庫的字符集設定型別,如果程式沒有指明連線資料庫使用的字符集型別則按照伺服器端預設的字符集設定。
  • database 為資料庫伺服器中某個庫使用的字符集設定,如果建庫時沒有指明,將使用伺服器安裝時指定的字符集設定。
  • results 為資料庫給客戶端返回時使用的字符集設定,如果沒有指明,使用伺服器預設的字符集。
  • server 為伺服器安裝時指定的預設字符集設定。
  • system 為資料庫系統使用的字符集設定。

    保證每一項的編碼統一就不會產生亂碼,當然支援中文的話也可以改成gbk,gb2312,utf-8等,建議是utf-8。在mysql中預設字符集是latin1,他是不支援中文的,想要設定字符集為uft-8,可以在 my.ini 檔案中在相應位置[client],[mysqld]寫上以下程式碼(這也是一勞永逸的方法):

  • [client]

default-character-set=utf8
  • [mysqld]
default-character-set=utf8

後來你會發現你的wamp竟然重啟失敗了後來才知道

  • 在5.1版本時,為了解決中文亂碼問題設定預設字符集為utf8時,在my.ini內的 [mysql] 和 [mysqld] 項中都是寫:
default-character-set=utf8
  • 到了5.5版本, [mysql] 項內可以這麼寫, [mysqld]
    項內這麼寫在啟動MySQL服務時會有1067錯誤,經查詢發現這裡必須要這樣寫:
character-set-server=utf8

重啟服務後依然沒有起作用。 最後,刪除之前新建的資料庫,再次重啟mysql服務,並再次條件下重新新建一個數據庫,就沒出現中文亂碼的問題了~