导航

python编码与mysql中文乱码问题的解决

Posted on 2015-01-18 19:26  Nrrre  阅读(233)  评论(0)    收藏  举报

今天把学校里留的学生信息查询的接口用python给爬到了本地数据库里了,因为有的时候要用的,更主要的是巩固一下python

里面最让人头疼的就是python的编码问题!

一开始的时候把数据写到数据库里时,中文总是出现乱码问题,这个问题折腾了我好久,但还好解决了!
最初遇到乱码问题我认为是数据库的编码问题,于是百度了下解决方案,如下:

vim /etc/mysql/my.cnf

[client] 下添加 default-character-set=utf8
[mysqld] 下添加

default-storage-engine=INNODB
character-set-server=utf8
collation-server=utf8_general_ci

但是重启mysql后还是不行,这时候我觉得可能是python的编码问题
于是把python中把所有向数据库插入的字符串使用 encode() 编码

response = socket.read().decode('gbk').encode('utf8')

并在文件开头加上 #encoding:utf8

坑爹的是竟然还是乱码!不能忍!

终于在我不懈的探索中找到了问题所在,,,

连接数据库时要设置连接编码!

dbc = MySQLdb.connect(host='localhost', user='root', passwd='xxx', charset='utf8')

至此, mysql中显示中文乱码的问题终于解决!