問題:
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')<br>
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