Почему LATIN SMALL LETTER I DOTLESS I, КОМБИНИРУЮЩАЯ ТОЧКА ВЫШЕ, не нормализуется до «i» в форме NFC? - PullRequest
0 голосов
/ 29 апреля 2018

Пример на Python:

>>> s = 'ı̇'
>>> len(s)
2
>>> list(s)
['ı', '̇']
>>> print(", ".join(map(unicodedata.name, s)))
LATIN SMALL LETTER DOTLESS I, COMBINING DOT ABOVE
>>> normalized = unicodedata.normalize('NFC', s)
>>> print(", ".join(map(unicodedata.name, normalized)))
LATIN SMALL LETTER DOTLESS I, COMBINING DOT ABOVE

Как вы можете видеть, нормализация NFC не образует i + точку без нормали i. Есть ли для этого обоснование? Это недосмотр? Или он не включен, потому что NFC, как предполагается, является совершенной инверсией NFD (и никто не хотел бы разлагать i на без точек i + точка).

1 Ответ

0 голосов
/ 29 апреля 2018

Хотя NFC не является «идеальным обратным» NFD, это следует из того, что NFC определяется в терминах тех же отображений разложения, что и NFD. NFC в основном определяется как NFD с последующим перекомпонованием определенных пар разложения NFD. Поскольку для LATIN SMALL LETTER I нет отображения разложения, оно никогда не может быть результатом перекомпоновки.

...