当我通过phpMyAdmin创建一个新的MySQL数据库时,我可以选择排序规则(例如-default,armscii8,ascii,...和UTF-8).我知道的是UTF-8,因为我总是在HTML源代码中看到这一点.但是默认排序规则是什么?这些选择之间有什么区别,我应该使用哪一个?
ZZ *_*der 25
排序规则告诉数据库如何执行字符串匹配和排序.它应该与你的charset相匹配.
如果使用UTF-8,则排序规则应为utf8_general_ci.这将按Unicode顺序排序(不区分大小写),并且适用于大多数语言.它还保留ASCII和Latin1顺序.
默认排序规则通常是latin1.
简短回答:在处理 MySql 和 MariaDB 中的排序规则时始终使用utf8mb4(特别是utf8mb4_unicode_ci)。
长答案:
MySQL 的utf8编码命名笨拙,因为它与正确的 UTF-8 编码不同。它不提供完整的 Unicode 支持,这可能会导致数据丢失或安全漏洞。
幸运的是,MySQL 5.5.3(于 2010 年初发布)引入了一种名为utf8mb4的新编码,它映射到正确的 UTF-8,因此完全支持 Unicode。
在此处阅读全文:https : //mathiasbynens.be/notes/mysql-utf8mb4
至于具体utf8mb选择哪个,请使用,utf8mb4_unicode_ci以便始终正确处理排序,并具有最小/不明显的性能缺陷。在此处查看更多详细信息:utf8_general_ci 和 utf8_unicode_ci 有什么区别