Ticket Hash: | b31ec390141dd6efe71d72b05e6562ee8962f87a | |||
Title: | LINQ 方法 "String.Contains" 在 SQL 语句中会对应生成 CHARINDEX 条件,在参数为中文时筛选结果不正确。 | |||
Status: | Closed | Type: | Incident | |
Severity: | Important | Priority: | High | |
Subsystem: | LINQ | Resolution: | Rejected | |
Last Modified: | 2016-08-25 00:49:17 | |||
Version Found In: | 1.0.102 | |||
User Comments: | ||||
anonymous added on 2016-06-24 07:02:41:
(text/x-fossil-plain)
LINQ 方法 "String.Contains" 在 SQL 语句中会对应生成 CHARINDEX 条件,在参数为中文时筛选结果不正确。结果中除了会出现含有关键词的内容,还会出现很多不含有关键词的内容。 在 sqlite 的第三方图形界面工具中,使用 like 语句查询得到的结果是正常的,但发现并不包含 CHARINDEX 方法。 大概检索了一下源码内容,感觉也许是因为 CHARINDEX 的实现,没有考虑到使用 UTF-8 编码存储的文本数据。 我的 C++ 编程水平不是很好,所以不能帮忙修复这个问题,但希望这个问题能尽快获得你们的关注。 也许通过改进 CHARINDEX 方法以支持 UTF-8 的文本,也许可以将 String.Contains 方法生成为 like 查询。 谢谢了!Thank you! anonymous added on 2016-06-24 07:05:27: 比如“无敌”和“承担”两个词语会被 CHARINDEX 混淆。 mistachkin added on 2016-06-25 18:55:43: (text/x-fossil-plain) I tried using Google translate to convert the text of this ticket to English; however, I still do not quite understand the issue. |