哪个字符集和 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 用于任何可以包含多种语言的 TEXTVARCHAR 列。
  • 对于十六进制字符串(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,它将根据波兰惯例略微重新排列字母。