這篇文章將為大家詳細講解有關解決python中讀取MySQL亂碼的方法,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
成都創(chuàng)新互聯(lián)公司專注于昆玉企業(yè)網(wǎng)站建設,成都響應式網(wǎng)站建設,購物商城網(wǎng)站建設。昆玉網(wǎng)站建設公司,為昆玉等地區(qū)提供建站服務。全流程按需網(wǎng)站策劃,專業(yè)設計,全程項目跟蹤,成都創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務
Python連接mysql數(shù)據(jù)庫時,讀取數(shù)據(jù)庫中的中文出現(xiàn)亂碼,所有中文都顯示為問號了。
數(shù)據(jù)庫代碼:
-- 建表語句 CREATE TABLE books ( name varchar(50) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- 插入數(shù)據(jù) insert into books values('萬物生光輝'); insert into books values('我親愛的甜橙樹'); insert into books values('教父'); insert into books values('故事'); insert into books values('樹上的男爵'); insert into books values('羅馬人的故事2'); insert into books values('秘島(全三冊)');
python代碼:
#!/usr/bin/env python import pymysql.cursors connection = pymysql.connect(user='用戶名', passwd='密碼', db='數(shù)據(jù)庫名') cursor = connection.cursor() ex = cursor.execute("select name from books") books = cursor.fetchmany(ex) for book in books: print("%s" % book[0]) connection.close()
輸出結(jié)果如下:
下面我們就來看一下解決方法:
Python文件設置編碼 utf-8 (文件前面加上 #encoding=utf-8)
MySQL數(shù)據(jù)庫charset=utf-8
Python連接MySQL是加上參數(shù) charset=’utf8’
讀取數(shù)據(jù)后寫入文件前執(zhí)行編碼book[0].encode(‘utf-8’)
最后測試的時候發(fā)現(xiàn)只需在連接MySQL的時候加上charset=’utf8’即可,以utf-8編碼格式讀取數(shù)據(jù),其他條件無需添加,也不會出現(xiàn)從mysql中讀取的數(shù)據(jù)出現(xiàn)中文亂碼的情況。
關于解決python中讀取mysql亂碼的方法就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。