Python: 插入数据库报错:Incorrect string value: '\\xE9\\x9C

用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.文本的编码问题也应该统一。

基本上碰到的问题都是这五类的原因,确定没问题后,基本就能顺利操作数据库

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值