使用Python向mysql数据库发送unicode字符

使用Python向mysql数据库发送unicode字符,python,unicode,mysql-python,Python,Unicode,Mysql Python,在过去的几个小时里,我在向数据库发送unicode字符时遇到了很多麻烦。我正在使用MySQLdb Python库。我必须先声明密码,这样才能保存文件 # -*- coding: utf-8 -*- 然后我添加了charset=“utf8”,在connect函数中使用\u unicode=True作为参数 db = MySQLdb.connect(host="146.247.111.111",user="xxxxxxxx",passwd="[redacted]",db="xxxxxxxx",c

在过去的几个小时里,我在向数据库发送unicode字符时遇到了很多麻烦。我正在使用MySQLdb Python库。我必须先声明密码,这样才能保存文件

# -*- coding: utf-8 -*- 
然后我添加了charset=“utf8”,在connect函数中使用\u unicode=True作为参数

db = MySQLdb.connect(host="146.247.111.111",user="xxxxxxxx",passwd="[redacted]",db="xxxxxxxx",charset="utf8",use_unicode=True)
db.set_character_set('utf8')
cursor = db.cursor()
cursor.execute("INSERT INTO xls_pravne_osebe_users(name,email,Wall_idWall) VALUES(%s,%s,1) ",("šđčđĐĐšš","ŽŽŽŽŽŽ"))

它确实改变了一些东西,但一切仍然不是它应该的样子。字母ž和š是正确的,在我添加编码参数之前它们不是正确的,但是字母ćđ仍然不正确。所有这些字符都是unicode字符。这是什么编码,对某些字符进行了正确编码,但对同一系列的其他字符编码失败?

我屏蔽了您的密码;正如您已经发布了机器的实际IP。您的数据库表排序规则是什么?utf8是排序规则这是Python的什么版本?它是Python 2.7。我刚刚发现了问题。表排序规则为utf8,但排序规则为拉丁1_瑞典_ci。我不知道为什么会这样,但这就是问题所在。