2010-08-23 38 views
2

在我的VB.NET应用程序中,我比较了使用IPA记录的单词,其中许多单词都有很多变音标记。在其中一个比较中,我比较字符的字符。但是,当我遍历字,音调符号标记出来作为单独的字符(如我所期望的,因为这是unicode):将unicode字符加上变音符号作为单个字符处理?

o`ku`ku` 

然而,AU性格比AU不同加上本作的目的口音方案并需要加以区分。

有没有一种很好的方式来迭代unicode字符串,使得字符和它们的重音被认为是一个字符?我试图避免硬编码所有组合为单个字符的组合。

编辑:

的正常化()方法,可与具有一个单字符的Unicode表示简单音调符号标记,如最重音的元音字符的工作。但是,这不适用于更晦涩的符号,如

回答

3

这就是string.Normalize()照顾。您可以使用Normalize(NormalizationForm)覆盖来明确控制它。

+0

这适用于简单的重音符号,但一些更复杂的IPA字符没有组合(因为它们没有单字符表示)。例如,ˤ修饰符不会合并。我会更新我的问题以反映这一点。 – davidscolgan 2010-08-23 17:01:15

+0

这怎么可能是一个问题?您尝试比较的词语不会有组合字形。 – 2010-08-23 17:16:24

+0

问题在于组合字形是用于此程序目的的重要信息,并且不会让它们更改计算。 ɔ与ɔ完全不同。 – davidscolgan 2010-08-23 17:42:27