【问题标题】:MySQL searching "äåö" in a UTF-8 table doesnt find anythingMySQL 在 UTF-8 表中搜索“äåö”没有找到任何东西
【发布时间】:2014-01-22 08:05:41
【问题描述】:

数据显示正确,但在搜索时却找不到任何东西。这就是数据以 UTF8 编码存储在表中的方式。

Default charset: utf8mb4
names: utf8
character_set_client : utf8

SELECT * FROM article WHERE description like '%några%' //returns null but it should return one row
SELECT * FROM article WHERE description like '%nå%' //works
SELECT * FROM article WHERE description like '%någ%' //returns null

我认为mysql将å转换为a。

我尝试使用 php 函数 utf8_encode($str) 将搜索查询转换为 utf8。但这里没有成功。 我该如何解决这个问题?

【问题讨论】:

  • 您是否也尝试过检查其他功能,例如instr(description,'%några%') > 0
  • 现在试过了。没有成功。但是,如果我搜索 %nÃ¥gra%
  • UTF-8 all the way through 的可能重复项
  • “nÃ¥gra”存储在数据库中和“några”显然不是同一个词。插入数据库时​​遇到编码问题,将数据存储为垃圾。
  • @Error404 它被 UTF8 误解为其他东西,可能是 Latin1。

标签: mysql encoding


【解决方案1】:

存储在数据库中的“nÃ¥gra”和“några”显然不是同一个词。插入数据库时​​遇到编码问题,将数据存储为垃圾。 – deceze 15 mins ago

以 UTF-8 编码的“några”在解释为 UTF-8 时将显示为“några”。当解释为 Latin1 时,以 Latin-1 编码的“några”将显示为“några”。在某些时候被误解或错误转换的字符串看起来像垃圾。 – deceze 2 mins ago

UTF-8 all the way through 重复 - 16 分钟前删除

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-17
    • 1970-01-01
    相关资源
    最近更新 更多