使用python3将不可见的unicode插入MySQL,但遇到重复

使用python3将不可见的unicode插入MySQL,但遇到重复,python,mysql,unicode,Python,Mysql,Unicode,当我使用python(v3.2)将设备数据插入MySQL(v5.5.6)时。它遇到了一个问题 这是设备A(它包含三个unicode和一个空格): '\u202d\u202d\u202d' 和设备B(它只是一个空白): '' 问题是当我将所有设备数据插入MySQL时,错误是 重复输入“激活设备-20151201-1-5740-01000P”---‭‭ ‭--' 对于“主要”键 我猜MySQL已经处理了'\u202d'(可能是一个用于反转字符串的unicode?) 如何在python3中模拟类似My

当我使用python(v3.2)将设备数据插入MySQL(v5.5.6)时。它遇到了一个问题

这是设备A(它包含三个unicode和一个空格): '\u202d\u202d\u202d'

和设备B(它只是一个空白): ''

问题是当我将所有设备数据插入MySQL时,错误是

重复输入“激活设备-20151201-1-5740-01000P”---‭‭ ‭--' 对于“主要”键

我猜MySQL已经处理了'\u202d'(可能是一个用于反转字符串的unicode?)

如何在python3中模拟类似MySQL的过程? 如何避免重复

预期结果是将python3中的“\u202d\u202d\u202d”转换为“”


请帮帮我。

这里有些含糊不清的地方。您想只保留可见的ascii字符还是同时保留可见的unicode字符

如果只想保留可见的ascii字符,简单的方法是使用python内置的
string
模块

import string
new_string = "".join(filter(lambda x:x in string.printable, original_string))

对于您的特定用例,空格是可见ascii的一部分-因此上面将“\u202d\u202d\u202d”和“”转换为“”

,这有点复杂。下面是一个关于如何使用正则表达式的很好的解释,您是否希望看到一些中东文本--“从右到左”?