2011-12-21 47 views
2

我正在实施过滤器功能。我定义字符串西装查询是否使用:如何在cyrilic/latin字符串中搜索cyrilic/latin'a'或其他相似字符

someString.IndexOf(someSearch, StringComparison.OrdinalIgnoreCase) >= 0 

但有些时候(当然在极少数情况下)值也能像“AAA”或“CCC”,这将是更加人性化的忽视语言。

+1

我不明白你在这里问什么。请澄清。一些例子会有所帮助。 – Oded 2011-12-21 09:54:30

+0

当我想显示所有包含'c'的刺激时,我在英文输入'c'到过滤文本框。因为它会返回'猫'并跳过像'соя'这样的字符串。 – 1gn1ter 2011-12-21 09:59:41

+0

如果是边缘情况,但用户可能拼错或输入信息的人可能拼错。这不是很重要,但它对用户可能有用。 – 1gn1ter 2011-12-21 10:02:08

回答

1

西里尔字母及其拉丁字母之间没有定义的对应关系。西里尔文字母“с”与拉丁字母“c”完全不同,即使可能任何包含它们的字体都具有相同的字形。在内部表示和字符级处理中,它们与任何两个不相关的字符都是截然不同的。

您应该接受的方式例如西里尔字母“с”作为拉丁字母“c”,您需要自行编码。但我认为这不会有用。相反,如果您的应用程序只需要拉丁字母,您的错误处理例程可以检查来自其他书写系统的字符是否存在,并通知用户这一点。