2016-03-21 23 views
11

Veritabanımda bir metin var. Xhr'den metne bakış açım. İşlev bulma bazı unicode karakterleri bulamıyor.Python aynı karaktere sahip değil

text.find(selection) 

ama bazen değişken 'seçim' böyle karakter vardır: Sadece kullanarak seçili metni bulmak istiyoruz

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

cevap

10
: değişken 'metin' in

ę # in xhr unichr(281) 

bir karakter var

Burada unicodedata.normalize size yardımcı olabilir. Eğer db gelen verileri normalleştirmek ve aynı forma seçiminizi normalleştirmek eğer str.find, str.__contains__ (yani in), str.index ve arkadaşları kullanırken

Temel olarak, daha iyi bir sonuç olmalıdır.

>>> u1 = chr(281) 
>>> u2 = chr(101) + chr(808) 
>>> print(u1, u2) 
ę ę 
>>> u1 == u2 
False 
>>> unicodedata.normalize('NFC', u2) == u1 
True 

NFC Normal Form oluşan formu anlamına gelir. Diğer olası formların bazı açıklamaları için here'u okuyabilirsiniz.

İlgili konular