今天把学校里留的学生信息查询的接口用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中显示中文乱码的问题终于解决!
不骄不躁,不卑不亢
浙公网安备 33010602011771号