本文主要是介绍MySQL utf8和utf8mb4编码,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1、MySQL中utf8字符集
- utf8是MySQL存储Unicode数据的一种编码方式
- utf8中一个符号使用1~3个字节表示
2、MySQL中utf8mb4字符集
由于utf8对UTF-8支持不彻底,无法存放表情(emoji)和不常用汉字,因此引入utf8mb4字符集,其中mb4就是most bytes 4,专门用来兼容四字节的Unicode。并且utf8mb4是utf8的超集,也就是说utf8mb4包含所有utf8的字符。
3、MySQL中utf8校对规则
- utf8_bin,每个字符用二进制数据存储,区分大小写
- utf8_general_ci,ci表示case insensitive,即大小写不敏感
- utf8_unicode_ci,utf8_unicode_ci和utf8_general_ci对中、英文来说没有实质的差别,德语、法语或者俄语,需要使用utf8_unicode_ci;utf8_general_ci校对速度快,但准确度稍差(针对俄法德而言)
- 以上规则针对utf8mb4类似,有utf8mb4_bin、utf8mb4_general_ci、utf8mb4_unicode_ci,就不赘述。
MySQL中varchar类型默认不区分大小写,如果区分大小写设置字段以utf8_bin或者utf8mb4_bin编码格式即可。
4、设置校对格式
MariaDB [test]> create table utf8test1( name varchar(20)) CHARACTER SET utf8 COLLATE utf8_general_ci;
Query OK, 0 rows affected (0.01 sec)MariaDB [test]> create table utf8test2( name varchar(20)) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
Query OK, 0 rows affected (0.01 sec)MariaDB [test]> create table utf8test3( name varchar(20)) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Query OK, 0 rows affected (0.01 sec)
这篇关于MySQL utf8和utf8mb4编码的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!