重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
创新互联www.cdcxhl.cn八线动态BGP香港云服务器提供商,新人活动买多久送多久,划算不套路!
新昌网站制作公司哪家好,找成都创新互联公司!从网页设计、网站建设、微信开发、APP开发、自适应网站建设等网站项目制作,到程序开发,运营维护。成都创新互联公司公司2013年成立到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选成都创新互联公司。这篇文章将为大家详细讲解有关解决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乱码的方法就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。