import unicodedata as ud
astr=u"\N{LATIN SMALL LETTER E}" + u"\N{COMBINING ACUTE ACCENT}"
combined_astr=ud.normalize('NFC',astr)
'NFC' говорит ud.normalize применить каноническое разложение ('NFD'), затем
составьте предварительно объединенные символы:
print(ud.name(combined_astr))
# LATIN SMALL LETTER E WITH ACUTE
Они оба печатают одинаково:
print(astr)
# é
print(combined_astr)
# é
Но их респоры разные:
print(repr(astr))
# u'e\u0301'
print(repr(combined_astr))
# u'\xe9'
И их кодировки, скажем utf_8
, (что неудивительно) тоже различны:
print(repr(astr.encode('utf_8')))
# 'e\xcc\x81'
print(repr(combined_astr.encode('utf_8')))
# '\xc3\xa9'