C# 是否允许搜索重音字符?
已解决: 我使用了以下代码:C# 是否允许搜索重音字符?,c#,.net,string,cultureinfo,string-comparison,C#,.net,String,Cultureinfo,String Comparison,已解决: 我使用了以下代码: var compareinfo = CultureInfo.CurrentCulture.CompareInfo; var index = compareinfo.IndexOf(strA, strB, CompareOptions.IgnoreNonSpace | CompareOptions.IgnoreCase); return index > -1; 可能重复: 我有一个公共信息亭应用程序,用户使用它来搜索感兴趣的地方。说我有一个店名和咖啡馆这个词
var compareinfo = CultureInfo.CurrentCulture.CompareInfo;
var index = compareinfo.IndexOf(strA, strB, CompareOptions.IgnoreNonSpace | CompareOptions.IgnoreCase);
return index > -1;
可能重复:我有一个公共信息亭应用程序,用户使用它来搜索感兴趣的地方。说我有一个店名和咖啡馆这个词。信息亭只允许通过屏幕键盘输入英文字母。问题是,当我输入Cafe(没有重音符号)时,搜索无效,因为用户无法输入字符。我希望应用程序允许正常的e可以搜索到所有重音e,同样也可以搜索所有其他相应的字符。我该怎么做 编辑: 店名是“布鲁斯咖啡馆”,我搜索“咖啡馆”,它应该显示在我的搜索结果中 使用 返回-1 及 也返回-1
我不知道为什么…如果您在代码中执行此操作:
string.Compare(s1, s2, CultureInfo.CurrentCulture, CompareOptions.IgnoreNonSpace);
如果您在T-SQL中执行此操作:
SELECT *
FROM YourTable
WHERE
ColumnName COLLATE Latin1_general_CI_AI Like '%cafe%' COLLATE Latin1_general_CI_AI
如果您正在进行自己的字符串比较,则可以通过指定接受CompareOptions参数的字符串比较方法之一来忽略重音,例如请包含“搜索”代码。是否从字符串列表中搜索?DB?Lucene.Net?你能分享你的搜索代码吗?我怎样才能同时使用string.indexof功能进行搜索?indexof:
string.Compare(s1, s2, CultureInfo.CurrentCulture, CompareOptions.IgnoreNonSpace);
SELECT *
FROM YourTable
WHERE
ColumnName COLLATE Latin1_general_CI_AI Like '%cafe%' COLLATE Latin1_general_CI_AI