python2.7 查詢mysql中文亂碼問題

問題:

python2.7 查詢或者插入中文數據在mysql中的時候出現中文亂碼

---

可能狀況:

1.mysql數據庫各項沒有設置編碼,默認爲'latin'

2.使用MySQL.connect的時候沒有設置默認編碼

3.沒有設置python的編碼,python2.7默認爲'ascii'

4.沒有解碼

---

解決方法:

1.設置mysql的編碼

ubuntu執行下列語句:
** sudo vim /etc/mysql/my.cnf **
而後在裏面插入語句:python

[client]
default-character-set=utf8
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci

退出 vim
從新啓動mysql:
** sudo service mysql restart **mysql

2.在code中設置MySQLdb的鏈接編碼參數

db=MySQLdb.connect(user='...',db='...',passwd='...',host='...',charset='utf8')

3.在code中設置python默認編碼

# -*-coding:utf-8 -*-
import sys 
reload(sys)
sys.setdefaultencoding('utf-8')

4.記得要解碼

t = cursor.fetchall()
s = t[0][1].decode('utf-8')

over

相關文章
相關標籤/搜索