我的数据库中有一个文本。我从xhr发送一些文字给我看。函数find找不到一些unicode字符。 我想使用以下方法查找所选文本:
text.find(selection)
但有时变量'选择'有这样的字符:
ę # in xhr unichr(281)
在变量'text'中有一个char:
ę # in db has two chars unichr(101) + unichr(808)
我的数据库中有一个文本。我从xhr发送一些文字给我看。函数find找不到一些unicode字符。 我想使用以下方法查找所选文本:
text.find(selection)
但有时变量'选择'有这样的字符:
ę # in xhr unichr(281)
在变量'text'中有一个char:
ę # in db has two chars unichr(101) + unichr(808)
这里 unicodedata.normalize
可能会帮助你。
基本上,如果您规范化来自数据库的数据,并将您的选择规范化为相同的表单,那么在使用时应该会有更好的结果 str.find
, str.__contains__
(即 in
) str.index
, 和朋友。
>>> u1 = chr(281)
>>> u2 = chr(101) + chr(808)
>>> print(u1, u2)
ę ę
>>> u1 == u2
False
>>> unicodedata.normalize('NFC', u2) == u1
True
NFC代表着 正常形式组成 形成。你可以读一读 这里 对于其他可能形式的一些描述。