MySQL中emoji表情包的存储问题

MySQL中emoji表情包的存储问题

现象

最近项目中存储emoji表情包的时候报错:

### Cause: java.sql.SQLException: Incorrect string value: '\xF0\x9F\x98\x81' for column 'column1' at row 1
; uncategorized SQLException; SQL state [HY000]; error code [1366]; Incorrect string value: '\xF0\x9F\x98\x81' for column 'column1' at row 1; nested exception is java.sql.SQLException: Incorrect string value: '\xF0\x9F\x98\x81' for column 'column1' at row 1]

解决过程及方法

这个问题是由于数据库的编码方式引起的,首先我们来 了解一下utf8和utf8mb4的区别

utf8一般是指UTF-8,是针对Unicode的一种可变长度字符编码,每个字符最多三个字节,有时候也称为utf8mb3。