同福

MySQL数据表无法存储emoji表情的问题

介绍

介绍

福哥在存储一个字符串的时候,程序报了如下错误:

java.sql.SQLException: Incorrect string value: '\xF0\x9F\x91\x8B H...' for column 'title' at row 1

home/topic/2021/1208/09/7a49974730bff4854f21540b0b9f6477.png

原因

经过分析原因是因为字符串包含emoji表情,这个emoji表情用的是4个字节的数据,而MySQL默认的数据是3个字节的,3个字节的空间肯定无法存储4个字节的数据的。

解决

修改MySQL的数据字段的编码(character set)为utf8mb4类型,修改MySQL的数据字段的存储方式(collate)为utf8mb4_unicode_ci方式,这样就可以解决了!

home/topic/2021/1208/09/de4f1e93049f63f2a190a621a98277c9.png

只需要把会存储emoji表情数据的字段的编码和存储方式改了就可以了!