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.