用Python 读取文本然后插入数据库, 内容包含有中文字符, 总是报如下错误,(已经保证数据库编码utf-8,文本内容同样为utf-8):
Traceback (most recent call last):
File "xml2sqlOld.py", line 84, in handleMsg
cursor.execute(sql)
File "C:\Python27\lib\site-packages\MySQLdb\cursors.py", line 174, in execute
self.errorhandler(self, exc, value)
File "C:\Python27\lib\site-packages\MySQLdb\connections.py", line 36, in defaulterrorhandler
raise errorclass, errorvalue
OperationalError: (1366, "Incorrect string value: '\\xE9\\x9C\\x80\\xE8\\xA6\\x81...' for column 'content' at row 1")
已经确保了数据库表是utf-8
了 结果仍然无法插入,后来想到新建数据库(不是数据库表)的时候也有个编码,然后就新建了一个数据库,指定为utf-8,
然后在这个新的数据库里面在建立需要的表结构,再次执行程序,成功导入。 操作数据库的时候中文编码问题经常遇到, 个人认为检查一下如下几个方面:
1. 确保数据库编码为 `utf-8` 2. 确保数据库表的编码为`utf-8` 3. 确保数据库字段编码为 `utf-8` 4.程序连接数据库指定编码:`MySQLdb.connect("localhost","root","***","Data",charset='utf8')` 5.文本的编码问题也应该统一。
基本上碰到的问题都是这五类的原因,确定没问题后,基本就能顺利操作数据库