Проблемът, който срещате, е, че unicode позволява множество начини за съставяне на един и същ символ. Модулът на Python unicodedata
предоставя функция normalize
който ви позволява да конвертирате unicode представяния във фиксирана форма
(напр. 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'))
Във вашия пример tripadvisor се показва в NFD форма, докато notepad използва NFC.