解决python数据库查询出现中文乱码的方法

这篇文章主要介绍解决python数据库查询出现中文乱码的方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

成都创新互联公司长期为上千家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为滨江企业提供专业的成都网站设计、成都网站建设,滨江网站改版等技术服务。拥有十年丰富建站经验和众多成功案例,为您定制开发。

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

解决python数据库查询出现中文乱码的方法

执行pip install PyMySQL 完成pyMySQL安装

数据库部分

-- 建表语句

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数据库查询出现中文乱码的方法

解决乱码方法如下:

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数据库查询出现中文乱码的方法

以上是解决python数据库查询出现中文乱码的方法的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注创新互联行业资讯频道!

当前名称:解决python数据库查询出现中文乱码的方法
文章网址:https://www.cdcxhl.com/article12/pdggdc.html

成都网站建设公司_创新互联,为您提供网站设计公司全网营销推广服务器托管关键词优化动态网站云服务器

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

小程序开发