python3連接mysql數(shù)據(jù)庫的中文亂碼問題

前幾天使用pyhton3.6連接mysql數(shù)據(jù)庫,查詢出來的中文顯示亂碼(準(zhǔn)確說是問號??),網(wǎng)絡(luò)搜索答案,大概的解決步驟是這樣的(以下引用網(wǎng)絡(luò)搜索答案):


下面幾個措施,保證MySQL的輸出沒有亂麻:

1 Python文件設(shè)置編碼 utf-8 (文件前面加上 #encoding=utf-8)

2 MySQL數(shù)據(jù)庫charset=utf-8

3 Python連接MySQL是加上參數(shù) charset=utf8

4 設(shè)置Python的默認(rèn)編碼為 utf-8 (sys.setdefaultencoding(utf-8)


然而,這幾個步驟都試了,查詢出來的中文仍是亂碼。我的內(nèi)心幾乎是崩潰的。。。


最后在一個設(shè)置中給了我靈感。

cur=conn.cursor()#獲取一個游標(biāo)

cur.execute('SET NAMES utf-8')

這里讓我查詢數(shù)據(jù)不顯示亂碼的設(shè)置是:

cur.execute('SET NAMES gbk') ?# 在此之前我使用R語言連接過mysql,也是需要進(jìn)行此設(shè)置。


不知道其他人是否遇到過同樣的問題?


電腦背景:

windows 7

python3.6

python及數(shù)據(jù)庫的編碼都是utf8。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容