当前位置: 首页 > 图灵资讯 > 行业资讯> python中读取mysql乱码怎么办?

python中读取mysql乱码怎么办?

发布时间:2026-03-04 21:59:43

当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()

输出结果如下:

让我们来看看解决方案:

Python文件设置编码 utf-8 (添加前面的文件 #encoding=utf-8)

MySQL数据库charsetetset=utf-8

Python连接MySQL,添加参数 charset=’utf8’

读取数据后,在写入文件前执行编码book[0].encode(‘utf-8’)

在最后一次测试中,发现只需在连接MySQL时添加charset=utf8,以utf-8编码格式读取数据,其他条件不需要添加,从mysql中读取的数据也不会出现中文乱码。

请关注Python自学网了解更多Python知识。

相关文章

python中读取mysql乱码怎么办?

python中读取mysql乱码怎么办?

2026-03-04
python怎么输出变量的值?

python怎么输出变量的值?

2026-03-03
python中怎么识别判断是否是小数?

python中怎么识别判断是否是小数?

2026-03-03
为什么python在字符串前加“r”?

为什么python在字符串前加“r”?

2026-03-03
python怎么生成多个随机数?

python怎么生成多个随机数?

2026-03-03
python语言用来干什么的?

python语言用来干什么的?

2026-03-02