4

我有一个波斯文字,如: “228درصورتيکهموضوعتعهد,تأديهيوجهنقديباشد,حاکمميتواندبارعايتمادهي221مديونرابهجبرانخسارتحاصلهازتأخيردرتأديهدينمحکومنمايد。” 我的目标是从正文中拆分出一个数字“22۸”,如果它是一个普通的英文数字,​​我可以很容易地做到

sscanf(text,"%d %[^\t\n]", &a);

但 c 不将波斯数识别为十进制。所以我该怎么做 ?

当我做一些研究时,我知道objective-c将此文本识别为utf-8,解决此问题的一种方法是将数字替换为英文。

4

1 回答 1

2

我们所做的是,用波斯语显示数字,但用英语发送这些数字。
您所要做的就是在 UI 中有一个转换器,当用户输入他的文本时,它将所有内容转换为波斯语。但是将原始文本发送到您的应用程序。

如果您的案例只是关于数字,您可能只需要一个数字转换器。

顺便说一句,这只是我们使用并经过测试的解决方案。但是,您可能会找到一个更好的。


更新
在这种情况下(您无法修改用户的输入),您必须尝试以下步骤:

首先尝试了解这些数字是如何编码的。编写一个示例应用程序,接收波斯数字作为字符并打印它们以查看它们的真正

含义。将所有十个数字存储在其中。第三接收整个文本作为字符串并在其中查找数字。(因为现在您可以通过这些编码数字字符来比较每个字符)。只要您的查找表中有匹配项,您就可以获得它的真正价值。number-encoded-characterreal value

于 2012-08-16T07:20:20.713 回答