UTF8数据库查询和特殊字符

时间:2011-11-03 10:52:58

标签: php mysql utf-8 special-characters

我有一个Mysql数据库(在utf8_general_ci中)并且必须查询包含特殊字符的列。问题是:包含特殊字符的查询不会检索任何结果 - 但包含这些字符的常规版本的查询会检索。

例如,如果我想查询单词“été”:

  • SELECT ... WHERE列LIKE%été%将不起作用。
  • SELECT ... WHERE列LIKE%ete%将起作用!

这个问题必须归功于我的编码(直接在phpMyAdmin完成时,两个查询都有效)。

我使用PDO并遵循此处的说明(http://stackoverflow.com/questions/279170/utf-8-all-the-way-through),并且在连接到数据库时,执行exec(“SET CHARACTER” SET utf8“)AND exec(”SET collat​​ion_connection ='utf8_general_ci'“)。困扰我的是,除了这个搜索查询,该网站似乎与utf8完美地兼容显示和数据库。

我以为我可以在包含特殊字符的字符串上运行transliterate_to_ascii。然而,我担心这个选项不是最理想的,特别是对于非欧洲语言。 非常感谢你的帮助!

1 个答案:

答案 0 :(得分:0)

请在连接

后立即尝试在mysql上运行SET NAMES utf8;