問題:
python2.7 查詢或者插入中文數據在mysql中的時候出現中文亂碼
---
可能情況:
1.mysql數據庫各項沒有設置編碼,默認為'latin'
2.使用MySQL.connect的時候沒有設置默認編碼
3.沒有設置python的編碼,python2.7默認為'ascii'
4.沒有解碼
---
解決方法:
1.設置mysql的編碼
ubuntu執行下列語句:
** sudo vim /etc/mysql/my.cnf **
然后在里面插入語句:
[client]
default-character-set=utf8
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
退出 vim
重新啟動mysql:
** sudo service mysql restart **
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')
新聞熱點
疑難解答