這篇文章將為大家詳細講解有關解決python中讀取mysql亂碼的方法,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
Python連接mysql數據庫時,讀取數據庫中的中文出現亂碼,所有中文都顯示為問號了。
數據庫代碼:
-- 建表語句
CREATE TABLE books (
name varchar(50) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- 插入數據
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='數據庫名')
cursor = connection.cursor()
ex = cursor.execute("select name from books")
books = cursor.fetchmany(ex)
for book in books:
print("%s" % book[0])
connection.close()輸出結果如下:

下面我們就來看一下解決方法:
Python文件設置編碼 utf-8 (文件前面加上 #encoding=utf-8)
MySQL數據庫charset=utf-8
Python連接MySQL是加上參數 charset=’utf8’
讀取數據后寫入文件前執行編碼book[0].encode(‘utf-8’)
最后測試的時候發現只需在連接MySQL的時候加上charset=’utf8’即可,以utf-8編碼格式讀取數據,其他條件無需添加,也不會出現從mysql中讀取的數據出現中文亂碼的情況。
關于解決python中讀取mysql亂碼的方法就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。