• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

python数据库查询中文乱码

python 搞java代码 3年前 (2022-05-23) 48次浏览 已收录 0个评论

解决python数据库查询出现中文乱码的方法:1、python文件设置编码为utf-8;2、MySQL数据库字符集改为“charset=utf8”;3、Python连接MySQL时加上参数"charset=’utf-8"。

执行pip install PyMySQL 完成pyMySQL安装

数据库部分

— 建表语句

CREATE TABLE books (
  name varchar(50) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

www#gaodaima.com来源gaodai$ma#com搞$$代**码)网搞代码

— 插入数据

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代码

#!/usr/bin/env python
import pymysql.cursors
# 在连接Mysql的时候添加charset='utf8'即可解决中文乱码问题
connection = pymysql.connect(user='用户名', passwd='密码', db='数据库名', charset='utf8')
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入门与进阶教学视频(极客学院)

来源:搞代码网:原文地址:https://www.gaodaima.com


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:python数据库查询中文乱码

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址