Python連接mysql數(shù)據(jù)庫時,數(shù)據(jù)庫中的漢字是亂碼,所有漢字顯示為問號。我解決問題的步驟如下:
一、為什么會出現(xiàn)亂碼,出現(xiàn)亂碼的可能情況:
1.mysql數(shù)據(jù)庫項未設(shè)置編碼,默認(rèn)為'latin'
2.使用 MySQL.connect 時未設(shè)置默認(rèn)編碼
3.python的編碼沒有設(shè)置,python2.7默認(rèn)為'ascii'
4.無解碼
二、給大家分享幾個解決方案,如下:
1.設(shè)置mysql的編碼
ubuntu執(zhí)行下列語句:
** 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中設(shè)置MySQLdb的連接編碼參數(shù)
db=MySQLdb.connect(user='...',db='...',passwd='...',host='...',charset='utf8')
3.在code中設(shè)置python默認(rèn)編碼
# -*-coding:utf-8 -*-
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
4.記得要解碼
t = cursor.fetchall()
s = t[0][1].decode('utf-8')
更多關(guān)于“Python培訓(xùn)”的問題,歡迎咨詢千鋒教育在線名師。千鋒教育多年辦學(xué),課程大綱緊跟企業(yè)需求,更科學(xué)更嚴(yán)謹(jǐn),每年培養(yǎng)泛IT人才近2萬人。不論你是零基礎(chǔ)還是想提升,都可以找到適合的班型,千鋒教育隨時歡迎你來試聽。
以上就是python查詢mysql中文亂碼的問題及解決方法,大家可以對癥下藥。