【问题标题】:Handle special characters in mysql search e.g. Sigur Rós [duplicate]处理 mysql 搜索中的特殊字符,例如Sigur Rós [重复]
【发布时间】:2014-03-29 03:17:08
【问题描述】:

我的数据库具有带有特殊字符的名称,例如西格罗斯

问题是,如果您使用常规字符搜索名称,例如"Sigur Ros",不会返回任何结果。

处理此问题的最佳方法是什么?有没有我可以使用的工具,或者我必须用 PHP 手动查找和替换这些工具?

【问题讨论】:

  • 原来数据库正在使用 html 字符 - 例如“西格·罗斯”

标签: php mysql regex database


【解决方案1】:

在您的数据库中,如果您将包含此数据的列的排序规则设置为 utf8_unicode_ci,那么排序和比较将忽略重音符号。

【讨论】:

  • 谢谢,但不起作用。我检查了数据库,它存储为“Sigur Rós”
  • 数据库中的 HTML 实体将严重限制您的选择。我建议您编写一个脚本,使用 PHP 的 html_entity_decode() 函数将相关字段转换为 UTF-8。然后确保更新表的任何代码也调用该函数来清理新数据,然后再将其插入表中。完成后,排序规则设置应该可以工作了。
  • 谢谢托德,效果很好
猜你喜欢
  • 1970-01-01
  • 2011-08-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-19
  • 1970-01-01
  • 2012-09-02
相关资源
最近更新 更多