A sign/abbreviation for "magister"

Philippe Verdy via Unicode unicode at unicode.org
Sat Nov 3 18:05:39 CDT 2018


It should be noted that the algorithmic complexity for this NFLD
normalization ("legacy") is exactly the same as for NFKD ("compatibility").

However NFLD is versioned (like also NFLC), so NFLD can take a second
parameter: the maximum Unicode version which can be used to filter which
decomposition mappings are usable (they indicate the first minimal version
where the mapping applies).

It is even possible to allow a "legacy" normalization to be changed in a
later version for the same source string:

 # deprecated codepoint(s) ; new preferred sequence ; Unicode version in
which it was deprecated
  101234 ; 101230 0300... ; 10.0
  101234 ; 101240 0301... ; 11.0

It is also possible to add other filters to these recommanded new
encodings, for example a language (or a BCP 47 locale identifier):
  101234 ; 101230 0300 ; 10.0 ; fr
  101234 ; 101240 0301... ; 10.0
(here starting in the same version 10.0, the new recommandation is to
replace <101234> by <101240 0301> in all languages except French (BCP47
rules) where <101230 0300> should be used instead).

In that case, the NFKD normalization can be viewed as if it was an historic
version of NFLD, or a specialisation of NFLD for a "compatibility locale"
(using "u-nfk" as a BCP 47 locale identifier???), independant of the
unicode version (you can specify any version in the parameters of the NFLD
or NFLC functions, and the locale identifier can be set to "u-nkf").

The complete parameters for NFLD (or NFLC) are :
  NFLD(text, version, locale) -> returns a text in NFD form
  NFLC(text, version, locale) -> returns a text in NFC form

The default version is the latest supported version of Unicode, the default
locale is "root" (in CLDR) or the same as the DUCET in Unicode, but should
not be "u-nfk".

And so:
 NFKD(text)  = NFLD(text, 8.0, "u-nfk") =  NFLD(text, 12.0, "u-nfk")
= NFLD(text, "u-nfk")  = NFD(NFLD(text, "u-nfk"))
 NFKC(text)  = NFLC(text, 8.0, "u-nfk") =  NFLC(text, 12.0,
"u-nfk")  = NFLC(text, "u-nfk")  = NFC(NFLC(text, "u-nfk"))
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://unicode.org/pipermail/unicode/attachments/20181104/98dec218/attachment.html>


More information about the Unicode mailing list