MySQL将字符ð与d识别为相同的问题如何解决?
MySQL 区分字符ð与d的排序规则设置问题及解决方案
问题描述
我在搭建需要区分字符ð和d的数据库时,尝试了多种编码排序规则都没有成功,试过的规则包括:
utf8_binutf8_general_ciutf8_unicode_ciutf8mb4_0900_as_csutf8mb4_0900_binutf8mb4_is_0900_as_csutf16_binutf16_icelandic_ciutf16_unicode_ci
上述所有排序规则下,MySQL都将ð和d判定为相同字符,就连冰岛语专属排序规则也存在该问题。比较特殊的是,我个人网站上使用utf8_general_ci排序规则的数据库不存在该问题。
解决方案
问题根源是创建表之后再修改排序规则不会实际生效,即使数据库显示已经切换到新的排序规则也没用。
正确操作流程:
- 先将数据库默认排序规则设置为
utf8mb4_bin这类二进制排序规则 - 按照新的排序规则重新创建表
按上述步骤操作后,新表即可正常区分ð和d两个字符。
内容的提问来源于stack exchange,提问作者mosel
相关产品推荐
相关产品推荐

