最近在登陸公司服務器上的數(shù)據(jù)庫時,在命令行里執(zhí)行查詢語句時候得到的結果只要是中文,就全部是亂碼,很讓人頭疼呀,,查了些資料總結一下.作為自己以后的參考. 2.查看默認字符集(默認情況下,mysql的字符集是latin1(ISO_8859_1)通常,查看系統(tǒng)的字符集和排序方式的設定可以通過下面的兩條命令: mysql> SHOW VARIABLES LIKE 'character%'; +--------------------------+---------------------------------+ | Variable_name | Value | +--------------------------+---------------------------------+ | character_set_client | latin1 | | character_set_connection | latin1 | | character_set_database | latin1 | | character_set_filesystem | binary | | character_set_results | latin1 | | character_set_server | latin1 | | character_set_system | utf8 | | character_sets_dir | D:"mysql-5.0.37"share"charsets" | +--------------------------+---------------------------------+ mysql> SHOW VARIABLES LIKE 'collation_%'; +----------------------+-----------------+ | Variable_name | Value | +----------------------+-----------------+ | collation_connection | utf8_general_ci | | collation_database | utf8_general_ci | | collation_server | utf8_general_ci | +----------------------+-----------------+ 3.修改默認字符集 (1) 最簡單的修改方法,就是修改mysql的my.ini文件中的字符集鍵值, 如 default-character-set = utf8 character_set_server = utf8 修改完后,重啟mysql的服務,service mysql restart 使用 mysql> SHOW VARIABLES LIKE 'character%';查看,發(fā)現(xiàn)數(shù)據(jù)庫編碼均已改成utf8 +--------------------------+---------------------------------+ | Variable_name | Value | +--------------------------+---------------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | utf8 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | utf8 | | character_set_system | utf8 | | character_sets_dir | D:"mysql-5.0.37"share"charsets" | +--------------------------+---------------------------------+ (2) 還有一種修改字符集的方法,就是使用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編碼發(fā)送查詢,你會發(fā)現(xiàn)存入數(shù)據(jù)庫的仍然是亂碼。問題就出在這個connection連接層上。解決方法是在發(fā)送查詢前執(zhí)行一下下面這句: SET NAMES 'utf8'; 它相當于下面的三句指令:SET character_set_client = utf8; SET character_set_results = utf8; SET character_set_connection = utf8; 不知道什么原因,我在自己機器上把上述三個字符集都設置成utf8后,查詢中文結果還是亂碼,只有把character_set_results設置成GBK之后才能從命令行正常顯示中文. |
|