Unicode 兼容性范式中的字符串是否已处于相应的规范范式中?

Unicode 兼容性范式中的字符串是否已处于相应的规范范式中?,unicode,normalization,unicode-normalization,Unicode,Normalization,Unicode Normalization,我的测试告诉我,从Unicode 6.2开始,完全兼容分解中的所有字符都具有属性NFD_Quick_Check=Yes 这让我相信isNFKD(x)意味着isNFD(x),而isNFKC(x)意味着isNFC(x) 我的结论正确吗?那么稳定性呢?这些影响是否保证适用于未来版本的Unicode标准?我发现以下情况: 换句话说,NFC和NFKC的合成阶段是相同的——只是它们的分解阶段不同,NFKC应用兼容性分解 还有一点: 有两种形式的规范化转换为复合字符:规范化形式C和规范化形式KC。它们之间的区

我的测试告诉我,从Unicode 6.2开始,完全兼容分解中的所有字符都具有属性NFD_Quick_Check=Yes

这让我相信isNFKD(x)意味着isNFD(x),而isNFKC(x)意味着isNFC(x)

我的结论正确吗?那么稳定性呢?这些影响是否保证适用于未来版本的Unicode标准?

我发现以下情况:

换句话说,NFC和NFKC的合成阶段是相同的——只是它们的分解阶段不同,NFKC应用兼容性分解

还有一点:

有两种形式的规范化转换为复合字符:规范化形式C和规范化形式KC。它们之间的区别取决于生成的文本是与原始非规范化文本的规范等价物还是与原始非规范化文本的兼容性等价物。(在NFKC和NFKD中,K代表兼容性,以避免与代表合成的C混淆。)这两种类型的规范化在不同的情况下都很有用

在前三幅图中,NFKD形式始终与NFD形式相同,NFKC形式始终与NFC形式相同,因此为了简单起见,省略了这些列

这是我可以从课文中挑选出来的,它可能会对你的问题的一部分有所帮助。希望能有帮助

下表中还有此表:

NFD 规范化形式规范化分解:通过规范化等价对字符进行分解,并按特定顺序排列多个组合字符

NFC 规范化形式规范组合:字符被分解,然后由规范等价重新组合

NFKD 规范化格式兼容性分解:按兼容性分解字符,按特定顺序排列多个组合字符

NFKC 规范化形式兼容性组合:字符按兼容性分解,然后按规范等价性重新组合

看看对这些事情的解释,我不认为你能得出一个暗示另一个的结论。NFD通过规范等价进行分解,而NFKD通过兼容性进行分解

同一条还规定:

等效标准可以是规范(NF)或兼容性(NFK)

对我来说,这意味着它要么是规范的,要么是兼容的。NFD和NFKD做不同的事情


该条规定:

对于所有版本,即使在Unicode 4.1之前,也遵循以下策略:

规范化字符串保证是稳定的;也就是说,一旦规范化,字符串将根据Unicode的所有未来版本进行规范化


你的结论是正确的。Unicode标准附件第15节规定:

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

就稳定性而言,如果规范化字符串不包含任何未分配的代码点,则未来版本的Unicode也将如此。

六个月后!非常感谢。现在有人能解释一下我怎么会错过这个吗?;)