1. 程式人生 > >解決mySql中文亂碼以及Eclipse插入中文出現亂碼

解決mySql中文亂碼以及Eclipse插入中文出現亂碼

cmd --->命令列

mySql查詢資料庫出現中文亂碼:

 

1、登入資料庫,mysql -u root -p  ,輸入密碼,登入

2、查詢mysql編碼 : show variables like "%char%"; 

3、正確編碼集一般如下,當然,client和connection可以選擇gbk,那麼eclipse編碼集也應為gbk,保持一致;

從上圖中可以看到 MySQL 有六處使用了字符集,分別為:client 、connection、database、results、server 、system。其中與伺服器端相關:database、server、system(如果不想亂碼,那麼其應該是utf-8);與
客戶端相關:connection、client、results(通過set names  gbk,或者 set names utf8 更改) 。
  問題:         許多同學查詢編碼集是如下圖片:額  額  暫時已經修改掉了 ,原因 : 許多mysql資料庫,預設server編碼為  latin1 ,此時應做如下修改:           1、(5.5以前系統
)
在【client】下面加入 default-character-set=utf8
    注意: 如果修改後不能啟動報錯試試把default-character-set=utf8改為character_set_server=utf8       2(5.5以後系統)在mysql安裝目錄下找到my.ini檔案,用記事本開啟,找到  [client] 和 serverd  將    default-character-set
預設編碼方式改為
\
                  default-character-set=utf8    character-set-server=utf8   ,記住serverd 一定要改... (這裡有些同學,可能剛開始啟動寫sql語句,都不會出現亂碼,那是因為查詢百度解決方案將其編碼方式修改成了utf8,但未修改my.ini,後面又出現亂碼,癥結就在此 ,因為每一次啟動,都是利用my.ini的啟動方式啟動,所以務必修改),在這裡,為以防萬一可以做如下設定;
set character_set_database=utf8;
set character_set_server=utf8;
set character_set_client=gbk;
set character_set_connection=gbk;
      3、新版本找不到my.ini檔案 ,這裡相對各版本各異,也找了許多方法,也許新增上面語句會奏效,但下了幾個版本都無效,最後決定先不用高版本...;      以上任何一種方式,都記得重啟server ,否則不會生效,重啟後再檢視mysql編碼, 我在百度裡查了重啟server的許多快捷語言,發現行不通,於是就關機重啟了... 重啟後會發現  character_set_server   為 utf8 ;

select * from table時顯示第一張圖還是亂碼

把上面的編碼方式改變! set character_set_results=gbk; 就可以正常顯示!


  這是 再執行 insert 語句,會發現不會亂碼了,如果再次亂碼,set names gbk或  utf8 試試,出現亂碼就是編碼格式不對....這是兩天沒找到答案的最終得出結果就是編碼格式的不對;    還有一些同學,明明都改對了,也查詢不到,那可能是因為資料庫和表格建立的時候,沒有使用utf8 ,此時重新建立一個數據庫和表格,再試試;   eclipse插入語句,中文亂碼,而mysql 命令列以及客戶端工具不是亂碼:       eclipse預設編碼格式都是gbk ,百度裡有人寫的是 保持一致,但更多的是 將編碼格式改為utf8,有四個地方需要修改  (最好全改)     1、window--preferences--General--workspace 左下角選擇 Other  utf-8;     2、project-properties  選擇UTF-8     3、右擊自己新建的專案,properties選擇  utf-8     4、右擊自己建立的class,properties,選擇 utf-8 , 再次插入資料,看看結果,基本都不會出問題;