开发者社区> 问答> 正文

UTF-8:一般?斌吗 Unicode?

我试图弄清楚我应该对各种类型的数据使用哪种排序规则。我要存储的内容的100%是用户提交的。

我的理解是,我应该使用UTF-8 General CI(不区分大小写),而不是UTF-8 Binary。但是,我找不到UTF-8通用CI和UTF-8 Unicode CI之间的明显区别。

我应该在UTF-8 General或UTF-8 Unicode CI列中存储用户提交的内容吗? UTF-8 Binary适用于什么类型的数据?

展开
收起
保持可爱mmm 2020-05-11 10:59:46 530 0
1 条回答
写回答
取消 提交回答
  • 通常,utf8_general_ci比utf8_unicode_ci快,但正确性较差。

    区别在于:

    对于任何Unicode字符集,使用_general_ci归类执行的操作都比_unicode_ci归类执行的操作要快。例如,utf8_general_ci归类的比较比utf8_unicode_ci的比较更快,但正确性稍差。原因是utf8_unicode_ci支持诸如扩展之类的映射。也就是说,当一个字符比较等于其他字符的组合时。例如,在德语和其他一些语言中,“ß”等于“ ss”。utf8_unicode_ci还支持收缩和可忽略字符。utf8_general_ci是旧版归类,不支持扩展,收缩或可忽略的字符。它只能在字符之间进行一对一比较。

    引用自:http : //dev.mysql.com/doc/refman/5.0/en/charset-unicode-sets.html

    有关更多详细说明,请阅读以下来自MySQL论坛的帖子:http : //forums.mysql.com/read.php?103,187048,188748

    至于utf8_bin:utf8_general_ci和utf8_unicode_ci都执行不区分大小写的比较。相反,utf8_bin区分大小写(除其他差异外),因为它比较字符的二进制值。来源:stack overflow

    2020-05-11 11:00:01
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载