相关疑难解决方法(0)

忽略字符串比较中的重音字母

我需要比较C#中的2个字符串,并将重音字母与非重音字母相同.例如:

string s1 = "hello";
string s2 = "héllo";

s1.Equals(s2, StringComparison.InvariantCultureIgnoreCase);
s1.Equals(s2, StringComparison.OrdinalIgnoreCase);
Run Code Online (Sandbox Code Playgroud)

这两个字符串需要相同(就我的应用程序而言),但这两个语句都评估为false.C#中有没有办法做到这一点?

c# string localization

128
推荐指数
4
解决办法
6万
查看次数

如何在SQL Server中执行重音不敏感比较(e与è,é,ê和ë)?

我想在SQL中比较两个varchars,一个是类似的Cafe,另一个Café在SQL中有一种方法可以比较两个值.例如:

SELECT *
FROM Venue
WHERE Name Like '%cafe%'
Run Code Online (Sandbox Code Playgroud)

那么,如果有一个名称的场所,Big Bobs Café Extraordinaire它将被包含在结果集中?

t-sql sql-server-2005 collation

62
推荐指数
3
解决办法
7万
查看次数

使用LINQ to SQL忽略SQL Server中的重音

如何使用LINQ to SQL忽略对SQL Server数据库的查询中的重音(如',`,〜)?

更新:

仍然没有想出如何在LINQ中做到这一点(或者即使它可能)但我设法改变数据库来解决这个问题.只需要更改我想要搜索的字段的排序规则.我的整理是:

SQL_Latin1_General_CP1_CI_AS
Run Code Online (Sandbox Code Playgroud)

CI表示"Case Insensitive"和AS表示"Accent Sensitive".只需将AS改为AI,使其成为"Accent Insensitive".SQL语句是这样的:

ALTER TABLE table_name ALTER COLUMN column_name column_type COLLATE collation_type
Run Code Online (Sandbox Code Playgroud)

linq sql-server linq-to-sql

10
推荐指数
1
解决办法
1万
查看次数

是否有一种简单的方法来处理LINQ到实体查询中的重音符号

假设我有可汗的数据库。我可以使用此实体框架代码按名称提取可汗

Khan khan=context.Khans.Where(x=>x.Name.Contains("Öge")).Single();
Run Code Online (Sandbox Code Playgroud)

问题在于,在实践中,用户将键入“ Oge”而不是“Öge”,并且不会获得任何匹配项。有没有一种简单的方法可以解决这个问题,以便带有重音符号的字母始终算作没有重音的字母进行搜索?

我发现了这样的问题该问题为该方法提供了解决方案,Compare但我似乎无法将其用于数据库查询:

string.Compare(s1, s2, CultureInfo.CurrentCulture, CompareOptions.IgnoreNonSpace);
Run Code Online (Sandbox Code Playgroud)

c# sql linq-to-entities entity-framework

2
推荐指数
1
解决办法
334
查看次数