解决了:
我使用了以下代码:
var compareinfo = CultureInfo.CurrentCulture.CompareInfo;
var index = compareinfo.IndexOf(strA, strB, CompareOptions.IgnoreNonSpace | CompareOptions.IgnoreCase);
return index > -1;
可能重复:
忽略字符串比较中的重音字母
我有一个公共信息亭应用程序,用户使用它来搜索感兴趣的地方。假设我有一个带有 Café 字样的商店名称。信息亭只允许通过屏幕键盘输入英文字母。问题是当我输入 Cafe(没有重音 é)时,搜索无效,因为用户无法输入字符 é。我希望应用程序允许普通 e 可以搜索到所有重音 e 并且同样适用于所有其他相应的字符。我怎样才能做到这一点?
编辑:商店名称是“Bruce Café”,我搜索“cafe”,它应该显示在我的搜索结果中。
使用
string.Compare("Bruce Café", "cafe", CultureInfo.CurrentCulture, CompareOptions.IgnoreCase | CompareOptions.IgnoreNonSpace)
返回 -1
和
string.Compare("Ben-Gurion University (BGU)", "cafe", CultureInfo.CurrentCulture, CompareOptions.IgnoreCase | CompareOptions.IgnoreNonSpace)
也返回 -1
我不知道为什么会这样......