【问题标题】:How to search for special characters, unicode characters and Emoji's in a mysql Database如何在 mysql 数据库中搜索特殊字符、unicode 字符和表情符号
【发布时间】:2014-02-28 02:08:22
【问题描述】:

我正在使用字符集 utfmb4_general_ci 保存 Emoji's,存储和检索工作正常,但是当我尝试使用包含 Emoji's 的字符串搜索信息时strong> 或特殊字符我没有得到结果。它总是返回空。

有人可以帮忙解决这个问题吗?

代码

select * from table where Title LIKE '%Kanye West - \"Bound 2\" PARODY%'

更新:

搜索字符串是这样的

  1. 侃爷%20West%20-%20"Bound%202"%20PARODY

    存储在数据库中,如 Kanye West - \"Bound 2\" PARODY

  2. 家庭%20guy%20????????????

    存储在数据库中,如家庭成员\ud83d\ude0e\ud83d\ude14\ud83d\ude01

请接受我没有说清楚的道歉

第一个字符串是我们通过 HTTP POST 从 url 发送的内容 第二个是数据如何存储在我的表中。

数据库表的字符集是

utf8mb4_general_ci

【问题讨论】:

  • 我们可以为您的搜索编码源代码吗?
  • 我已经更新了示例
  • 我认为 jmercier 询问的是您如何执行实际搜索,而不是您如何存储数据。尽管发布的示例并不完全清楚 - 查询在 URL 中发送的第一个字符串是什么?第二,你在查询中输入了什么(而不是实际的数据库值)?
  • 我已经更新说明清楚了,谢谢
  • 嗯,存储文本和搜索文本似乎截然不同。难怪不匹配。

标签: php mysql web-services utf


【解决方案1】:

您需要将字符集更改为 utf8mb4_unicode_520_ci 以使表情符号可搜索。否则,它们都被视为同一个字符。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多