我正在编写“ Articles Archieve”,其中包含有关法律的文章。为此,我正在使用Linq to SQL和SQLite。作者的姓名包含UTF-8字符。当我在搜索文本框中搜索“ oğuz”项时,它返回KARABULUT, Ayşe/EMİR, Oğuz-PİLAT, Oğuz/GÜNAŞTI, Emin-AYDOS, Oğuz Sadık-İNAL, Oğuz Mehmet。但是找不到并不会返回OĞUZ, Habip-OĞUZOĞLU, AliOĞUZ, Kemal-OĞUZMAN, Cemal

同样,当我在搜索文本框中搜索“ OĞUZ”项时,它返回的数据与“ oğuz”项相同。
这是我的代码:

IQueryable<article> results = (from m in _db.articles
                            where m.author.ToLower().Contains(textBox1.Text.ToLower())
                            select m).Distinct();


我该如何处理?

最佳答案

您是否尝试此example。当前的文化和指数也许对您有用。

  List<article> temp= (from m in _db.articles
                       join k in _db.keywordss on m.id equals k.aid
                       select m).Distinct().ToList();

  List<article> result= temp.Where(l => CultureInfo.CurrentCulture.CompareInfo.IndexOf(m.author.ToLower(), textBox1.Text.ToLower()) >= 0) ).ToList();


编辑:比较选项,并添加此tolower()以区分大小写,我希望现在就工作并检查此page

关于c# - LINQ to SQL和SQLite-在UTF-8字符串中搜索,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34893111/

10-09 02:23