mysql写中文python,Python读写MySQL中文字符乱码问题速解

Python是目前非常火的一门编程语言,主要在于适合面广,可以用于开发各类应用程序。当然也能用于实现web服务器端程序,在使用Python实现读写MySQL数据库时,很多入门的小白同志都会遇到中文字符乱码的问题。

中文字符乱码的情形:

1c5d5d86d2592c1816609676c24a907d.gif

图片1.png (13.29 KB, 下载次数: 48)

2018-5-31 17:55 上传

源码如下:

1c5d5d86d2592c1816609676c24a907d.gif

图片2.png (35.04 KB, 下载次数: 48)

2018-5-31 17:55 上传

在遇到问题时,一般我们都会选择百度先查询该问题,于是有了下面的结果:

情况一:没声明字符集

1c5d5d86d2592c1816609676c24a907d.gif

图片3.png (48.05 KB, 下载次数: 54)

2018-5-31 17:55 上传

测试无果!!!问题依然存在!

1c5d5d86d2592c1816609676c24a907d.gif

图片4.png (52.54 KB, 下载次数: 53)

2018-5-31 17:55 上传

注:在Python3中已经不需要手动声明字符集编码了,默认就 是utf-8编码。

情况二:设置Python与MySQL交互编码集

1c5d5d86d2592c1816609676c24a907d.gif

图片5.png (62.16 KB, 下载次数: 53)

2018-5-31 17:55 上传

这个思想与PHP连接MySQL时类似(PHP需要这样做,而我们现在是Python)

1c5d5d86d2592c1816609676c24a907d.gif

图片6.png (56.44 KB, 下载次数: 49)

2018-5-31 17:56 上传

呃~~~ 报错了!

话说现在这查到的结果很多都是不正确的,或者由于当前环境本身就不对,胡乱将别人写的MySQL乱码解决方案拿上去确实解决不了。 最后,我们需要来看看官方网站了。

1c5d5d86d2592c1816609676c24a907d.gif

图片7.png (100.06 KB, 下载次数: 50)

2018-5-31 17:56 上传

通过官方网站上的API找到了答案,在数据库连接时可以手动设置字符集,这样就能解决中文字符在Python中显示乱码的问题了。

在手动设置字符集时,要特别注意一个细节。 正常我们在调用连接数据库的 connect方法时,是以实际参数形式将数据库名、用户名、密码、服务器地址、端口等信息传到函数中。 但是如果用这种方法继续写 字符集,那后面需要写很多数据才到字符集的位置上。 所以 ,这里的解决办法时,可以直接使用给形式参数赋值的形式传参,就不需要写中间那么多多余的实际参数了,请看下面的代码示例。

1c5d5d86d2592c1816609676c24a907d.gif

图片8.png (37.41 KB, 下载次数: 46)

2018-5-31 17:57 上传

结果:

1c5d5d86d2592c1816609676c24a907d.gif

图片9.png (15.56 KB, 下载次数: 47)

2018-5-31 17:57 上传

总结,一般我们在遇到问题时都会去查百度,但是由于百度列出的网页也是别人发布,也可能会存在不正确的情况,所以需要多测试。如果不能解决,可以通过官方网站、参考手册等方式也是解决问题的渠道!

本文使用环境:

Python 3.6.5

MySQL 5.5

连接MySQL的python模块 PyMySQL

编辑器 Python IDLE

感谢源码时代教学讲师提供此文章!

本文为原创文章,转载请注明出处!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值