这篇文章将为大家详细讲解有关解决python中读取mysql乱码的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

Python连接mysql数据库时,读取数据库中的中文出现乱码,所有中文都显示为问号了。

数据库代码:

--建表语句CREATETABLEbooks(namevarchar(50)DEFAULTNULL)ENGINE=InnoDBDEFAULTCHARSET=utf8;--插入数据insertintobooksvalues('万物生光辉');insertintobooksvalues('我亲爱的甜橙树');insertintobooksvalues('教父');insertintobooksvalues('故事');insertintobooksvalues('树上的男爵');insertintobooksvalues('罗马人的故事2');insertintobooksvalues('秘岛(全三册)');

python代码:

#!/usr/bin/envpythonimportpymysql.cursorsconnection=pymysql.connect(user='用户名',passwd='密码',db='数据库名')cursor=connection.cursor()ex=cursor.execute("selectnamefrombooks")books=cursor.fetchmany(ex)forbookinbooks: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乱码的方法就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。