In MySQL, which collation should I choose?
当我通过phpmyadmin创建一个新的mysql数据库时,我可以选择排序规则(例如-default、armscii8、ascii…)。和UTF-8)。我知道的是utf-8,因为我总是在HTML源代码中看到它。但是默认的排序规则是什么?这些选择之间有什么区别,我应该使用哪一个?
- 如果您希望更精确,请使用utf8_unicode_ci。请参阅stackoverflow.com/questions/367711/…
- 在wordpress codex:codex.wordpress.org/installing_wordpress上建议使用unicode_-general_-ci。
排序规则告诉数据库如何执行字符串匹配和排序。它应该和你的字符集匹配。
如果使用UTF-8,则排序规则应为utf8_-general_-ci。这将按Unicode顺序排序(不区分大小写),适用于大多数语言。它还保留了ascii和latin1顺序。
默认排序规则通常为Latin1。
- 不要使用任何utf8排序规则。它们最多只能存储3个字节的代码点。正确的utf-8称为utf8mb4,它最多允许4个字节,因此包括emoji。mathiasbynens.be/notes/mysql-utf8mb4
- @用户1318499你能把你的评论转换成一个答案并给出更多细节吗?
- 我现在已经忘记了大部分内容,所以我没有信心写得更多,但是如果你想自己把它变成一个答案,所有的信息都应该在我的评论链接中。
排序规则实际上不是默认的,它将默认排序规则作为第一选择。
我们要讨论的是排序规则,或者数据库将在其文本类型中使用的字符集。您的默认选项通常基于区域设置,所以除非您计划全球化,否则这通常是非常热衷的。
排序还可以确定大小写和重音敏感度(即-Is‘big’=‘big’?有了CI,就可以了)。查看mysql列表中的所有选项。
- UTF-8怎么样?我看到Wordpress使用UTF-8?我应该使用UTF-8吗??
- UTF-8是Unicode。如果你不在一个讲英语的国家,使用它是一个很好的选择。
- 我懂了。我们的项目面向我们和全世界,所以我认为如果我们使用UTF-8会更好,对吗?
- 是的,你是。这绝对是一个安全的整理。
- 谢谢你的帮助,埃里克
- "你的默认选项通常是基于区域设置的,所以除非你打算全球化,否则这通常是非常敏感的。"不能让这张幻灯片。他说的是phpmyadmin,所以是网站。万维网如何不全球化??如果您想显示汉字,例如,区域设置通常不好。确保使用Unicode,即使您在英语区域。你的访客可能来自不同的国家,如果你能展示他们的名字,那就太好了。
- 所以ci代表"不区分大小写"对吗?
- @阿伦斯基-是的!