MySQL中的字符集设置UTF8与UTF8mb4的问题

前言:最近在工作中碰到插入特殊字符报错的问题,网上也有很多人在讲UTF8与UTF8mb4的区别,这里就不再赘述,只是亲自验证一下,简单记录一下过程

废话不多说,拿数据说话

一:首先准备两个数据库:test001与test002

  1. test001采用utf8的字符集,
  2. test002采用utf8mb4字符集
    在这里插入图片描述
    二:在两个表中都新建一张user表,字段属性为varchar(255),并且准备插入的SQL语句:
INSERT into `user` VALUES ("中国👀");

分别在两个数据库执行该SQL语句

  1. test001运行截图:
    在这里插入图片描述
  2. test002执行结果:
    在这里插入图片描述
    分别查看两张表:

1.test001的user表:
在这里插入图片描述
2.test002的user表:
在这里插入图片描述
三:结论:

综上验证:UTF8的编码方式,在Mysql数据库中可以是以1、2、3个字节存储字符的,
但是 : 有些特殊的字符比如一个emoji表情是4个字节,那么以UTF8的编码方式的MYSQL数据库就无法正确编码,
所以 : 在存储的时候出现错误,而采用UTF8mb4中的"mb4",是"most byte 4"即允许最大四个字节的意思,可以正常的存取emoji字符

建议:为了避免出现数据库插入特殊字符数据异常,建议在数据库的建表中采用 UTF8mb4 的字符集 !

posted @ 2020-07-09 15:04  敲代码的铁憨憨  阅读(301)  评论(0编辑  收藏  举报