我有一个数据库,它有一个存储过程,我在我的 python 脚本中调用它。
直到昨天没有问题。
但是昨天我的数据库服务器出现问题并恢复了数据库。
现在我从相同的代码中得到这个警告:
Warning: Incorrect string value: '\xD9\x88\xD8\xB2\xDB\x8C...' for column 'title' at row 1
我检查了 DB 中的一些编码:
在INFORMATION_SCHEMA.COLUMNS
:
+--------------+--------------------+
| COLUMN_NAME | CHARACTER_SET_NAME |
+--------------+--------------------+
| title | utf8 |
+--------------+--------------------+
数据库排序规则:latin1_swedish_ci
表排序规则:utf8_general_ci
列排序规则:utf8_general_ci
服务器字符集:(UTF-8 Unicode (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_general_ci
设置title
列 - 在调用
SET NAMES utf8
过程之前调用。 - 删除和重新创建存储过程
没有工作!!!:-(
我insert
在一个带有 Unicode 内容的临时表上执行了一个查询,它在没有警告的情况下工作!!!
问题是什么?
我怎样才能解决这个问题?
谢谢