数据库编码格式utf-8
保存报错:Incorrect string value: '\xF0\x9F\x88\xB2' for column XXX at row 1
原因:Emoji表情符号为4个字节的字符,而 utf8 字符集只支持1-3个字节的字符,导致无法写入数据库。
多么痛的领悟? 对的 --> 永远不要在MySQL中使用utf8,改用utf8mb4
1.修改数据库编码
受限于MYSQL对 utf8mb4 字符集的支持
两种方法都有介绍:https://blog.csdn.net/a601025382s/article/details/50915286;
https://www.jianshu.com/p/20740071d854
2.转码存储
把数据转成数据能够存储的格式,可以前端转码,也已后台转码,这里是后台转码。
1)使用emoj-java
git地址:https://github.com/vdurmont/emoji-java 备注,英文的。中文参考,再读英文版:https://blog.csdn.net/eson_15/article/details/81953720
2)既然转码可以,应该可以转成base64...
附录:
emoji统一编码表:https://apps.timwhitlock.info/emoji/tables/unicode