4

做好准备,这是那些难题之一。

Farsi或听起来像或的语言中,根据Persian它在单词中的位置以 4 种不同的形状写成。为了简单起见,我从现在起就叫 YA。یyiی

看看这张图片 在此处输入图像描述

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

说了这么长的故事,我想知道字符串的一部分是否以长 YA(没有点的 YA)或短 YA(在它下面有两个点的 YA)结尾。

تحصیلداری(第 3 个单词)以长 YA 结尾,但تحصیـ属于第 3 个单词的一部分不以短 YA 结尾。

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

我尝试了unicode

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

结果 :
在此处输入图像描述

但不幸的是,归根结底,所有 YA 都具有相同的 unicode。


坏消息:你是一个例子,虽然是一个真实的例子。还有十几个像 YA 一样的其他角色也有不同的外观。


附加信息:
使用这个关于 unicodes 的有用链接,我发现了不同 YA 的 unicode

在此处输入图像描述

4

2 回答 2

1

尽管 Unicode 中有不同YEH的 s,但必须注意YEHs 的所有表示形式都是带有 code 的相同 Unicode 字符0x06cc。您不能通过其 Unicode 代码确定演示文稿表格。

但是您可以通过检查之前或之后的字符来达到您的目标YEH

您还可以使用Fardis查看字符串的 Unicode 代码。

于 2014-04-02T18:10:55.293 回答
1

我们通过以下方式解决了类似的问题:

我们有一个核心银行应用程序,客户子系统需要对客户姓名、家庭、父亲姓名等进行全文搜索。
不同的编码、遗留的迁移数据、键盘布局和波斯语字体……使搜索过程不准确。

我们通过用一些标准字符替换有问题的字符并保存标准字符串以供搜索目的克服了这个问题。
经过几次迭代后,替换如下可能会派上用场:

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),''),
 '-',''),
 '-',''),
 'آ','ا'),
 'أ', 'ا'),
 'ئ', 'ي'),
 'ي', 'ي'),
 'ك', 'ک'),
 'آإئؤةي','اايوهي'),
 'ء',''),
 'شأل','شاال'),
 'ا.','اله'),
 '.',''),
 'الله','اله'),
 'ؤ','و'),
 'إ','ا'),
 'ة','ه'),
 ' ا لله','اله'),
 'ا لله','اله'),
 ' ا لله','اله'))"
于 2014-04-22T06:20:35.013 回答