MySQL数据库字符集采用UTF8与UTFmd4的区别与现象

前言:最近在工作中碰到插入特殊字符报错的问题,网上也有很多人在讲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 的字符集 !

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值