前言
自从开始用 MySQL
,一真使用utf8
。亏得我一直这么相信它,直到廖师傅告诉我utf8
是假的,要用utf8mb4
才行。然后才改邪归正,这么久了,想想应该写个笔记记录一下的。
江湖上流传的是这样的版本:
https://www.cnblogs.com/wbxk/p/10785517.html
故事精彩一点,结果是一样的。请使用:utf8mb4
官方note
请使用:utf8mb4
不推荐使用 utf8mb3 字符集,将在未来的 MySQL 版本中删除。请使用 utf8mb4。虽然 utf8 目前是 utf8mb3 的别名,但在某些情况下,utf8 将成为 utf8mb4 的引用。为了避免含糊不清 utf8的含义,可以考虑为字符集引用显式地指定utf8mb4,而不是utf8
为免疏漏上原图:
示例
- 一般场景:大小写不敏感且性能优先,选择
utf8mb4_general_ci
,简单高效,性能良好。 - 多语言或精确排序场景:严格按照字符
Unicode
编码精确排序,选择utf8mb4_unicode_ci
。
参考资料
官方说明: https://dev.mysql.com/doc/refman/8.0/en/charset-unicode.html