我正在开发一个需要存储通用字符的后端。我选择了 utf8mb4 表编码。我还要选择表排序。最直接的选择是 utf8mb4_general_ci 表排序规则。除了一般的校勘,还有大约20种校勘可供选择。。更具体的目的是什么?做 utf8mb4_general_ci 或者也许 utf8mb4_unicode520_ci 覆盖所有的?如果我想存储从中文到阿拉伯的各种字符,我应该使用哪一个呢。
utf8mb4
utf8mb4_general_ci
utf8mb4_unicode520_ci
irtuqstp1#
...general_ci 很简单。它不等同于两个字符的组合(如与非间距标记)与单字符等效。 ...unicode_520_ci 来自unicode版本5.20,这是mysql开发的最新版本。它可以处理一些事情,比如为emoji排序,而以前的版本没有。对于mysql 8.0,首选的排序规则是 utf8mb4_0900_ai_ci ,基于unicode 9.0。 ...<language>_ci 处理给定语言中的变体。例如,应该 ch 以及 ll 在西班牙语中被视为“字母”并在两者之间排序 cz 以及 d ,和 lz 以及 m .对于一般用途,请勿使用 ...general_ci ,使用从unicode派生的最新版本。对于特定于语言的情况,请选择其他排序规则之一。我知道中文和阿拉伯文是如何(甚至是是否)在不同的排序规则中有不同的排序。不过,我明白了 ...persion_ci ,所以我怀疑有问题。使用 utf8mb4 ,不是 utf8 尤其是你需要中文。
...general_ci
...unicode_520_ci
utf8mb4_0900_ai_ci
...<language>_ci
ch
ll
cz
d
lz
m
...persion_ci
utf8
1条答案
按热度按时间irtuqstp1#
...general_ci
很简单。它不等同于两个字符的组合(如与非间距标记)与单字符等效。...unicode_520_ci
来自unicode版本5.20,这是mysql开发的最新版本。它可以处理一些事情,比如为emoji排序,而以前的版本没有。对于mysql 8.0,首选的排序规则是
utf8mb4_0900_ai_ci
,基于unicode 9.0。...<language>_ci
处理给定语言中的变体。例如,应该ch
以及ll
在西班牙语中被视为“字母”并在两者之间排序cz
以及d
,和lz
以及m
.对于一般用途,请勿使用
...general_ci
,使用从unicode派生的最新版本。对于特定于语言的情况,请选择其他排序规则之一。我知道中文和阿拉伯文是如何(甚至是是否)在不同的排序规则中有不同的排序。不过,我明白了
...persion_ci
,所以我怀疑有问题。使用
utf8mb4
,不是utf8
尤其是你需要中文。