判断string中的特定char是long char还是short char

做好准备,这是其中一个难题.

在波斯语或波斯语中,它听起来像y或i,并根据它在单词中的位置以4种不同的形状书写.我将从现在起将ی称为YA以简化.

看看这张图片

所有YA字符都涂成红色,在第一个单词YA附加到它的前一个(右边,在波斯语中我们从右到右)字符并且在结尾处是自由的而最后的YA(第三个字,最左边的红色字符) )从左或右都是免费的.

说完这个长篇故事,我想知道一个字符串的一部分是以长YA(YA没有点)还是短YA(YA下面有两个点)结束.

即تحصیلداری(第3个单词)以长YA结尾,但作为第3个单词的一部分的تحصی不以短YA结尾.

问题:我怎么能说تحصیلداری结束哪个unicode?我只有一个简单的字符串,“تحصیلداری”,如何将其字符转换为unicode?

我试过了unicodes

string unicodes = "";
foreach (char c in "تحصیلداری")
{
    unicodes += c+" "+((int)c).ToString() + Environment.NewLine;
}
MessageBox.Show(unicodes);

结果:

但不幸的是,在一天结束时,所有YAs都具有相同的unicode.

坏消息:YA就是一个例子,但却是一个真实的例子.还有十几个其他角色,如YA,也有不同的外观.

附加信息 :
使用this useful link about unicodes我发现了不同YAs的unicode

最佳答案 我们用下面的方式解决了类似的问题:

我们有一个核心银行应用程序,客户子系统需要对客户姓名,家庭,父亲姓名等进行全文搜索.
不同的编码,旧版迁移数据,键盘布局和波斯语字体…使搜索过程不准确.
我们通过用一些标准字符替换有问题的字符并保存用于搜索目的的标准字符串来克服该问题.
经过几次迭代后,替换方式可能会派上用场:

Formula="UPPER(REPLACE(REPLACE(REPLACE
(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE
(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE
(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE
(REPLACE(REPLACE(REPLACE(REPLACE
(REPLACE(FirsName || LastName || FatherName,
 chr(32),''),
 chr(13),''),
 chr(9),''),
 chr(10),''),
 '-',''),
 '-',''),
 'آ','ا'),
 'أ', 'ا'),
 'ئ', 'ي'),
 'ي', 'ي'),
 'ك', 'ک'),
 'آإئؤةي','اايوهي'),
 'ء',''),
 'شأل','شاال'),
 'ا.','اله'),
 '.',''),
 'الله','اله'),
 'ؤ','و'),
 'إ','ا'),
 'ة','ه'),
 ' ا لله','اله'),
 'ا لله','اله'),
 ' ا لله','اله'))"
点赞