Computational Linguistics 1, Exercise 2: splitting "ï" Code (run with py -X utf8): import unicodedata w = "naïve" print(len(w), len(unicodedata.normalize("NFD", w))) print([unicodedata.name(c) for c in unicodedata.normalize("NFD", "ï")]) Output from the run: 5 6 ['LATIN SMALL LETTER I', 'COMBINING DIAERESIS'] The result has 6 characters. "ï" splits into the base letter "i" and a combining diaeresis. The Unicode article describes this: a combining mark can be added after a base character, and the two encodings of an accented letter are treated as canonically equivalent. NFD is the decomposed form; NFC (used in the chapter) joins the pieces back together.