在MySQL数据库中查找带有普通字符串的utf8字符串

时间:2013-11-22 09:22:25

标签: php sql utf-8 mysqli

我在我的MySQL(服务器版本:5.6.14&服务器字符集:UTF-8 Unicode(utf8))数据库中有一些带有一些名称的表(用荷兰语写成),如:

  • 非洲的
  • 南极洲
  • Azië
  • 欧洲
  • 北-AMERIKA
  • 大洋洲
  • 的Zuid-AMERIKA
  • 安哥拉
  • Argentinië
  • 阿鲁巴
  • Australië
  • België属于
  • Brazilië
  • 缅甸

使用PHP我编写了一种搜索方法,试图根据用户输入在数据库中查找名称。当用户搜索“Azie”时,它应该找到'Azië'。

是否有PHP或MySQL函数来解决此问题? 因为搜索方法在更多的表中搜索而不是仅搜索此位置表,所以我不想使用带有替代符号的额外表或列。这将使它更复杂。

我使用$ mysqli-> set_charset(“utf8”)设置mysqli字符集,HTML文档也是utf8。

1 个答案:

答案 0 :(得分:1)

您是否尝试实际使用它? 如果是,并且不起作用 - 表格和列上的整理是什么?
如果它是utf_general_ci(这是utf8 charset的默认值)并且仍然不起作用 - 尝试将其更改为utf8_unicode_ci。在这里,您可以看到如何完成:How to change the default collation of a table? 如果table / field charset不是utf8 - 你必须先改变它。

要查看实际排序规则,您可以运行SHOW CREATE TABLE table_name查询