2013-03-28 2 views
6

Мои тесты говорят мне, что с Unicode 6.2 все символы в полноразмерных разложениях имеют свойство NFD_Quick_Check = Yes.Является ли строка в нормальной форме совместимости уже в соответствующей канонической нормальной форме?

Это заставляет меня думать, что isNFKD (x) подразумевает isNFD (x), а isNFKC (x) означает isNFC (x).

Являются ли мои выводы правильными? А как насчет стабильности? Гарантируются ли эти последствия для будущих версий стандарта Unicode?

ответ

1

Ваши выводы верны. Раздел Design Goals стандарт Юникод Приложения № 15 гласит:

toNFKC(x) = toNFC(toNFKC(x)) 
toNFKD(x) = toNFD(toNFKD(x)) 

Что касается стабильности, то это будет справедливо и для будущих версий Unicode, если нормированная строка не содержит какие-либо нераспределенные кодовые точки.

+0

Шесть месяцев спустя! Спасибо. Теперь может кто-нибудь объяснить мне, как, черт возьми, я пропустил это? ;) –

0

Я нашел here следующее, что гласит:

Другими словами, фазовый состав NFC и NFKC являются одинаковыми -только их фаза разложения отличается, с применением NFKC разложения совместимости.

Тогда есть это:

Есть две формы нормализации, которые преобразовывают к композитным символов: Нормализация Form C и Нормализация форма КС. Разница между ними зависит от того, должен ли результирующий текст быть каноническим эквивалентом оригинального ненормализованного текста или совместимости, эквивалентной оригинальному ненормализованному тексту. (В NFKC и NFKD, K используется для обеспечения совместимости, чтобы избежать путаницы с C для композиции.) Оба типа нормализации могут быть полезны в разных обстоятельствах.

В первых трех фигурах, NFKD форма всегда совпадает с формой NFD и NFKC форма всегда совпадает с формой NFC, так что для простоты эти столбцы опущены.

Это то, что я мог бы выбрать из текста, который может пролить свет, по крайней мере, на часть вашего вопроса. Надеюсь, что это помогает

Существует также эта таблица в Wikipedia article:

NFD Нормализация Форма Canonical разложение: символов разлагаются канонической эквивалентностью, и несколько несамостоятельных символов располагаются в определенном порядке.

NFC Форма нормализации Каноническая композиция: Символы разлагаются и затем перестраиваются канонической эквивалентностью.

NFKD форме нормализации совместимости разложения: Символы разлагаются совместимости, а также несколько символов, сочетающие расположены в определенном порядке.

NFKC Нормализация Форма Совместимость Состав: символы разлагаются совместимости, то воссозданные канонической эквивалентности.

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

В этой же статье также говорится:

критерии эквивалентности могут быть либо канонический (NF) или совместимость (НФК).

Для меня это означает, что он либо канонический, либо совместимый. NFD и NFKD делают разные вещи.


В этой implementation notes статье говорится:

Для всех версий, даже до Unicode 4.1, следующая политика следует:

Нормированный строка гарантированно будет стабильным; то есть после нормализации строка нормализуется в соответствии со всеми будущими версиями Unicode.

Смежные вопросы