MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Mesma palavra, mas caracteres unicode diferentes


O problema que você encontra é que o unicode permite várias maneiras de compor o mesmo símbolo. O módulo Python unicodedata fornece uma função normalize que permite converter representações unicode em um formulário fixo (por exemplo, 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'))

No seu exemplo, o tripadvisor é exibido no formato NFD, enquanto o bloco de notas usa o NFC.