在python中调用存储过程时出现不正确的字符串值警告

在python中调用存储过程时出现不正确的字符串值警告,python,mysql,stored-procedures,utf-8,mysql-python,Python,Mysql,Stored Procedures,Utf 8,Mysql Python,我有一个数据库,它有一个在python脚本中调用的存储过程。 直到昨天它还没有问题。 但昨天我的数据库服务器出现问题,并恢复了数据库。 现在,我从相同的代码中得到以下警告: Warning: Incorrect string value: '\xD9\x88\xD8\xB2\xDB\x8C...' for column 'title' at row 1 我在DB中检查了一些编码: 在信息\u SCHEMA.列中: +--------------+--------------------+ |

我有一个数据库,它有一个在python脚本中调用的存储过程。
直到昨天它还没有问题。
但昨天我的数据库服务器出现问题,并恢复了数据库。
现在,我从相同的代码中得到以下警告:

Warning: Incorrect string value: '\xD9\x88\xD8\xB2\xDB\x8C...' for column 'title' at row 1
我在DB中检查了一些编码:
信息\u SCHEMA.列中

+--------------+--------------------+
| COLUMN_NAME  | CHARACTER_SET_NAME |
+--------------+--------------------+
| title        | utf8               |
+--------------+--------------------+
数据库排序:
latin1\u swedish\u ci

表排序规则:
utf8\u general\u ci

列排序规则:
utf8\u general\u ci

服务器字符集:
UTF-8unicode(utf8)

(都和以前一样!!)

我用这个连接:

self.con=mdb.connect(host=self.host, user=self.user, passwd=self.passwd, db=self.dbname,use_unicode=True, charset="utf8");
变量
title
是unicode

我试过:

  • 更改表格并重新设置
    标题
    列的
    utf8\u常规\u ci
  • 在调用过程之前调用
    设置名称utf8
  • 删除和重新创建存储过程
一个也没用!!!:-(


我在一个包含Unicode内容的临时表上执行了一个
insert
查询,它在没有警告的情况下工作


有什么问题吗?
我怎样才能解决这个问题

谢谢

问题解决了!
我在存储过程的VARCHAR参数中添加了
字符集utf8
,并解决了以下问题:

..., IN `title` VARCHAR(255) CHARSET utf8,...

但我想知道为什么在恢复DB之前没有问题!!!???

这很奇怪…将一些代码移动到存储过程中,遇到了编码问题-即使所有内容都设置为UTF8,似乎我们也必须在存储过程参数中提供编码。。。