Normalizowanie Unicode
Czy w Pythonie istnieje standardowy sposób znormalizowania ciągu Unicode, tak że zawiera on tylko najprostsze jednostki Unicode, których można użyć do jego reprezentacji?
Mam na myśli coś, co tłumaczyłoby taką sekwencję['LATIN SMALL LETTER A', 'COMBINING ACUTE ACCENT']
do['LATIN SMALL LETTER A WITH ACUTE']
?
Zobacz, gdzie jest problem:
>>> import unicodedata
>>> char = "á"
>>> len(char)
1
>>> [ unicodedata.name(c) for c in char ]
['LATIN SMALL LETTER A WITH ACUTE']
Ale teraz:
>>> char = "á"
>>> len(char)
2
>>> [ unicodedata.name(c) for c in char ]
['LATIN SMALL LETTER A', 'COMBINING ACUTE ACCENT']
Mogłabym, oczywiście, przejrzeć wszystkie znaki i dokonać ręcznej wymiany itd., Ale nie jest to wydajne i jestem prawie pewna, że tęsknię za połową specjalnych przypadków i popełnię błędy.