前幾天使用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。