Unicode 对字符串进行规范化会产生与对单个grapheme簇进行规范化相同的结果吗?

Unicode 对字符串进行规范化会产生与对单个grapheme簇进行规范化相同的结果吗?,unicode,unicode-normalization,grapheme-cluster,Unicode,Unicode Normalization,Grapheme Cluster,假设没有孤立的组合字符,则对字符串执行Unicode规范化的结果是否与将字符串拆分为grapheme集群、单独规范化每个集群然后连接规范化grapheme集群的结果相同?如果是,这是否只适用于规范化表单的子集 询问这一问题主要是出于对Unicode如何工作的兴趣,以及了解可能存在哪些潜在的边缘情况,而不是作为具体应用程序的一部分。不,这通常是不正确的。Unicode标准警告不要假设连接标准化字符串会产生另一个标准化字符串。发件人: 在使用规范化函数时,重要的是要认识到 在字符串连接下,所有规范化

假设没有孤立的组合字符,则对字符串执行Unicode规范化的结果是否与将字符串拆分为grapheme集群、单独规范化每个集群然后连接规范化grapheme集群的结果相同?如果是,这是否只适用于规范化表单的子集


询问这一问题主要是出于对Unicode如何工作的兴趣,以及了解可能存在哪些潜在的边缘情况,而不是作为具体应用程序的一部分。

不,这通常是不正确的。Unicode标准警告不要假设连接标准化字符串会产生另一个标准化字符串。发件人:

在使用规范化函数时,重要的是要认识到 在字符串连接下,所有规范化表单都是闭合的。那个 即使两个字符串X和Y被规格化,它们的字符串 串联X+Y不能保证被规范化

Unicode文本分割算法的许多方面都是可定制的;该标准通常只提供在大多数上下文中有用的默认值,但在特定目的需要时可以重写。因此,无法保证两个符合Unicode标准的应用程序甚至会就grapheme边界的位置达成一致。一个具体的例子是传统的grapheme集群和扩展的grapheme集群之间的区别

在前者中,具有Grapheme_Cluster_Break属性值Spacing_Mark或Prepend的字符不充当Grapheme Extender,而在后者中则充当Grapheme Extender。从Unicode 12.1开始,有。如果使用传统的grapheme群集定义,这些字符将破坏您的方法,如按以下顺序:

那是

音乐符号NOTEHEAD黑色ccc=0 音乐符号组合增强点ccc=226 音乐符号组合SPRECHGESANG-STEM ccc=216 由于组合增广点和组合sprechgesang stem都是间隔标记,因此该序列实际上被划分为三个传统的字形簇,每个簇的长度只有一个字符,因此会自动归一化。然而,整个字符串的真正标准化将切换点和杆的位置,因为它们的CCC值


如果我们忽略了裁剪算法的可能性,而只关注标准中严格定义的扩展图形集簇,那么就我所知,对每个图形集簇单独进行归一化应产生与一次性对整个字符串进行归一化相同的结果,但是没有正式的保证标准的未来修订不会改变这一点。

不,这通常是不正确的。Unicode标准警告不要假设连接标准化字符串会产生另一个标准化字符串。发件人:

在使用规范化函数时,重要的是要认识到 在字符串连接下,所有规范化表单都是闭合的。那个 即使两个字符串X和Y被规格化,它们的字符串 串联X+Y不能保证被规范化

Unicode文本分割算法的许多方面都是可定制的;该标准通常只提供在大多数上下文中有用的默认值,但在特定目的需要时可以重写。因此,无法保证两个符合Unicode标准的应用程序甚至会就grapheme边界的位置达成一致。一个具体的例子是传统的grapheme集群和扩展的grapheme集群之间的区别

在前者中,具有Grapheme_Cluster_Break属性值Spacing_Mark或Prepend的字符不充当Grapheme Extender,而在后者中则充当Grapheme Extender。从Unicode 12.1开始,有。如果使用传统的grapheme群集定义,这些字符将破坏您的方法,如按以下顺序:

那是

音乐符号NOTEHEAD黑色ccc=0 音乐符号组合增强点ccc=226 音乐符号组合SPRECHGESANG-STEM ccc=216 由于组合增广点和组合sprechgesang stem都是间隔标记,因此该序列实际上被划分为三个传统的字形簇,每个簇的长度只有一个字符,因此会自动归一化。然而,整个字符串的真正标准化将切换点和杆的位置,因为它们的CCC值

如果我们忽略了裁剪算法的可能性,而只关注标准中严格定义的扩展图形集簇,那么就我所知,对每个图形集簇单独进行归一化应产生与一次性对整个字符串进行归一化相同的结果,但并没有正式保证该标准的未来修订不会改变这一点