Python連接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')
更多關于“Python培訓”的問題,歡迎咨詢千鋒教育在線名師。千鋒教育多年辦學,課程大綱緊跟企業需求,更科學更嚴謹,每年培養泛IT人才近2萬人。不論你是零基礎還是想提升,都可以找到適合的班型,千鋒教育隨時歡迎你來試聽。
以上就是python查詢mysql中文亂碼的問題及解決方法,大家可以對癥下藥。