mysql出現的亂碼問題是很是頭疼的,有時可能出如今控制檯,有時多是服務方面的。MySQL對於字符集的指定能夠細化到一個數據庫,一張表,一列.傳統的程序在建立數據庫和數據表時並無使用那麼複雜的配置,它們用的是默認的配置.(mysql安裝時,特別是使用集成環境:好比appserver wampserver等若是不設置密碼,打開控制檯直接按enter鍵進入。)mysql
第一:如何查詢mysql的編碼:sql
使用命令語句:mysql> SHOW VARIABLES LIKE 'character%';數據庫
第二:應對亂碼問題,多是編碼的問題,能夠這樣修改編碼:app
問題一:處處都是亂碼,最簡單的修改方法,就是修改mysql的my.ini文件中的字符集鍵值,
如 default-character-set = utf8
character_set_server = utf8編碼
其次的方法就是使用mysql的命令
mysql> SET character_set_client = utf8 ;
mysql> SET character_set_connection = utf8 ;
mysql> SET character_set_database = utf8 ;
mysql> SET character_set_results = utf8 ;
mysql> SET character_set_server = utf8 ;
mysql> SET collation_connection = utf8 ;
mysql> SET collation_database = utf8 ;
mysql> SET collation_server = utf8 ;
問題二:通常就算設置了表的默認字符集爲utf8而且經過UTF-8編碼發送查詢,你會發現存入數據庫的仍然是亂碼。問題就出在這個connection鏈接層上。解決方法是在發送查詢前執行一下下面這句: SET NAMES 'utf8';命令行
它至關於下面的三句指令:
SET character_set_client = utf8;
SET character_set_results = utf8;
SET character_set_connection = utf8;
問題三:不知道什麼緣由,我在本身機器上把上述三個字符集都設置成utf8後,查詢中文結果仍是亂碼,只有把character_set_results設置成GBK以後才能從命令行正常顯示中文.server