我有一个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
有什么想法吗?
答案 0 :(得分:1)
尝试将排序规则更改为latin1_danish_ci并查看是否更好。可能的字符在latin1_danish_ci和utf8
中的排序方式不同答案 1 :(得分:0)
尝试在脚本开头发出此查询:SET NAMES utf8;
。这将确保MySQL和您的图书馆在任何地方“交谈”UTF8。
另外,尝试更改utf8_unicode_ci
的排序规则。这个(据说)速度较慢,尽管它在某些语言中处理更好的校对。
[编辑]我的第二个建议可能无关紧要,因为在再次阅读你的问题后,你说搜索字符串在你的数据库中显示为“原样”。不过,我倾向于默认使用utf8_unicode_ci。