python中读取mysql乱码怎么办?

2025-12-02 0 21,833

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知识请关注Python自学网。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:以上部本文内容由互联网用户自发贡献,本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。投诉邮箱:3758217903@qq.com

ZhiUp资源网 常见问题 python中读取mysql乱码怎么办? https://www.zhiup.top/6963.html

相关