当我通过phpMyAdmin创建新的MySQL数据库时,我可以选择排序规则(例如-default、armscii8、ascii、...和UTF-8)。我知道的是UTF-8,因为我总是在HTML源代码中看到它。但是默认排序规则是什么呢?这些选择之间有什么区别,我应该使用哪一个?
发布于 2009-08-05 03:57:29
排序规则实际上不是默认的,它为您提供了默认排序规则作为第一选择。
我们讨论的是collation,也就是数据库将在其文本类型中使用的字符集。您的默认选项通常是基于区域设置的,所以除非您计划全球化,否则通常是非常热衷于此的。
排序规则还决定区分大小写和重音(即- 'Big‘== 'big'?使用CI,它是)。查看所有选项的MySQL list。
发布于 2009-08-05 04:23:26
排序规则告诉数据库如何执行字符串匹配和排序。它应该与您的字符集匹配。
如果使用UTF-8,则排序规则应为utf8_general_ci。这将按unicode顺序排序(不区分大小写),并且适用于大多数语言。它还保留了ASCII和Latin1顺序。
默认排序规则通常为latin1。
发布于 2019-08-01 18:25:25
简而言之:在处理MySql & MariaDB中的排序规则时,请始终使用utf8mb4 (特别是utf8mb4_unicode_ci)。
长长的答案:
UTF的utf8编码的命名有些笨拙,因为它不同于正确的UTF8编码。它不提供完全的Unicode支持,这可能会导致数据丢失或安全漏洞。
幸运的是,UTF5.5.3(2010年初发布)引入了一种名为utf8mb4的新编码,它映射到正确的UTF8,因此完全支持Unicode。
点击此处阅读全文:https://mathiasbynens.be/notes/mysql-utf8mb4
至于选择哪一个特定的utf8mb,使用utf8mb4_unicode_ci,这样排序总是被正确地处理,性能缺陷最小/不明显。点击此处查看更多详情:What's the difference between utf8_general_ci and utf8_unicode_ci
https://stackoverflow.com/questions/1231105
复制相似问题