2016-03-21 6 views
11

私のデータベースにはテキストがあります。私はxhrからいくつかのテキストを私の見解に送ります。関数findはいくつかのUnicode文字を見つけません。Pythonの同じ文字が等しくない

text.find(selection) 

時には変数 '選択' のような文字があります: 私はちょうど使用して、選択したテキストを検索したい

ę # in db has two chars unichr(101) + unichr(808) 

答えて

10
:変数 'テキスト' で

ę # in xhr unichr(281) 

をCHARあり

ここでunicodedata.normalizeがお手伝いします。あなたは、DBからのデータを正規化し、同じフォームにあなたの選択を正規化する場合str.findstr.__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は正規形作曲フォームの略です。他の可能なフォームの説明については、hereを読むことができます。

関連する問題