MySql存储字符表情修改修改字符集为“utf8mb4”
问题:存储emoji表情报错时报(Incorrect string value: '\xF0\x9F\x98\x82\xF0\x9F...')的错误
分析:
普通的字符串或者表情都是占位3个字节,所以utf8足够用了,但是移动端的表情符号占位是4个字节,普通的utf8就不够用了,为了应对无线互联网的机遇和挑战、避免 emoji 表情符号带来的问题、涉及无线相关的 MySQL 数据库建议都提前采用 utf8mb4 字符集,这必须要作为移动互联网行业的一个技术选型的要点
Mysql 版本的限制,Mysql 5.5.3之前的版本,支持的utf8为3字节的,Mysql 5.5.3之后的版本支持utf8mb4
解决方案:
修改MySql字符集为utf8mb4
修改MySql步骤
1、找到Mysql配置文件,通过查看MySql服务的启动命令来确认配置文件

2、打开配置文件,分别在【client】【mysql】【mysqld】节点下设置对应参数如下:
[client] default-character-set = utf8mb4 [mysql] default-character-set = utf8mb4 [mysqld] character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci
3、重启Mysql服务,可以直接在服务里右键重启,也可用以下命令重启:
service mysqld restart
或
service mysql restart
4、将数据库、表、对应字段字符集都修改为 utf8mb4,参与以下命令
-- 查看数据表的编码格式 show create table <表名>; --修改数据库的编码格式 alter database <数据库名> character set utf8mb4; --修改数据表格编码格式1 alter table <表名> character set utf8mb4; --修改字段编码格式 alter table <表名> change <字段名> <字段名> <类型> character set utf8mb4;
5、修改程序连接串的字符集配置


浙公网安备 33010602011771号