1. 程式人生 > >解決MySql Command Line Client查詢結果亂碼問題

解決MySql Command Line Client查詢結果亂碼問題

轉自:http://blog.csdn.net/lu8000/article/details/8928474

亂碼問題: 

資料庫是MySql,儲存的是中文的內容用MySql Command Line Client 檢視是亂碼,但是用MySql Administrator檢視卻顯示正確

先看資料庫的相關編碼

  1. mysql> show variables like'character_set_%';  
  2. +--------------------------+---------------------------------------------------------+
  3. | Variable_name            | Value                                                   |  
  4. +--------------------------+---------------------------------------------------------+
  5. | character_set_client     | utf8                                                    |  
  6. | character_set_connection | utf8                                                    |  
  7. | character_set_database   | utf8                                                    |  
  8. | character_set_filesystem | binary                                                  |  
  9. | character_set_results    | utf8                                                    |  
  10. | character_set_server     | utf8                                                    |  
  11. | character_set_system     | utf8                                                    |  
  12. | character_sets_dir       | C:\Program Files\MySQL\MySQL Server 5.5\share\charsets\ |  
  13. +--------------------------+---------------------------------------------------------+
檢視資料庫表資料出現亂碼,首先MySql Administrator檢視卻顯示正確的,只是用MySql Command Line Client檢視顯示亂
  1. mysql> select * from student;  
  2. +----+------+------+
  3. | id | name | age  |  
  4. +----+------+------+
  5. |  1 | 涓?  |    4 |  
  6. +----+------+------+
  7. 1 row inset (0.00 sec)  

問題分析,這個原因主要是受客戶端的連線相關編碼影響,下面三項

character_set_client
character_set_connection
character_set_results 

而這三項是可以通過set names utf8|set names gbk來可以設定的!另外也說明當前連線的客戶端的編碼情況沒有影響到資料庫伺服器本身的編碼情況。

  1. mysql> set names gbk;  
  2. Query OK, 0 rows affected (0.00 sec)  
  3. mysql> show variables like'character_set_%';  
  4. +--------------------------+---------------------------------------------------------+
  5. | Variable_name            | Value                                                   |  
  6. +--------------------------+---------------------------------------------------------+
  7. | character_set_client     | gbk                                                     |  
  8. | character_set_connection | gbk                                                     |  
  9. | character_set_database   | utf8                                                    |  
  10. | character_set_filesystem | binary                                                  |  
  11. | character_set_results    | gbk                                                     |  
  12. | character_set_server     | utf8                                                    |  
  13. | character_set_system     | utf8                                                    |  
  14. | character_sets_dir       | C:\Program Files\MySQL\MySQL Server 5.5\share\charsets\ |  
  15. +--------------------------+---------------------------------------------------------+
  16. rowsinset (0.00 sec)  
  17. mysql> select * from student;  
  18. +----+------+------+
  19. | id | name | age  |  
  20. +----+------+------+
  21. |  1 | 上     |    4 |  
  22. +----+------+------+