mysql数据库的默认字符集utf8,只能存储3个字节的数据。标准的emoji表情是4个字节,在APP端输入
保存表情是用户的普遍需求和行为。

插入数据库报错如下:

java.sql.SQLException: Incorrect string value: '\xF0\x9F\x92\xAA",...' 
for column 'raw_json' at row 1, 异常:org.springframework.jdbc.UncategorizedSQLException: 

解决方式:

更换字符集utf8-->utf8mb4      
mb4的意思是most bytes 4,专门为兼容四个字节的。utf8mb4是向下兼容utf8的,所以即便修改了字段的字
符集也不会影响线上数据。

前提:mysql大于5.5.3版本。
步骤:

1.修改表中字段的字符集

 ALTER table 表名  modify  字段名  varchar(100) 
 character set utf8mb4 collate utf8mb4_unicode_ci

2.表

 ALTER table 表名 charset = utf8mb4;

3.库

 set names utf8mb4
posted on 2021-03-09 10:01  黎明前的守护  阅读(193)  评论(0编辑  收藏  举报