如何用普通的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
。