导语:
本文主要介绍了关于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应该选择什么编译器?10/05
- ♥ python函数是否传递数组参数09/23
- ♥ 日历如何过滤掉python3时间重复的事件?12/13
- ♥ python可以开发游戏吗?11/20
- ♥ 判断python模块中全局变量的赋值10/25
- ♥ python的os模块是什么09/23
内容反馈