2013-03-28 12 views
6

Moje testy mówią mi, że począwszy od Unicode 6.2 wszystkie znaki w pełnej dekompozycji kompatybilności mają właściwość NFD_Quick_Check = Yes.Czy ciąg znaków w zgodnej normalnej formie znajduje się już w odpowiedniej normalnej formie kanonicznej?

To prowadzi mnie do przekonania, że ​​NFKD (x) implikuje isNFD (x), a isNFKC (x) implikuje isNFC (x).

Czy moje wnioski są prawidłowe? A co ze stabilnością? Czy te implikacje są zagwarantowane dla przyszłych wersji standardu Unicode?

Odpowiedz

1

Twoje wnioski są prawidłowe. Sekcja Design Goals standard Unicode załącznik nr 15 państw:

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

W odniesieniu do stabilności, to będzie prawdziwa dla przyszłych wersji Unicode jeśli znormalizowany ciąg nie zawiera żadnych nieprzypisane punkty kodowe.

+0

Sześć miesięcy później! Dzięki wielkie. Czy ktoś może mi teraz wyjaśnić, skąd, u diabła, tęskniłem? ;) –

0

znalazłem here następujące stwierdzający:

Innymi słowy, faza skład NFC i NFKC są takie same -tylko ich faza rozkładu różni, z NFKC zastosowanie dekompozycji z kompatybilnością.

Potem jest również to:

Istnieją dwie formy normalizacji, które przekształcają się do znaków kompozytowych: Normalizacja Form C i Normalizacja Formularz KC. Różnica między nimi zależy od tego, czy wynikowy tekst ma być kanonicznym odpowiednikiem oryginalnego niezormowanego tekstu, czy kompatybilnością równoważną oryginalnemu niezormowanemu tekstowi. (W NFKC i NFKD, K jest używane do oznaczenia kompatybilności w celu uniknięcia pomyłki z literą C dla kompozycji). Oba typy normalizacji mogą być przydatne w różnych okolicznościach.

W pierwszych trzech figur, forma NFKD jest zawsze taka sama, jak forma NFD i forma NFKC jest zawsze taka sama, jak w postaci NFC, więc dla uproszczenia te kolumny są pominięte.

Oto, co mogłem przeczytać z tekstu, który może rzucić nieco światła na przynajmniej część twojego pytania. Nadzieję, że pomoże

Jest też ten stół w Wikipedia article:

NFD Normalizacja postaci kanonicznej rozkładu: Postacie są rozkładane przez równoważności kanonicznej i wiele znaków łączące są ułożone w określonej kolejności.

NFC Forma normalizacji Skład kanoniczny: Znaki są rozkładane, a następnie przekształcane przez równoważność kanoniczną.

NFKD Normalizacji Kształt zgodności rozkładu: Postacie są rozkładane przez zgodności i kilka postaci łączące są rozmieszczone w określonej kolejności.

NFKC Kompozycja normalizacyjna Forma zgodności Kompozycja: Znaki są rozkładane przez kompatybilność, a następnie rekomponowane według równoważności kanonicznej.

Patrząc na wyjaśnienia tego, czym są te rzeczy, nie sądzę, aby można było wnioskować, że jedno z nich implikuje drugie.NFD rozkłada się przez kanoniczną równoważność, podczas gdy NFKD rozkłada się przez kompatybilność.

W tym samym artykule stwierdza również:

kryteria równoważności może być kanoniczny (NF) lub kompatybilność (NFK).

Dla mnie oznacza to, że jest to albo kanoniczne, albo jego kompatybilność. NFD i NFKD robią różne rzeczy.


W tym implementation notes artykułu stwierdza:

Dla wszystkich wersji, nawet przed Unicode 4.1 dodaje się polityka następuje:

Znormalizowana ciąg jest gwarancją stabilny; to znaczy, gdy znormalizowany, ciąg jest znormalizowany zgodnie ze wszystkimi przyszłymi wersjami Unicode.