sql >> Base de Datos >  >> NoSQL >> MongoDB

Misma palabra pero diferentes caracteres Unicode

El problema que encuentra es que Unicode permite múltiples formas de componer el mismo símbolo. El módulo de Python unicodedata proporciona una función normalize que le permite convertir representaciones Unicode en un formulario fijo (por ejemplo, NFC)

from unicodedata import normalize

S1 = b'\xc4\x83\xcc\x83'.decode('UTF-8')
S2 = b'\xe1\xba\xb5'.decode('UTF-8')

print(normalize('NFC', S1).encode('UTF-8'))
print(normalize('NFC', S2).encode('UTF-8'))

En su ejemplo, Tripadvisor se muestra en formato NFD, mientras que el bloc de notas usaba NFC.