首頁  >  文章  >  後端開發  >  解決python2.7 查詢mysql時出現中文亂碼

解決python2.7 查詢mysql時出現中文亂碼

WBOY
WBOY原創
2016-12-05 13:27:181607瀏覽

問題:

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

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn