如何用普通的Alf替换Alf Bel tanween

最佳答案

我不知道C#,但这是一个UNICODE问题。我会使用UNICODE normalization通过this function做到这一点。

首先,归一化为分解形式。接下来,从“标记,非间距”类别中过滤掉所有字符 [Mn] 。最后,归一化为组合形式。

如果我没看错,则您的字形在UNICODE中以ARABIC LETTER ALEF WITH HAMZA ABOVE(U+0623 [Lo] )表示,后跟ARABIC FATHATAN(U+064B [Mn] )。第一个字符分解为ARABIC LETTER ALEF(U+0627 [Lo] )+ ARABIC HAMZA ABOVE(U+0654 [Mn] )。

这是转换的链(第一个箭头表示分解,第二个箭头表示过滤出非间距标记,第三个箭头表示合成):

U+0623 + U+064B → U+0627 + U+0654 + U+064B → U+0627 → U+0627

分解之后,从 [Mn] 类别中删除所有字符,然后重新编写,只剩下ARABIC LETTER ALEF

10-01 13:16