You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
UAX #15 specifies that toNFKC(x) = toNFKC(toNFD(x)) - since x and toNFD(x) are canonically equivalent, they should also be compatibility equivalent and have the same NFKC form.
The sequence:
U+ff80 U+1fd3 U+ff9e U+1fd3
is normalised to form NFD by uunf as:
U+ff80 U+3b9 U+308 U+301 U+ff9e U+3b9 U+308 U+301
and normalised to form NFKC as:
U+30c0 U+390 U+390
However, when the NFD form above is further normalised to form NFKC, uunf produces the following output, which differs from the NFKC form above:
U+30bf U+390 U+3099 U+390
(I found this example using crowbar. The full testcase is here)
The text was updated successfully, but these errors were encountered:
Thanks for the reduction. There was a bug in the (terrible) implementation of the canonical composition algorithm. This was rewritten more cleanly and hopefully correctly in 9459c90
UAX #15 specifies that
toNFKC(x) = toNFKC(toNFD(x))
- sincex
andtoNFD(x)
are canonically equivalent, they should also be compatibility equivalent and have the same NFKC form.The sequence:
is normalised to form
NFD
by uunf as:and normalised to form
NFKC
as:However, when the
NFD
form above is further normalised to formNFKC
,uunf
produces the following output, which differs from theNFKC
form above:(I found this example using crowbar. The full testcase is here)
The text was updated successfully, but these errors were encountered: