首页 > 文章列表 > MySQL中“⺮”和“竹”为何被视为同一字符?

MySQL中“⺮”和“竹”为何被视为同一字符?

137 2025-04-03

MySQL中“⺮”和“竹”为何被视为同一字符?

MySQL数据库中“⺮”和“竹”字符混淆的原因及解决方法

在MySQL数据库进行文本搜索时,用户可能会发现“⺮”和“竹”这两个字被系统识别为同一个字符。这是由于MySQL的字符集和排序规则导致的。

根本原因在于MySQL使用的字符集及其对应的排序规则。不同的排序规则对字符的排序方式有所不同。“⺮”和“竹”在某些排序规则下(例如utf8mb4_0900_ai_ci),会被视为等效字符,从而导致搜索结果中出现意料之外的匹配。

解决方法:

为了避免这种字符混淆,建议修改数据库表或字段的字符集和排序规则。推荐使用utf8mb4_0900_as_ci排序规则。该规则基于Unicode代码点进行排序,能够更精确地区分不同的字符,从而避免“⺮”和“竹”被错误地视为同一字符。

修改排序规则后,重新进行搜索,“竹”字的搜索结果将不再包含“⺮”字。

来源:1740365366