utf8_general_cs 区分大小写,如果用户名和邮箱用这个就会照成不良后果。
utf8_bin:将字符串中的每一个字符用二进制数据存储,区分大小写。
以上,ci是 case insensitive, 即 "大小写不敏感", a 和 A 会在字符判断中会被当做一样的。
utf8_unicode_ci比较准确,utf8_general_ci速度比较快。通常情况下 utf8_general_ci的准确性就够我们用的了,在我看过很多程序源码后,发现它们大多数也用的是utf8_general_ci,所以新建数据库时一般选用utf8_general_ci就可以了。
Mysql5.5.3以后,推荐使用utf8mb4,而不是utf8。
它们都使用utf-8编码,但是较旧的utf8有一个特定的mysql限制,不能使用超过0xFFFD的字符。
utf8mb4_general_ci与utf8mb4_unicode_ci的区别和utf8_general_ci与utf8_general_cs的区别大致相同。
http://*.com/questions/766809/whats-the-difference-between-utf8-general-ci-and-utf8-unicode-ci