使用PYTHON将特殊字符'ü','ä','ö'插入MySQL

时间:2016-10-23 18:31:57

标签: python mysql diacritics

我正在尝试使用python中的一些数据操作向(MySQL)数据库添加新条目。

我基本上将一些文件的名称解析为DB表的给定列。代码工作正常,名称将添加到数据库中。

某些文件包含属于德语的“特殊字符”,例如“ü”,“ä”,“ö”(称为变形金刚)。 具有这些特殊字符的单词也会被插入,并且可以在代码执行后在表格中完美地观察到(在phpMyAdmin / terminal中)。

问题:当我专门搜索时,这些已成功输入的特殊字符的单词在搜索中不会显示 。我得到的消息是一个空集 -

mysql> SELECT * from table1 where word='Künstler';  
Empty set (0.00 sec)

使用搜索phpMyAdmin时也一样。

但是,假设我通过它的id搜索单词,找到它并手动替换单词(在程序中重写'ü')然后在搜索中识别它!

我的假设是这取决于Python的Unicode。 因此,我在python中试过这个:

i = 'Künstler'
word = i.encode('utf-8')

产生了错误消息:

UnicodeDecodeError: 'ascii' codec can't decode byte 0xcc in position 10: ordinal not in range(128)

替换'decode'函数而不是编码没有产生错误,但它没有解决DB中的问题。

有谁知道如何解决这个问题?

此外,我的所有列都定义为 collat​​ion = utf8_general_ci

数据库中“单词”的列被定义为VARCHAR(128),因为有些单词很长。我试图将它改为8位,但这也没有用 我正在使用Python 2.7.11

*我相信这个问题与我在这里看到的其他问题不同,因为它涉及Python而其他人没有。

编辑:在我的问题被反复标记为重复之后(虽然不是),我看到我必须清楚地说明一些事情。 带有'ü','ä','ö'的单词正确插入表格中。 显示条目时它们显示正确。 只有当我专门搜索它们时才会出现。

0 个答案:

没有答案