【MySQL】如何选择字符集与排序规则(字符集校验规则)

思考

就中文而言,MySQL 中可以选择 gb2312 、utf8 及 utf8mb4 。这三种字符集有什么差异 ?应该如何选择?

比较项gb2312utf8utf8mb4
字符集范围简体中文字符集大部分 Unicode 字符更广泛的 Unicode 字符,包括罕见字符和 Emoji 表情符号
编码方式使用 1-2 个字节表示字符使用 1-4 个字节表示字符使用 1-4 个字节表示字符
兼容性主要用于简体中文环境良好的兼容性,支持多种语言更好的兼容性,支持更多的字符
存储空间相对较小,适用于处理简体中文数据根据字符的 Unicode 码点进行编码,可能需要更多的存储空间相对于 utf8,可能需要更多的存储空间,但能够处理更广泛的字符

如上表,如果只需要处理简体中文数据,可以选择 gb2312;如果需要处理多种语言的文本,建议使用 utf8utf8mb4 以确保更好的兼容性和支持。

综合来看,utf8mb4 无疑是不错的选择(字符集范围大、兼容性高,现在硬件成本相对不是很高)。

utf 系

utf 相关的字符集

mysql> show charset like 'utf%' ;
+---------+------------------+--------------------+--------+
| Charset | Description      | Default collation  | Maxlen |
+---------+------------------+--------------------+--------+
| utf16   | UTF-16 Unicode   | utf16_general_ci   |      4 |
| utf16le | UTF-16LE Unicode | utf16le_general_ci |      4 |
| utf32   | UTF-32 Unicode   | utf32_general_ci   |      4 |
| utf8mb3 | UTF-8 Unicode    | utf8_general_ci    |      3 |
| utf8mb4 | UTF-8 Unicode    | utf8mb4_0900_ai_ci |      4 |
+---------+------------------+--------------------+--------+
5 rows in set (0.00 sec)

utf 相关字符集比较

MySQL 支持多种字符集,包括 utf8、utf16、utf16le、utf32、utfmb3 和 utfmb4。这些字符集之间的主要差异在于它们存储字符的方式和所支持的字符范围。

  • utf8:utf8 是一种变长编码,使用 1 到 4 个字节来表示一个字符。它是最常用的 Unicode 字符集之一,向后兼容 ASCII 编码。
  • utf16:utf16 是一种固定长度的编码,使用 2 或 4 个字节来表示一个字符。它可以是 UTF-16LE(Little Endian)或 UTF-16BE(Big Endian)。
  • utf16le:utf16le 是 UTF-16 的一种实现方式,它是 Little Endian 字节序,低字节在内存的低地址,高字节在高地址。
  • utf32:utf32 是一种固定长度的编码,使用 4 个字节来表示一个字符。
  • utfmb3:utfmb3 是 MySQL 特定的字符集,它是 UTF-8 的扩展,支持存储一些罕见的字符。
  • utfmb4:utfmb4 是 MySQL 5.7 及以上版本中引入的字符集,它是 UTF-8 的超集,支持存储更广泛的 Unicode 字符,包括 Emoji 表情符号等。

总体来说,如果只需要处理基本的 Unicode 字符,utf8 通常是足够的。如果需要处理更多的字符,特别是包含 Emoji 等特殊字符,或者在特定的数据库环境中,可以考虑使用 utf16、utf32、utfmb3 或 utfmb4。选择合适的字符集应根据具体的需求和应用场景来决定。

utf8mb4

就 utf8系而言,使用utf8mb4字符集,可以确保数据库能够正确地存储和检索来自各种语言和地区的文本数据。它非常适用于需要支持多语言和多字符集的应用程序,特别是涉及到用户输入、存储或显示表情符号的情况。

支持的排序规则

与其他字符集一样,utf8mb4也支持很多排序规则(字符集校验规则),可以使用 SQL 查看。

-- 内置命令查询
show collation where Charset='utf8mb4';
-- SQL 查询 
select * from information_schema.collations where character_set_name = "utf8mb4" order by COLLATION_NAME;

结果

# 使用内置命令
mysql> show collation where Charset='utf8mb4';
+----------------------------+---------+-----+---------+----------+---------+---------------+
| Collation                  | Charset | Id  | Default | Compiled | Sortlen | Pad_attribute |
+----------------------------+---------+-----+---------+----------+---------+---------------+
| utf8mb4_0900_ai_ci         | utf8mb4 | 255 | Yes     | Yes      |       0 | NO PAD        |
| utf8mb4_0900_as_ci         | utf8mb4 | 305 |         | Yes      |       0 | NO PAD        |
| utf8mb4_0900_as_cs         | utf8mb4 | 278 |         | Yes      |       0 | NO PAD        |
| utf8mb4_0900_bin           | utf8mb4 | 309 |         | Yes      |       1 | NO PAD        |
| utf8mb4_bin                | utf8mb4 |  46 |         | Yes      |       1 | PAD SPACE     |
| utf8mb4_croatian_ci        | utf8mb4 | 245 |         | Yes      |       8 | PAD SPACE     |
| utf8mb4_cs_0900_ai_ci      | utf8mb4 | 266 |         | Yes      |       0 | NO PAD        |
| utf8mb4_cs_0900_as_cs      | utf8mb4 | 289 |         | Yes      |       0 | NO PAD        |
| utf8mb4_czech_ci           | utf8mb4 | 234 |         | Yes      |       8 | PAD SPACE     |
| utf8mb4_danish_ci          | utf8mb4 | 235 |         | Yes      |       8 | PAD SPACE     |
| utf8mb4_da_0900_ai_ci      | utf8mb4 | 267 |         | Yes      |       0 | NO PAD        |
| utf8mb4_da_0900_as_cs      | utf8mb4 | 290 |         | Yes      |       0 | NO PAD        |
| utf8mb4_de_pb_0900_ai_ci   | utf8mb4 | 256 |         | Yes      |       0 | NO PAD        |
| utf8mb4_de_pb_0900_as_cs   | utf8mb4 | 279 |         | Yes      |       0 | NO PAD        |
| utf8mb4_eo_0900_ai_ci      | utf8mb4 | 273 |         | Yes      |       0 | NO PAD        |
| utf8mb4_eo_0900_as_cs      | utf8mb4 | 296 |         | Yes      |       0 | NO PAD        |
| utf8mb4_esperanto_ci       | utf8mb4 | 241 |         | Yes      |       8 | PAD SPACE     |
| utf8mb4_estonian_ci        | utf8mb4 | 230 |         | Yes      |       8 | PAD SPACE     |
| utf8mb4_es_0900_ai_ci      | utf8mb4 | 263 |         | Yes      |       0 | NO PAD        |
| utf8mb4_es_0900_as_cs      | utf8mb4 | 286 |         | Yes      |       0 | NO PAD        |
| utf8mb4_es_trad_0900_ai_ci | utf8mb4 | 270 |         | Yes      |       0 | NO PAD        |
| utf8mb4_es_trad_0900_as_cs | utf8mb4 | 293 |         | Yes      |       0 | NO PAD        |
| utf8mb4_et_0900_ai_ci      | utf8mb4 | 262 |         | Yes      |       0 | NO PAD        |
| utf8mb4_et_0900_as_cs      | utf8mb4 | 285 |         | Yes      |       0 | NO PAD        |
| utf8mb4_general_ci         | utf8mb4 |  45 |         | Yes      |       1 | PAD SPACE     |
| utf8mb4_german2_ci         | utf8mb4 | 244 |         | Yes      |       8 | PAD SPACE     |
| utf8mb4_hr_0900_ai_ci      | utf8mb4 | 275 |         | Yes      |       0 | NO PAD        |
| utf8mb4_hr_0900_as_cs      | utf8mb4 | 298 |         | Yes      |       0 | NO PAD        |
| utf8mb4_hungarian_ci       | utf8mb4 | 242 |         | Yes      |       8 | PAD SPACE     |
| utf8mb4_hu_0900_ai_ci      | utf8mb4 | 274 |         | Yes      |       0 | NO PAD        |
| utf8mb4_hu_0900_as_cs      | utf8mb4 | 297 |         | Yes      |       0 | NO PAD        |
| utf8mb4_icelandic_ci       | utf8mb4 | 225 |         | Yes      |       8 | PAD SPACE     |
| utf8mb4_is_0900_ai_ci      | utf8mb4 | 257 |         | Yes      |       0 | NO PAD        |
| utf8mb4_is_0900_as_cs      | utf8mb4 | 280 |         | Yes      |       0 | NO PAD        |
| utf8mb4_ja_0900_as_cs      | utf8mb4 | 303 |         | Yes      |       0 | NO PAD        |
| utf8mb4_ja_0900_as_cs_ks   | utf8mb4 | 304 |         | Yes      |      24 | NO PAD        |
| utf8mb4_latvian_ci         | utf8mb4 | 226 |         | Yes      |       8 | PAD SPACE     |
| utf8mb4_la_0900_ai_ci      | utf8mb4 | 271 |         | Yes      |       0 | NO PAD        |
| utf8mb4_la_0900_as_cs      | utf8mb4 | 294 |         | Yes      |       0 | NO PAD        |
| utf8mb4_lithuanian_ci      | utf8mb4 | 236 |         | Yes      |       8 | PAD SPACE     |
| utf8mb4_lt_0900_ai_ci      | utf8mb4 | 268 |         | Yes      |       0 | NO PAD        |
| utf8mb4_lt_0900_as_cs      | utf8mb4 | 291 |         | Yes      |       0 | NO PAD        |
| utf8mb4_lv_0900_ai_ci      | utf8mb4 | 258 |         | Yes      |       0 | NO PAD        |
| utf8mb4_lv_0900_as_cs      | utf8mb4 | 281 |         | Yes      |       0 | NO PAD        |
| utf8mb4_persian_ci         | utf8mb4 | 240 |         | Yes      |       8 | PAD SPACE     |
| utf8mb4_pl_0900_ai_ci      | utf8mb4 | 261 |         | Yes      |       0 | NO PAD        |
| utf8mb4_pl_0900_as_cs      | utf8mb4 | 284 |         | Yes      |       0 | NO PAD        |
| utf8mb4_polish_ci          | utf8mb4 | 229 |         | Yes      |       8 | PAD SPACE     |
| utf8mb4_romanian_ci        | utf8mb4 | 227 |         | Yes      |       8 | PAD SPACE     |
| utf8mb4_roman_ci           | utf8mb4 | 239 |         | Yes      |       8 | PAD SPACE     |
| utf8mb4_ro_0900_ai_ci      | utf8mb4 | 259 |         | Yes      |       0 | NO PAD        |
| utf8mb4_ro_0900_as_cs      | utf8mb4 | 282 |         | Yes      |       0 | NO PAD        |
| utf8mb4_ru_0900_ai_ci      | utf8mb4 | 306 |         | Yes      |       0 | NO PAD        |
| utf8mb4_ru_0900_as_cs      | utf8mb4 | 307 |         | Yes      |       0 | NO PAD        |
| utf8mb4_sinhala_ci         | utf8mb4 | 243 |         | Yes      |       8 | PAD SPACE     |
| utf8mb4_sk_0900_ai_ci      | utf8mb4 | 269 |         | Yes      |       0 | NO PAD        |
| utf8mb4_sk_0900_as_cs      | utf8mb4 | 292 |         | Yes      |       0 | NO PAD        |
| utf8mb4_slovak_ci          | utf8mb4 | 237 |         | Yes      |       8 | PAD SPACE     |
| utf8mb4_slovenian_ci       | utf8mb4 | 228 |         | Yes      |       8 | PAD SPACE     |
| utf8mb4_sl_0900_ai_ci      | utf8mb4 | 260 |         | Yes      |       0 | NO PAD        |
| utf8mb4_sl_0900_as_cs      | utf8mb4 | 283 |         | Yes      |       0 | NO PAD        |
| utf8mb4_spanish2_ci        | utf8mb4 | 238 |         | Yes      |       8 | PAD SPACE     |
| utf8mb4_spanish_ci         | utf8mb4 | 231 |         | Yes      |       8 | PAD SPACE     |
| utf8mb4_sv_0900_ai_ci      | utf8mb4 | 264 |         | Yes      |       0 | NO PAD        |
| utf8mb4_sv_0900_as_cs      | utf8mb4 | 287 |         | Yes      |       0 | NO PAD        |
| utf8mb4_swedish_ci         | utf8mb4 | 232 |         | Yes      |       8 | PAD SPACE     |
| utf8mb4_tr_0900_ai_ci      | utf8mb4 | 265 |         | Yes      |       0 | NO PAD        |
| utf8mb4_tr_0900_as_cs      | utf8mb4 | 288 |         | Yes      |       0 | NO PAD        |
| utf8mb4_turkish_ci         | utf8mb4 | 233 |         | Yes      |       8 | PAD SPACE     |
| utf8mb4_unicode_520_ci     | utf8mb4 | 246 |         | Yes      |       8 | PAD SPACE     |
| utf8mb4_unicode_ci         | utf8mb4 | 224 |         | Yes      |       8 | PAD SPACE     |
| utf8mb4_vietnamese_ci      | utf8mb4 | 247 |         | Yes      |       8 | PAD SPACE     |
| utf8mb4_vi_0900_ai_ci      | utf8mb4 | 277 |         | Yes      |       0 | NO PAD        |
| utf8mb4_vi_0900_as_cs      | utf8mb4 | 300 |         | Yes      |       0 | NO PAD        |
| utf8mb4_zh_0900_as_cs      | utf8mb4 | 308 |         | Yes      |       0 | NO PAD        |
+----------------------------+---------+-----+---------+----------+---------+---------------+
75 rows in set (0.03 sec)# 使用SQL 
mysql> select * from information_schema.collations where character_set_name = "utf8mb4" order by COLLATION_NAME;
+----------------------------+--------------------+-----+------------+-------------+---------+---------------+
| COLLATION_NAME             | CHARACTER_SET_NAME | ID  | IS_DEFAULT | IS_COMPILED | SORTLEN | PAD_ATTRIBUTE |
+----------------------------+--------------------+-----+------------+-------------+---------+---------------+
| utf8mb4_0900_ai_ci         | utf8mb4            | 255 | Yes        | Yes         |       0 | NO PAD        |
| utf8mb4_0900_as_ci         | utf8mb4            | 305 |            | Yes         |       0 | NO PAD        |
| utf8mb4_0900_as_cs         | utf8mb4            | 278 |            | Yes         |       0 | NO PAD        |
| utf8mb4_0900_bin           | utf8mb4            | 309 |            | Yes         |       1 | NO PAD        |
| utf8mb4_bin                | utf8mb4            |  46 |            | Yes         |       1 | PAD SPACE     |
| utf8mb4_croatian_ci        | utf8mb4            | 245 |            | Yes         |       8 | PAD SPACE     |
| utf8mb4_cs_0900_ai_ci      | utf8mb4            | 266 |            | Yes         |       0 | NO PAD        |
| utf8mb4_cs_0900_as_cs      | utf8mb4            | 289 |            | Yes         |       0 | NO PAD        |
| utf8mb4_czech_ci           | utf8mb4            | 234 |            | Yes         |       8 | PAD SPACE     |
| utf8mb4_danish_ci          | utf8mb4            | 235 |            | Yes         |       8 | PAD SPACE     |
| utf8mb4_da_0900_ai_ci      | utf8mb4            | 267 |            | Yes         |       0 | NO PAD        |
| utf8mb4_da_0900_as_cs      | utf8mb4            | 290 |            | Yes         |       0 | NO PAD        |
| utf8mb4_de_pb_0900_ai_ci   | utf8mb4            | 256 |            | Yes         |       0 | NO PAD        |
| utf8mb4_de_pb_0900_as_cs   | utf8mb4            | 279 |            | Yes         |       0 | NO PAD        |
| utf8mb4_eo_0900_ai_ci      | utf8mb4            | 273 |            | Yes         |       0 | NO PAD        |
| utf8mb4_eo_0900_as_cs      | utf8mb4            | 296 |            | Yes         |       0 | NO PAD        |
| utf8mb4_esperanto_ci       | utf8mb4            | 241 |            | Yes         |       8 | PAD SPACE     |
| utf8mb4_estonian_ci        | utf8mb4            | 230 |            | Yes         |       8 | PAD SPACE     |
| utf8mb4_es_0900_ai_ci      | utf8mb4            | 263 |            | Yes         |       0 | NO PAD        |
| utf8mb4_es_0900_as_cs      | utf8mb4            | 286 |            | Yes         |       0 | NO PAD        |
| utf8mb4_es_trad_0900_ai_ci | utf8mb4            | 270 |            | Yes         |       0 | NO PAD        |
| utf8mb4_es_trad_0900_as_cs | utf8mb4            | 293 |            | Yes         |       0 | NO PAD        |
| utf8mb4_et_0900_ai_ci      | utf8mb4            | 262 |            | Yes         |       0 | NO PAD        |
| utf8mb4_et_0900_as_cs      | utf8mb4            | 285 |            | Yes         |       0 | NO PAD        |
| utf8mb4_general_ci         | utf8mb4            |  45 |            | Yes         |       1 | PAD SPACE     |
| utf8mb4_german2_ci         | utf8mb4            | 244 |            | Yes         |       8 | PAD SPACE     |
| utf8mb4_hr_0900_ai_ci      | utf8mb4            | 275 |            | Yes         |       0 | NO PAD        |
| utf8mb4_hr_0900_as_cs      | utf8mb4            | 298 |            | Yes         |       0 | NO PAD        |
| utf8mb4_hungarian_ci       | utf8mb4            | 242 |            | Yes         |       8 | PAD SPACE     |
| utf8mb4_hu_0900_ai_ci      | utf8mb4            | 274 |            | Yes         |       0 | NO PAD        |
| utf8mb4_hu_0900_as_cs      | utf8mb4            | 297 |            | Yes         |       0 | NO PAD        |
| utf8mb4_icelandic_ci       | utf8mb4            | 225 |            | Yes         |       8 | PAD SPACE     |
| utf8mb4_is_0900_ai_ci      | utf8mb4            | 257 |            | Yes         |       0 | NO PAD        |
| utf8mb4_is_0900_as_cs      | utf8mb4            | 280 |            | Yes         |       0 | NO PAD        |
| utf8mb4_ja_0900_as_cs      | utf8mb4            | 303 |            | Yes         |       0 | NO PAD        |
| utf8mb4_ja_0900_as_cs_ks   | utf8mb4            | 304 |            | Yes         |      24 | NO PAD        |
| utf8mb4_latvian_ci         | utf8mb4            | 226 |            | Yes         |       8 | PAD SPACE     |
| utf8mb4_la_0900_ai_ci      | utf8mb4            | 271 |            | Yes         |       0 | NO PAD        |
| utf8mb4_la_0900_as_cs      | utf8mb4            | 294 |            | Yes         |       0 | NO PAD        |
| utf8mb4_lithuanian_ci      | utf8mb4            | 236 |            | Yes         |       8 | PAD SPACE     |
| utf8mb4_lt_0900_ai_ci      | utf8mb4            | 268 |            | Yes         |       0 | NO PAD        |
| utf8mb4_lt_0900_as_cs      | utf8mb4            | 291 |            | Yes         |       0 | NO PAD        |
| utf8mb4_lv_0900_ai_ci      | utf8mb4            | 258 |            | Yes         |       0 | NO PAD        |
| utf8mb4_lv_0900_as_cs      | utf8mb4            | 281 |            | Yes         |       0 | NO PAD        |
| utf8mb4_persian_ci         | utf8mb4            | 240 |            | Yes         |       8 | PAD SPACE     |
| utf8mb4_pl_0900_ai_ci      | utf8mb4            | 261 |            | Yes         |       0 | NO PAD        |
| utf8mb4_pl_0900_as_cs      | utf8mb4            | 284 |            | Yes         |       0 | NO PAD        |
| utf8mb4_polish_ci          | utf8mb4            | 229 |            | Yes         |       8 | PAD SPACE     |
| utf8mb4_romanian_ci        | utf8mb4            | 227 |            | Yes         |       8 | PAD SPACE     |
| utf8mb4_roman_ci           | utf8mb4            | 239 |            | Yes         |       8 | PAD SPACE     |
| utf8mb4_ro_0900_ai_ci      | utf8mb4            | 259 |            | Yes         |       0 | NO PAD        |
| utf8mb4_ro_0900_as_cs      | utf8mb4            | 282 |            | Yes         |       0 | NO PAD        |
| utf8mb4_ru_0900_ai_ci      | utf8mb4            | 306 |            | Yes         |       0 | NO PAD        |
| utf8mb4_ru_0900_as_cs      | utf8mb4            | 307 |            | Yes         |       0 | NO PAD        |
| utf8mb4_sinhala_ci         | utf8mb4            | 243 |            | Yes         |       8 | PAD SPACE     |
| utf8mb4_sk_0900_ai_ci      | utf8mb4            | 269 |            | Yes         |       0 | NO PAD        |
| utf8mb4_sk_0900_as_cs      | utf8mb4            | 292 |            | Yes         |       0 | NO PAD        |
| utf8mb4_slovak_ci          | utf8mb4            | 237 |            | Yes         |       8 | PAD SPACE     |
| utf8mb4_slovenian_ci       | utf8mb4            | 228 |            | Yes         |       8 | PAD SPACE     |
| utf8mb4_sl_0900_ai_ci      | utf8mb4            | 260 |            | Yes         |       0 | NO PAD        |
| utf8mb4_sl_0900_as_cs      | utf8mb4            | 283 |            | Yes         |       0 | NO PAD        |
| utf8mb4_spanish2_ci        | utf8mb4            | 238 |            | Yes         |       8 | PAD SPACE     |
| utf8mb4_spanish_ci         | utf8mb4            | 231 |            | Yes         |       8 | PAD SPACE     |
| utf8mb4_sv_0900_ai_ci      | utf8mb4            | 264 |            | Yes         |       0 | NO PAD        |
| utf8mb4_sv_0900_as_cs      | utf8mb4            | 287 |            | Yes         |       0 | NO PAD        |
| utf8mb4_swedish_ci         | utf8mb4            | 232 |            | Yes         |       8 | PAD SPACE     |
| utf8mb4_tr_0900_ai_ci      | utf8mb4            | 265 |            | Yes         |       0 | NO PAD        |
| utf8mb4_tr_0900_as_cs      | utf8mb4            | 288 |            | Yes         |       0 | NO PAD        |
| utf8mb4_turkish_ci         | utf8mb4            | 233 |            | Yes         |       8 | PAD SPACE     |
| utf8mb4_unicode_520_ci     | utf8mb4            | 246 |            | Yes         |       8 | PAD SPACE     |
| utf8mb4_unicode_ci         | utf8mb4            | 224 |            | Yes         |       8 | PAD SPACE     |
| utf8mb4_vietnamese_ci      | utf8mb4            | 247 |            | Yes         |       8 | PAD SPACE     |
| utf8mb4_vi_0900_ai_ci      | utf8mb4            | 277 |            | Yes         |       0 | NO PAD        |
| utf8mb4_vi_0900_as_cs      | utf8mb4            | 300 |            | Yes         |       0 | NO PAD        |
| utf8mb4_zh_0900_as_cs      | utf8mb4            | 308 |            | Yes         |       0 | NO PAD        |
+----------------------------+--------------------+-----+------------+-------------+---------+---------------+
75 rows in set (0.02 sec)

各排序规则含义:

校验规则描述
utf8mb4_0900_ai_ci基于Unicode 9.0.0版本,不区分大小写,适用于多语言环境,提供准确的排序结果。
utf8mb4_0900_as_ci基于Unicode 9.0.0版本,不区分大小写,适用于多语言环境,提供准确的排序结果。
utf8mb4_0900_as_cs基于Unicode 9.0.0版本,区分大小写,适用于多语言环境,提供准确的排序结果。
utf8mb4_0900_bin基于Unicode 9.0.0版本,进行严格的二进制比较和排序,区分大小写和字符编码。
utf8mb4_bin进行严格的二进制比较和排序,区分大小写和字符编码。
utf8mb4_croatian_ci不区分大小写,适用于克罗地亚语的比较和排序。
utf8mb4_cs_0900_ai_ci基于Unicode 9.0.0版本,不区分大小写,适用于捷克语的比较和排序。
utf8mb4_cs_0900_as_cs基于Unicode 9.0.0版本,区分大小写,适用于捷克语的比较和排序。
utf8mb4_czech_ci不区分大小写,适用于捷克语的比较和排序。
utf8mb4_danish_ci不区分大小写,适用于丹麦语的比较和排序。
utf8mb4_da_0900_ai_ci基于Unicode 9.0.0版本,适用于丹麦语,不区分大小写,提供准确的排序结果。
utf8mb4_da_0900_as_cs基于Unicode 9.0.0版本,适用于丹麦语,区分大小写,提供准确的排序结果。
utf8mb4_de_pb_0900_ai_ci基于Unicode 9.0.0版本,适用于德语(奥地利/瑞士),不区分大小写,提供准确的排序结果。
utf8mb4_de_pb_0900_as_cs基于Unicode 9.0.0版本,适用于德语(奥地利/瑞士),区分大小写,提供准确的排序结果。
utf8mb4_eo_0900_ai_ci基于Unicode 9.0.0版本,适用于世界语,不区分大小写,提供准确的排序结果。
utf8mb4_eo_0900_as_cs基于Unicode 9.0.0版本,适用于世界语,区分大小写,提供准确的排序结果。
utf8mb4_esperanto_ci不区分大小写,适用于世界语的比较和排序。
utf8mb4_estonian_ci不区分大小写,适用于爱沙尼亚语的比较和排序。
utf8mb4_es_0900_ai_ci基于Unicode 9.0.0版本,适用于西班牙语,不区分大小写,提供准确的排序结果。
utf8mb4_es_0900_as_cs基于Unicode 9.0.0版本,适用于西班牙语,区分大小写,提供准确的排序结果。
utf8mb4_es_trad_0900_ai_ci基于Unicode 9.0.0版本,适用于传统的西班牙语,不区分大小写,提供准确的排序结果。
utf8mb4_es_trad_0900_as_cs基于Unicode 9.0.0版本,适用于传统的西班牙语,区分大小写,提供准确的排序结果。
utf8mb4_et_0900_ai_ci基于Unicode 9.0.0版本,适用于爱沙尼亚语,不区分大小写,提供准确的排序结果。
utf8mb4_et_0900_as_cs基于Unicode 9.0.0版本,适用于爱沙尼亚语,区分大小写,提供准确的排序结果。
utf8mb4_general_ci不区分大小写的通用排序规则,适用于多语言环境。
utf8mb4_german2_ci不区分大小写,适用于德语的比较和排序,提供更严格的排序规则。
utf8mb4_hr_0900_ai_ci基于Unicode 9.0.0版本,适用于克罗地亚语,不区分大小写,提供准确的排序结果。
utf8mb4_hr_0900_as_cs基于Unicode 9.0.0版本,适用于克罗地亚语,区分大小写,提供准确的排序结果。
utf8mb4_hungarian_ci不区分大小写,适用于匈牙利语的比较和排序。
utf8mb4_hu_0900_ai_ci基于Unicode 9.0.0版本,适用于匈牙利语,不区分大小写,提供准确的排序结果。
utf8mb4_hu_0900_as_cs基于Unicode 9.0.0版本,适用于匈牙利语,区分大小写,提供准确的排序结果。
utf8mb4_icelandic_ci不区分大小写,适用于冰岛语的比较和排序。
utf8mb4_is_0900_ai_ci基于Unicode 9.0.0版本,适用于冰岛语,不区分大小写,提供准确的排序结果。
utf8mb4_is_0900_as_cs基于Unicode 9.0.0版本,适用于冰岛语,区分大小写,提供准确的排序结果。
utf8mb4_ja_0900_as_cs基于Unicode 9.0.0版本,适用于日语,区分大小写,提供准确的排序结果。
utf8mb4_ja_0900_as_cs_ks基于Unicode 9.0.0版本,适用于日语,区分大小写和偏旁部首,提供准确的排序结果。
utf8mb4_latvian_ci不区分大小写,适用于拉脱维亚语的比较和排序。
utf8mb4_la_0900_ai_ci基于Unicode 9.0.0版本,适用于拉丁语系语言,不区分大小写,提供准确的排序结果。
utf8mb4_la_0900_as_cs基于Unicode 9.0.0版本,适用于拉丁语系语言,区分大小写,提供准确的排序结果。
utf8mb4_lithuanian_ci不区分大小写,适用于立陶宛语的比较和排序。
utf8mb4_lt_0900_ai_ci基于Unicode 9.0.0版本,适用于立陶宛语,不区分大小写,提供准确的排序结果。
utf8mb4_lt_0900_as_cs基于Unicode 9.0.0版本,适用于立陶宛语,区分大小写,提供准确的排序结果。
utf8mb4_lv_0900_ai_ci基于Unicode 9.0.0版本,适用于拉脱维亚语,不区分大小写,提供准确的排序结果。
utf8mb4_lv_0900_as_cs基于Unicode 9.0.0版本,适用于拉脱维亚语,区分大小写,提供准确的排序结果。
utf8mb4_persian_ci不区分大小写,适用于波斯语的比较和排序。
utf8mb4_pl_0900_ai_ci基于Unicode 9.0.0版本,适用于波兰语,不区分大小写,提供准确的排序结果。
utf8mb4_pl_0900_as_cs基于Unicode 9.0.0版本,适用于波兰语,区分大小写,提供准确的排序结果。
utf8mb4_polish_ci不区分大小写,适用于波兰语的比较和排序。
utf8mb4_romanian_ci不区分大小写,适用于罗马尼亚语的比较和排序。
utf8mb4_roman_ci不区分大小写,适用于罗马语系的比较和排序。
utf8mb4_ro_0900_ai_ci基于Unicode 9.0.0版本,适用于罗马尼亚语,不区分大小写,提供准确的排序结果。
utf8mb4_ro_0900_as_cs基于Unicode 9.0.0版本,适用于罗马尼亚语,区分大小写,提供准确的排序结果。
utf8mb4_ru_0900_ai_ci基于Unicode 9.0.0版本,适用于俄语,不区分大小写,提供准确的排序结果。
utf8mb4_ru_0900_as_cs基于Unicode 9.0.0版本,适用于俄语,区分大小写,提供准确的排序结果。
utf8mb4_sinhala_ci不区分大小写,适用于僧伽罗语的比较和排序。
utf8mb4_sk_0900_ai_ci基于Unicode 9.0.0版本,适用于斯洛伐克语,不区分大小写,提供准确的排序结果。
utf8mb4_sk_0900_as_cs基于Unicode 9.0.0版本,适用于斯洛伐克语,区分大小写,提供准确的排序结果。
utf8mb4_slovak_ci不区分大小写,适用于斯洛伐克语的比较和排序。
utf8mb4_slovenian_ci不区分大小写,适用于斯洛文尼亚语的比较和排序。
utf8mb4_sl_0900_ai_ci基于Unicode 9.0.0版本,适用于斯洛文尼亚语,不区分大小写,提供准确的排序结果。
utf8mb4_sl_0900_as_cs基于Unicode 9.0.0版本,适用于斯洛文尼亚语,区分大小写,提供准确的排序结果。
utf8mb4_spanish2_ci不区分大小写,适用于西班牙语的比较和排序。
utf8mb4_spanish_ci不区分大小写,适用于西班牙语的比较和排序。
utf8mb4_sv_0900_ai_ci基于Unicode 9.0.0版本,适用于瑞典语,不区分大小写,提供准确的排序结果。
utf8mb4_sv_0900_as_cs基于Unicode 9.0.0版本,适用于瑞典语,区分大小写,提供准确的排序结果。
utf8mb4_swedish_ci不区分大小写,适用于瑞典语的比较和排序。
utf8mb4_tr_0900_ai_ci基于Unicode 9.0.0版本,适用于土耳其语,不区分大小写,提供准确的排序结果。
utf8mb4_tr_0900_as_cs基于Unicode 9.0.0版本,适用于土耳其语,区分大小写,提供准确的排序结果。
utf8mb4_turkish_ci不区分大小写,适用于土耳其语的比较和排序。
utf8mb4_unicode_520_ci不区分大小写,基于Unicode 5.2.0版本的通用排序规则。
utf8mb4_unicode_ci不区分大小写,基于Unicode的通用排序规则。
utf8mb4_vietnamese_ci不区分大小写,适用于越南语的比较和排序。
utf8mb4_vi_0900_ai_ci基于Unicode 9.0.0版本,适用于越南语,不区分大小写,提供准确的排序结果。
utf8mb4_vi_0900_as_cs基于Unicode 9.0.0版本,适用于越南语,区分大小写,提供准确的排序结果。
utf8mb4_zh_0900_as_cs基于Unicode 9.0.0版本,适用于中文,区分大小写,提供准确的排序结果。

常用的排序规则

校验规则描述
utf8mb4_0900_ai_ci基于Unicode 9.0.0版本,不区分大小写,适用于多语言环境,提供准确的排序结果。
utf8mb4_0900_as_ci基于Unicode 9.0.0版本,不区分大小写,适用于多语言环境,提供准确的排序结果。
utf8mb4_0900_as_cs基于Unicode 9.0.0版本,区分大小写,适用于多语言环境,提供准确的排序结果。
utf8mb4_0900_bin基于Unicode 9.0.0版本,进行严格的二进制比较和排序,区分大小写和字符编码。
utf8mb4_bin进行严格的二进制比较和排序,区分大小写和字符编码。
utf8mb4_general_ci不区分大小写的通用排序规则,适用于多语言环境。
utf8mb4_unicode_520_ci不区分大小写,基于Unicode 5.2.0版本的通用排序规则。
utf8mb4_unicode_ci不区分大小写,基于Unicode的通用排序规则。
utf8mb4_zh_0900_as_cs基于Unicode 9.0.0版本,适用于中文,区分大小写,提供准确的排序结果。

基于上表描述信息,utf8mb4_0900_ai_ci 是 utf8mb4 字符集的默认排序规则(字符集校验规则),然而一般软件开发中用户可能选择 utf8mb4_0900_as_csutf8mb4_bin

utf8mb4 字符集的默认校验规则为: utf8mb4_0900_ai_ci

排序规则命名规则:

字符集_[编码|语言][_重音][_大小写敏感][_bin]
字符集: utf8mb4
编码:可选,值可能为 0900、unicode 或 unicode_520
语言:校验规则为特别语言而定制,如 _zh 表示适用于中文,_da 表示适用于丹麦语
重音:ai 表示不区分重音,as 表示区分重音
大小写敏感: ci 表示不区分大小写,cs 表示区分大小写
bin: 指字符比较时采用二进制进行比较。 当将字符串视为二进制进行比较时,会将字符串中的每个字符视为一组字节(或比特)的序列,而不考虑字符的语义、语言、大小写或重音符号等特征。在进行二进制比较时,只比较字符的字节表示,而不考虑字符本身的含义。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/598915.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

1688商品详情API:实现商品详情自动化的关键步骤

要实现商品详情的自动化,你可以遵循以下关键步骤: 明确需求和目标:首先,明确你想要通过自动化实现什么。是想要定期获取商品数据,进行数据分析,还是其他目的?确定目标有助于制定计划和步骤。集…

异步任务判断执行和重复使用实现类

主要是展示一下如何在书写异步任务判断的时候,如何根据返回值类型进行重复使用相同接口里面的不同实现类的方法 /*** 父类接口* **/ public interface Exceutor {String getTaskType();void excetuor(String s); }/*** 异步处理任务的任务类型** author yangziqian…

arcpy点要素生成经纬度字段脚本

说明 本脚本是用来简化操作的,正常情况下要生成经纬度字段,需要添加字段→填写字段名→写字段类型→字段计算器→计算几何。。。 而且经纬度都需要,要循环两遍。 本脚本就是为了简化以上操作的,安装后,打开脚本直接输…

从《数据库索引设计与优化》看mysql索引设计

很久之前写的一篇文章,主要是结合mysql45讲和《数据库索引设计与优化》讨论索引设计的,拿出来分享下。 选用什么引擎 对于INSERT_SELECT型数据库,如果没有事务的要求,更倾向于选择MyISAM。 因为InnoDB会维护更多的数据&#xff…

一个古老的终端显示控制命令-tput命令|帮你解决中英文混合时终端列对齐输出问题

终端显示控制对于写一个 终端脚本 是非常有用的,在没有图形界面时Unix和类Unix系统用户都是在Terminal控制终端下工作的。虽然Linux操作系统的图形界面出现淡化了终端显示控制,但终端控制功能依旧是每个命令行用户不可或缺的一部分。只是我们不知道在使用…

【LeetCode:129. 求根节点到叶节点数字之和 | 二叉树 + 递归】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

MySQL 8.0 ReplicaSet备库切换为可读写单库

MySQL 8.0 ReplicaSet备库切换为可读写单库 方法一方法二 方法一 从集群中删除备库(不会改变备库只读状态) # 检查备库标识 var rs dba.getReplicaSet() rs.status()# 移除备库同步 rs.removeInstance("MYSQL_REPLICA_IDENTIFIER:3306") #或…

记录汇川:水塔指令解释-ST

可以通过帮助查看指令手册 PLC的IO地址映射-两种方法 第一种: 新建一个全局变量表,按照如图所示建立IO地址 第二种: 直接如图所示位置定义名字 注意:IW和QB这两个前面一个有蓝色M一个没有。 蓝色的M表示模块发生变化的时候地址不会…

【S32K 进阶之旅】 NXP S32K3 以太网 RMII 接口调试(1)

前言 大联大世平集团推出了一款基于 NXP 车规级 MCU S32K344 的开发板——花名“Cavalry”,它使用 BGA257 封装的 32 位 ArmCortex-M7 S32K344 作为主控芯片,在69.6*130mm 的小体积开发板上搭载了 SBC 电源管理芯片、CAN 收发器、LIN 收发器、FLASH 存储…

低噪声,高增益的音频信号处理电路芯片选型分析

随着智能手机、汽车音频、AI智能音箱,智能家居、家庭影院、平板电脑、笔记本电脑等智能设备的普及;数字音频功放芯片的应用也越来越广泛;同时对音频信号处理的芯片的性能要求越来越高;以下几款就是常用热门音频信号处理电路芯片分…

NVM NodeJs版本管理 通关宝典

NVM NodeJs版本管理 通关宝典🏹 文章目录 NVM NodeJs版本管理 通关宝典🏹一、NVM是什么二、开始使用NVM三、NVM 命令速查四、手动安装特定Node版本(Windows)🙄4.1 NVM for windows 运行机制4.2 手动安装流程 五、切换 NVM 下载镜像源六、常见…

日志级别及其作用

在软件开发与运维过程中,日志是至关重要的部分,它记录了系统运行时的各种状态信息,包括错误、警告、调试信息等。不同的日志级别用于区分不同重要程度的信息,便于开发者和运维人员快速定位问题,优化系统性能&#xff0…

21. Mysql 事件或定时任务,解放双手,轻松实现自动化

文章目录 概念常见操作事件调度器操作查看事件创建事件删除事件启动与关闭事件 精选示例构造实时数据定时统计数据 总结参考资料 概念 Mysql 事件是一种在特定时间点自动执行的数据库操作,也可以称呼为定时任务,它可以自动执行更新数据、插入数据、删除…

x-cmd pkg | doggo - 现代化的 DNS 客户端

目录 简介首次用户快速实验指南功能特点类似工具与竞品进一步探索 简介 doggo 是一个由 Karan Sharma 于 2020 年使用 Go 语言开发的 DNS 客户端。它类似于 dig 命令,但旨在以现代化、简洁和可读的格式输出 DNS 查询结果。 首次用户快速实验指南 使用 x doggo 即可…

vue浏览器预览word文件

XDOC(最终实现方法) XDOC官方文档 window.open(https://view.xdocin.com/view?src encodeURIComponent(url), _blank);Office Online(尝试报错) window.open( https://view.officeapps.live.com/op/view.aspx?src url, _bl…

1.4 day4 IO进程线程

使用两个子进程进行文件拷贝&#xff0c;父进程进行资源回收 #include <myhead.h> int main(int argc, const char *argv[]) {//创建一个文件描述符并以只读的方式打开int fd-1;if((fdopen("./test.bmp",O_RDONLY))-1){perror("open error");return…

0.5(Euler-Maruyama), 1(Milstein), 和1.5 阶强Stochastic Differential Equation格式总结

本文的目的在于提供0.5&#xff0c;1和1.5阶强SDE数值格式的推导和内容&#xff0c;所有推导基于 I t o − T a y l o r Ito-Taylor Ito−Taylor展开&#xff0c;由于国内外网站缺少关于强SDE数值阶的总结&#xff0c;笔者在此特作总结&#xff0c;为使用SDE数值格式的读者提供…

Maven打包使用多线程加速构建过程

在Maven项目中&#xff0c;特别是在包含大量模块的大型项目构建时&#xff0c;编译和打包阶段可能会消耗较长时间。为了提升构建效率&#xff0c;Maven支持通过多线程进行并行构建&#xff0c;从而显著减少整体打包时间。本文将介绍两种启用Maven多线程打包的方式&#xff1a;命…

IDAPython详细版(二)

六&#xff1a;操作数 可以使用idc.get_openrand_typed(ea,n)得到操作数的类型。ea是地址&#xff0c;n是索引 这里有8种不同类型的操作数类 0_void 如果一个指令木有任何操作数它将返回0 0_reg 如果一个操作数是一个普通的寄存器将返回此类型。这个值在内部表示为1. o_mem …

java: 写入数据到HBase

一、添加依赖 <dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-client</artifactId><version>2.6.0</version></dependency><dependency><groupId>org.apache.hbase</groupId><art…