MySQLdb查询有中文关键字查不到数据

本文介绍了一种在Python脚本中解决MySQL数据库中文查询的问题,通过设置连接时的字符集参数为utf8,成功实现了对含有中文名称的数据进行正确查询。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#/usr/bin/env python
#__*__coding:utf8__*__
 
zbx_host  =  '10.1.12.100'
zbx_port  =  3306
zbx_username  =  'zabbix'
zbx_password  =  '123456'
zbx_dbname  =  'zabbix'
groupname  =  '其他部门'
conn  =  MySQLdb.connect(host  =  zbx_host,port  =  zbx_port,user  =  zbx_username, passwd  =  zbx_password,db  =  zbx_dbname)
cursor  =  conn.cursor()
sql  =  '''select groupid from groups where name='%s' '''  %  groupname
cursor.execute(sql)
print  cursor.fetchall()


当groupname = '其他部门'的时候,一直没有查到数据,一直为空,但是将groupname = 'templates'时就有数据了,我感觉是不支持中文,数据库本身编码是utf8的j_0004.gif

剽窃了一下下人家大神写的帖子B_0018.gif发现MySQLdb插件还要在连接时声明一下,不长使用中文写脚本,一直没发现。

conn = MySQLdb.connect(host = zbx_host,port = zbx_port,user = zbx_username, passwd = zbx_password,db = zbx_dbname,charset = "utf8")

加个参数就好了,折腾了好长时间B_0062.gif


参考:

http://blog.youkuaiyun.com/dszgf5717/article/details/50985816











本文转自 wangpengtai  51CTO博客,原文链接:http://blog.51cto.com/wangpengtai/1946275,如需转载请自行联系原作者
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值