在书面阿拉伯语中,字符的外观取决于它们在一个单词中的位置.例如,字母ta可能看起来像这样:字里面的Ë但看起来像这样:Ë如果它独立.我有一些阿拉伯文字,例如:
string word = ???????? ;
Run Code Online (Sandbox Code Playgroud)
当我渲染word整个单词时,它会正确呈现.现在,我想解析字符串并一次打印出单词中的每个字母.但是,如果我这样做:
foreach(char c in word.ToCharArray())
{
Debug.Print(c.ToString());
}
Run Code Online (Sandbox Code Playgroud)
在char c没有打印出来,因为它是在一个字的背景下呈现的信的原始表示,相反,它打印出相同的阿拉伯字母就好像自己提供.如何解析我的阿拉伯文字串,以便返回的字母与显示为整个字时的字母相同?
我想在c#中这样做.
UCS 中的某些字符代表阿拉伯字符的特定形式。然而,当从一种环境转移到另一种环境时,这些方法效果不佳。
一般来说,如果你想表明一个字母连接到另一个字母,当没有这样的字母可以连接它时,你应该在适当的地方使用U+200D ZERO WIDTH JOINER(在字符之前将连接符放在右边) ,在字符之后将其放置在左侧,或者在两侧都有一个。
相反,在字符之间放置 U+200C ZERO WIDTH NON-JOINER 将破坏它们的连接。
在实践中效果如何取决于处理角色的渲染引擎。
| 归档时间: |
|
| 查看次数: |
1354 次 |
| 最近记录: |