какая форма нормализации используется по умолчанию для пользовательского ввода
Зависит от вашей раскладки клавиатуры / IME.При желании можно генерировать нормальную форму C, D или сумасшедшую смесь обоих.
Раскладки клавиатуры имеют тенденцию к NFC, потому что в дни до Unicode они обычно выводили однобайтовый символв локальной кодовой странице для каждого нажатия клавиши.Однако есть исключения.
Например, при использовании вьетнамской раскладки Windows, некоторые диакритические знаки печатаются как одно нажатие клавиши в сочетании с буквой (например, roundflex â
), а некоторые - как диакритический знак сочетания (например, могилаà
).Грамма a-with-circleflex-and-grave будет напечатана как a-circleflex, за которым следует комбинация-могила ầ
, которая будет равна 0xE2,0xCC во вьетнамской кодовой странице 1258 и будет выглядеть как U + 00E2, U+0300 в Юникоде.
Это не в обычной форме C (которая будет ầ
U + 1EA7 латинская строчная буква A с круговым сплетением и могилой), ни D (что будет ầ
U + 0061, U + 0302, U + 0300).
В мире Windows и в Интернете культурное предпочтение отдается NFC, а в мире Apple - NFD.Но это не строго соблюдается, и вы должны ожидать, что справитесь с любой смесью комбинированных и разложенных символов.
не зависит от нормализации ядра и файловой системы?
Да,ядро и файловая система ничего не знают о нормализации и, к счастью, позволят вам иметь файлы с именами ầ.txt
, ầ.txt
и ầ.txt
в одной папке.