![图片[1]-python中读取mysql乱码怎么办?-uusu优素-乐高,模型,3d打印,编程](http://uusucn.zbbe.cn/wp-content/uploads/2024/01/5ec72bf41d0a8443.jpg)
Python连接mysql数据库时,读取数据库中的中文出现乱码,所有中文都显示为问号了。
数据库代码:
--建表语句
CREATETABLEbooks(
namevarchar(50)DEFAULTNULL
)ENGINE=InnoDBDEFAULTCHARSET=utf8;
--插入数据
insertintobooksvalues('万物生光辉');
insertintobooksvalues('我亲爱的甜橙树');
insertintobooksvalues('教父');
insertintobooksvalues('故事');
insertintobooksvalues('树上的男爵');
insertintobooksvalues('罗马人的故事2');
insertintobooksvalues('秘岛(全三册)');
python代码:
#!/usr/bin/envpython
importpymysql.cursors
connection=pymysql.connect(user='用户名',passwd='密码',db='数据库名')
cursor=connection.cursor()
ex=cursor.execute("selectnamefrombooks")
books=cursor.fetchmany(ex)
forbookinbooks:
print("%s"%book[0])
connection.close()
输出结果如下:
![图片[2]-python中读取mysql乱码怎么办?-uusu优素-乐高,模型,3d打印,编程](http://uusucn.zbbe.cn/wp-content/uploads/2024/01/1590039719300432.jpg)
下面我们就来看一下解决方法:
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中读取的数据出现中文乱码的情况。
原文来自:https://www.py.cn© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END

















































暂无评论内容