mysql使用like和danish字符

时间:2011-09-05 16:22:33

标签: mysql character-encoding

我有一个html表单 - 当发布时 - 在这样的Mysql数据库中执行一个SQL字符串:

 SELECT * 
 FROM IpProvider, IpUsers 
 WHERE IpProvider.UserId = IpUsers.Id AND 
 (IpProvider.CompanyName LIKE '%køb%' OR IpProvider.ShortDescrip LIKE '%køb%')

这将返回0行,但应返回1行(因为丹麦语单词“køb”是ShortDescrip中文本的一部分)。此搜索适用于其他不具有丹麦字符的文本字符串。

直接从表格字段复制的文字: "Køb kvalitet fra starten - det er vores råd."

Hmtl文件包含一个元标记:charset = utf-8

mysql表字段中的排序规则是: utf8_general_ci

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

尝试将排序规则更改为latin1_danish_ci并查看是否更好。可能的字符在latin1_danish_ci和utf8

中的排序方式不同

答案 1 :(得分:0)

尝试在脚本开头发出此查询:SET NAMES utf8;。这将确保MySQL和您的图书馆在任何地方“交谈”UTF8。

另外,尝试更改utf8_unicode_ci的排序规则。这个(据说)速度较慢,尽管它在某些语言中处理更好的校对。

[编辑]我的第二个建议可能无关紧要,因为在再次阅读你的问题后,你说搜索字符串在你的数据库中显示为“原样”。不过,我倾向于默认使用utf8_unicode_ci。