哪个字符集和 COLLATION
有数十个字符集,有数百个排序规则。 (给定的排序规则只属于一个字符集。)请参阅 SHOW COLLATION;
的输出。
通常只有 4 个 CHARACTER SETs
:
ascii -- basic 7-bit codes.
latin1 -- ascii, plus most characters needed for Western European languages.
utf8 -- the 1-, 2-, and 3-byte subset of utf8. This excludes Emoji and some of Chinese.
utf8mb4 -- the full set of UTF8 characters, covering all current languages.
全部包括英文字符,编码相同。utf8 是 utf8mb4 的子集。
最佳实践…
- 将 utf8mb4 用于任何可以包含多种语言的
TEXT
或VARCHAR
列。 - 对于十六进制字符串(UUID,MD5 等)和简单代码(country_code,postal_code 等)使用 ascii(latin1 正常)。
utf8mb4 在版本 5.5.3 之前不存在,所以 utf8 是之前最好的。
在 MySQL 之外,UTF8
意味着与 MySQL 的 utf8mb4 相同,而不是 MySQL 的 utf8。
排序以 charset 名称开头,通常以 _ci
结尾,表示 case and accent insensitive
或 _bin
,只需比较这些位。
‘最新’的 utf8mb4 整理是 utf8mb4_unicode_520_ci
,基于 Unicode 5.20。如果你正在使用单一语言,你可能需要,例如,utf8mb4_polish_ci
,它将根据波兰惯例略微重新排列字母。