Mysql区分重音/不区分重音的搜索和存储

Mysql区分重音/不区分重音的搜索和存储,mysql,utf-8,pdo,character-encoding,diacritics,Mysql,Utf 8,Pdo,Character Encoding,Diacritics,我在数据库中执行不区分重音/变音的搜索时遇到了麻烦 我有一个表,其中存储了其他语言术语。我已经确保它已设置为使用utf8,并在utf8\u general\u ci中进行了整理,我还尝试了\u bin和\u unicode\u ci 问题在于: 当Hähnchen被存储时,搜索Hahnchen将产生一个结果 存储Hähnchen时搜索Hähnchen不会产生结果 如果我在phpmyadmin中工作,我可以如上所述保存值: Hähnchen 但是,通过我的脚本,这将转换为: Hühnchen

我在数据库中执行不区分重音/变音的搜索时遇到了麻烦

我有一个表,其中存储了其他语言术语。我已经确保它已设置为使用utf8,并在utf8\u general\u ci中进行了整理,我还尝试了\u bin和\u unicode\u ci

问题在于:

当Hähnchen被存储时,搜索Hahnchen将产生一个结果 存储Hähnchen时搜索Hähnchen不会产生结果 如果我在phpmyadmin中工作,我可以如上所述保存值:

Hähnchen
但是,通过我的脚本,这将转换为:

Hühnchen
存储Hühnchen时搜索Hahnchen不会产生结果 存储Hühnchen时搜索Hähnchen将产生一个结果 我有什么遗漏吗?我读过几十篇类似的帖子,都没有明确的答案。我尝试过的一切都失败了

在阅读了上述链接后,尤其是“deceze”的回答后,他似乎正确地指出:

    $db->setAttribute(PDO::MYSQL_ATTR_INIT_COMMAND, 'SET NAMES utf8');
在某些情况下,这是无稽之谈。我最终在连接参数中显式添加了该选项

解决方案例如:

    mysql:host=localhost;charset=utf8;dbname=.....
这解决了搜索问题和乱码数据保存问题

: