python 連接 MySQL 中文亂碼

轉自:http://www.jb51.net/article/56088.htm

一般來說,在使用mysql最麻煩的問題在於亂碼。

查看mysql的編碼:

命令: 

複製代碼代碼如下:
show variables like 'character_set_%';

可以看到如下結果:

character_set_client爲客戶端編碼方式;
character_set_connection爲建立連接使用的編碼;
character_set_database數據庫的編碼;
character_set_results結果集的編碼;
character_set_server數據庫服務器的編碼;

只要保證以上四個採用的編碼方式一樣,就不會出現亂碼問題

然後可以直接在這裏設置mysql的編碼。

複製代碼代碼如下:
set character_set_client = xxxxx

這樣就將客戶端編碼修改過來了。

但是,對於已經建立好的數據庫和數據表,編碼還是沒有變的,還是要使用alter命令去更改對應的編碼

但是,即便修改了數據庫的編碼,在python中還是會存在存入數據庫的時候的亂碼問題,解決方法就是在鏈接數據庫的時候指定編碼。例如:

複製代碼代碼如下:
sql_con = MySQLdb.connect(host=MYSQL_ADDR , user=MYSQL_USER , passwd=MYSQL_PWD , db=MYSQL_DB , charset="utf8")

這就指定了客戶端的編碼是utf8.然後就解決了亂碼問題。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章