Подтвердить что ты не робот

Что является лучшей формой нормализации Unicode?

У меня есть четыре варианта Dreamweaver: C, D, KC, KD. Какой из них выбрать и почему?

4b9b3361

Ответ 1

Для чего? Сохраняя файл, используйте NFC, поскольку модель веб-символа использует его (строго, нормализация W3C настаивает на том, что и поток будет в NFC, а также, когда сущности в HTML или XML преобразуются в символы, которые они представляют, что он все еще находится в NFC). Шансы, что это когда-либо будет иметь практическое значение, - тонкие, хотя это может остановить несколько довольно неясных проблем, которые нарушают кого-то по линии.

Нормализация означает, что определенные эквивалентные последовательности приводят к идентичным потокам. Например, U + 0065 (e), за которым следует U + 0301 (сочетание острого акцента), эквивалентно U + 00E9 (é) самостоятельно.

NFD разбивает все такие строки на свои составные части (например, превращает U + 00E9 в U + 0065, за которым следует U + 0301). Если в строке есть два или более комбинационных символа, они перенаправляются в соответствии с правилами, которые обеспечивают согласованность (ḉ может иметь седилу, за которой следует accute или accute, за которой следует cedilla, и нам нужен последовательный заказ одна и та же строка). В основном NFD полезен для внутренней обработки как часть другой задачи, такой как снятие акцентов или создание NFC.

NFC начинается с NFD, а затем, когда это возможно, объединяет символы вместе, за исключением нескольких исключений, чтобы гарантировать, что нормализованная строка с одной версией Unicode остается такой же с другой.

NFKD идет дальше NFD при замене некоторых похожих символов друг на друга. ⁵, например, заменяется на 5. Это "повреждает" текст (пользователь может разумно выбрать ⁵ более 5 по уважительной причине), но полезен для поиска (поиск "рыбы" в google и он возвращает результаты для "рыбы", потому что он рассматривает длинные строки так же, как короткие) и как ограничение в некоторых случаях, чтобы избежать проблем с безопасностью с похожими, но разными символами. NKFC сначала выполняет NFKD, а затем объединяется так же, как NFC.

http://unicode.org/reports/tr15/ для полного тощего и "использовать NFC, но не беспокойтесь об этом", чтобы повторить короткий ответ.