Какая форма нормализации Unicode лучше? - PullRequest
12 голосов
/ 22 марта 2011

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

1 Ответ

27 голосов
/ 22 марта 2011

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

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

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

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

NFKD идет дальше, чем NFD, заменяя некоторые аналогичные символы друг на друга.⁵, например, заменяется на 5. Это «повреждает» текст (пользователь может разумно выбрать ⁵ более 5 по уважительной причине), но полезно для поиска (выполните поиск «fiſh» в Google, и он возвращает результаты для «fish», потому чтоон рассматривает long-s так же, как short-s) и как ограничение в некоторых случаях, чтобы избежать проблем безопасности с похожими, но разными символами.NKFC сначала выполняет NFKD, а затем объединяет его так же, как NFC.

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

...