mysql中數據亂碼,MySql編碼改過之后為什么查詢數據還是亂碼?
你說的應該是中文顯示亂碼吧,這個主要原因應該是mysql數據庫的編碼方式和系統自身的編碼方式沖突造成的,如果數據庫的編碼是utf-8,而系統自身的編碼是gbk,那查詢的時候中文很可能就會顯示亂碼,下面我大概介紹一下查看編碼和設置編碼的步驟,實驗環境win7+mysql5.5+navicat,主要步驟如下:
1.先在navicat中查看要查詢的數據,如下,數據顯示正常,中文未出現亂碼:
2.打開cmd,連接mysql,輸入同樣的sql語句,這次中文出現亂碼,查詢結果不能正常顯示,如圖:
3.查看當前數據庫編碼方式,語句是"show variables like '%character%'",從中可以看出,數據采用的編碼方式是utf-8,而我們知道,cmd默認采用的編碼方式是gbk,所以出現中文亂碼,不能正常顯示中文:
4.發現問題所在后,在輸入sql語句前,可以進行一下編碼設置,設置成與cmd默認編碼方式一樣,就不會出現中文亂碼現象,命令是"set names gbk",如下:
至此,中文就能正常顯示了,之所以中文顯示亂碼,歸根結底還是編碼方式沖突造成的,cmd中經常會出現這種情況,你設置一下編碼就行,linux系統采用的是utf-8編碼,出現中文亂碼的情況較少,除非你設置數據庫的編碼方式不是utf-8。這里需要注意的是在你創建數據庫的時候,就要注意編碼的設置,有些時候數據庫默認編碼不是utf-8,而你又不指定,很可能就會出現亂碼,而這種情況下,一般不仔細檢查還發現不了,這時候你就得好好看編碼了,希望以上分享的內容能對你有所幫助吧。