utf8mb4编码是utf8编码的超集,兼容utf8,并且能存储4字节的表情字符。
采用utf8mb4编码的好处是:存储与获取数据的时候,不用再考虑表情字符的编码与解码问题。
更改数据库的编码为utf8mb4:
1. MySQL的版本
utf8mb4的最低mysql版本支持版本为5.5.3+,若不是,请升级到较新版本。
2. MySQL驱动
5.1.34可用,最低不能低于5.1.13
SHOW VARIABLES WHERE Variable_name LIKE 'character_set
Mysql的utf8编码最多3个字节,而Emoji表情或者某些特殊字符是4个字节。
因此会导致带有表情的昵称插入数据库时出错。
只要修改MySQL的编码即可,解决方案如下:
1.在mysql的安装目录下找到my.ini,作如下修改:
[mysqld]
character-set-server=utf8mb4
[mysql]
default-character-set=utf8mb4
2 重启mysql服务
3 修改表
ALTER TABLE 表名 CONVERT TO CHARACTER S