1. 程式人生 > >mysql 解決中文亂碼

mysql 解決中文亂碼

字符編碼 mage 符號 HP l數據庫 兩條命令 出現 方法 兩種

首先:

用show variables like “%colla%”;show varables like “%char%”;這兩條命令查看數據庫與服務端的字符集設置

如果查看出來都是gbk2312,或 gbk,那麽就只能支持簡體中文,繁體和一些特殊符號是不能插入的,我們只有修改字符集為UTF-8,

修改方法如下:

用記事本或UitraEdit打開mysql數據庫安裝目錄下的my.ini文件打開, 然後Ctrl+F搜索character-set,將後面的字符集修改為UTF8,註意要修改兩個地方,一個是客戶端的,一個是服務端的。或者修改客戶端為gbk,服務端為:UTF8,我是采用兩種編碼方式,至於為什麽呢?原因是:

修改為UTF8以後,在命令行下面中文是亂碼的,只輸出到頁面或控制臺是正常的,這個問題我也上網查了一下,貌似命令行下面不支持UTF8。

當客戶端和服務端都修改為UTF8以後,在命令行下面如果要插入中文,可以在插入語句之前執行,set names gbk2312;或輸入:set names gbk; 就可以插入中文了,但是不能插入繁體和一些特殊符號。

然後保存,重啟mysql服務(window+R->輸入services.msc)、進去繼續用show variables like “%colla%”;show varables like “%char%”;著兩條語句查詢一下字符集。 如圖:技術分享圖片

到此就配置完成了。

註意:以前編碼是latin1,並且輸入了中文。配置完之後,新添加到mysql的中文輸出不會出現亂碼 以前mysql中的中文還是亂碼,最好在安裝mysql的時候,選擇字符集的時候,選擇utf8即可,後面也不需要再配置了。

在php程序端,也可以在連接數據庫時設置臨時字符集編碼:5.1以上版本使用:mysqli_set_charset($con, "utf8");如果是低版本使用mysqli_query($con,"set names ‘utf8‘");但是要切記:插入數據的字符編碼和請求數據數據的編碼要保持一致,不然就會出現亂碼,如果數據庫沒有進行中文配置,那麽在插入數據和查詢數據是,先輸入mysqli_set_charset($con,"utf8"),然後在進行相關操作,即可。

mysql 解決中文亂碼