我正在开发一个需要存储通用字符的后端。
我选择了utf8mb4
用于此目的的表编码。我还必须选择表格排序规则。
最直接的选择是选择utf8mb4_general_ci
表整理。除了一般的排序规则之外,还有大约20种其他排序规则可供选择。更具体的排序规则的用途是什么?做utf8mb4_general_ci
或者可能utf8mb4_unicode520_ci
涵盖所有这些?如果我想存储从中文一直到阿拉伯文的字符,我应该使用哪一个。
...general_ci
很简单。它并不将 2 个字符的组合(例如使用非空格标记)与等效的单字符组合等同起来。
...unicode_520_ci
来自 Unicode 版本 5.20,这是 MySQL 采用它时可用的最新版本。它可以处理诸如订购表情符号之类的事情,而以前的版本没有这些功能。
对于 MySQL 8.0,首选排序规则是utf8mb4_0900_ai_ci
,基于 Unicode 9.0。
...<language>_ci
处理给定语言中发现的变体。例如,应该ch
and ll
在西班牙语中被视为“字母”并在之间排序cz
and d
, and lz
and m
.
对于一般用途,请勿使用...general_ci
,使用源自 Unicode 的最新版本。对于特定于语言的情况,请选择其他排序规则之一。
我确实知道中文和阿拉伯语在不同的排序规则中如何(甚至是否)以不同的方式排序。然而,我看到...persion_ci
,所以我怀疑有问题。
Do use utf8mb4
, not utf8
,特别是因为你需要中文。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)