You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL中utf8_unicode_ci与utf8_persian_ci的区别是什么?

MySQL utf8_unicode_ci 与 utf8_persian_ci 差异说明

修改表排序规则后查询无变化的原因

修改表的默认排序规则仅对后续新增的列、新插入的数据生效,已经存在的列、已存储的数据不会自动继承新的排序规则。如果要让已有波斯语数据按照新规则排序,需要单独修改对应存储列的排序规则,参考语句:

ALTER TABLE 你的表名 MODIFY 目标列名 原有字段类型 CHARACTER SET utf8 COLLATE utf8_persian_ci;

执行后重新执行带排序的查询即可看到差异。

两种排序规则的核心差异

  • 波斯语独有字母排序逻辑不同
    utf8_unicode_ci 是通用Unicode排序规则,仅按照字符的Unicode编码值排序,不会适配波斯语的本土字母顺序:比如波斯语独有的 پ、چ、ژ、گ 这类字母,在通用规则下会和其他阿拉伯语系字符混排,而 utf8_persian_ci 严格遵循波斯语官方字母表顺序调整了权重,会按照 پ紧随ب、چ紧随ج、ژ紧随ز、گ紧随ک的本土习惯顺序排列。
  • 变音符号处理规则不同
    波斯语书写中的元音变音符号、零宽连接/非连接符在 utf8_persian_ci 中会被忽略排序权重,同词根的单词无论是否带变音符号都会排在一起,符合波斯语本土使用习惯;utf8_unicode_ci 会给这类符号赋予独立排序权重,可能出现同词根单词因变音符号不同被拆分排序的情况。
  • 数字适配逻辑不同
    波斯语本土数字(۰-۹)和阿拉伯数字(0-9)在 utf8_persian_ci 中会被视为等价排序,而 utf8_unicode_ci 会按照编码值区分两类数字,同一数值的波斯语数字和阿拉伯数字会被排到不同位置。

内容的提问来源于stack exchange,提问作者user13239154

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 20:39:02