在使用MySQL数据库存储数据的时候,意外发现不能存储Emoji表情😄。经过百度查证得知,mysql默认的 utf8 是三个字节的,存储不了四个字节的生僻字或者Emoji表情。需要换成支持四个字节的 utf8mb4 ,也就是UTF-8 most byte 4 。
解决
1 2 3 4 5 6
# 数据库更换字符集 ALTER DATABASE AchatUserService CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci; # 表更换字符集 ALTER TABLE friendship CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; # 需要改变的列进行更换字符集 ALTER TABLE messages CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;