Python MySQLdb 使用utf-8 编码插入中文数据问题
2018-03-13 11:58
691 查看
最近帮伙计做了一个从网页抓取股票信息并把相应信息存入MySQL中的程序。
使用环境:
Python 2.5 for Windows
MySQLdb 1.2.2 for Python 2.5
MySQL 4.1.22
在写程序中遇到了些怪的故障。
第一个问题:插入中文失败
这个是由于字符编码问题引起的。MySQL安装时我已经设置为utf8编码,表也是使用utf8编码建立。程序中只要在开头写好#-*- coding: utf-8 -*-,并在设定连接字符串时候写清使用utf8就可以了
conn=MySQLdb.connect(host="127.0.0.1",user="webdb",passwd="web123",db="web",charset="utf8")。设置之后从MySQL中取出的以utf8编码保存的中文也不会发生乱码。
对中文字符串,如:a = "浦发银行",在进行插入操作前做一下编码转换
a = a.decode("gbk").encode("utf-8")。然后进行插入操作就没有任何问题了。
第二个问题:能插入之后无法在MySQL中保存刚才插入的数据
经过检查数据可以被正确的插入,但是连接断开之后不保存在表中。经过检查发现原来是漏了conn.commit()。需要在语句执行之后提交操作。
源代码如下。
#-*- coding: utf-8 -*- import sys,MySQLdb conn=MySQLdb.connect(host="127.0.0.1",user="webdb",passwd="web123",db="web",charset="utf8") #需要设定一下charset为utf-8 cursor=conn.cursor() #生成连接的指针对象 #进行字符串编码转换并进行插入 a = "浦发银行" a = a.decode("gbk").encode("utf-8") #编码转换为utf-8 sql="insert into stocklist (stockno,stockname) values (%s,%s)" #生成sql语句 param=('600000',a) #生成sql语句的参数 n = cursor.execute(sql,param) #执行sql语句 #以上操作等价于n = cursor.execute("insert into stocklist (stockno,stockname) values ('430004','"+ "浦发银行".decode("gbk").encode("utf-8") + "')") print n conn.commit() #提交操作结果 #进行查询操作检查刚刚执行的插入操作结果 n = cursor.execute("select * from stocklist") for row in cursor.fetchall(): print row[0] + row[1] cursor.close() #关闭指针 conn.close() #关闭连接
总结
以上所述是小编给大家介绍的Python MySQLdb 使用utf-8 编码插入中文数据问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
您可能感兴趣的文章:
相关文章推荐
- Python MySQLdb 使用utf-8 编码插入中文数据
- Python MySQLdb 使用utf-8 编码插入中文数据
- Python MySQLdb 使用utf-8 编码插入中文数据
- Python MySQLdb 使用utf-8 编码插入中文数据
- Python MySQLdb 使用utf-8 编码插入中文数据
- Python中使用MySQLdb插入数据中文及变量问题
- (冲突)Python中使用pymysql插入中文数据问题
- python中文的编码问题(使用decode('gbk').encode('utf-8')和decode('utf-8').encode('gbk'))
- Python3.4下使用pymysql插入数据后没有反应的问题
- MySql5.5 在安装时设置编码为utf-8,扔不能插入中文的问题解决
- 前台页面使用utf-8编码,url中包含中文参数时后台获取参数乱码问题解决
- Python字符串编码+MySQLdb中的中文字符问题
- python mysqldb 查询数据,中文乱码问题
- Python调用MySQLdb插入中文乱码的问题
- python使用MySQLdb向mySQL批量插入数据的方法
- Python 使用 UTF-8 编码,python代码中包含中文时执行脚本错误的解决办法。
- JSP 即使使用UTF-8编码,仍然出现中文乱码问题的原因
- JAVA ,SSH中文及其乱码问题的解决 6大配置点 使用UTF-8编码
- python 使用 mysqldb 批量插入数据
- python替换UTF-8编码文本中任意特殊字符,包括中文符号问题:大量文本,将其中的特殊字符用空