1 场景
小程序端的售后评价,或者商家后台的商品评价等。这些功能都有把emoji保存到数据库。
项目里用的数据库是MySQL,字符集是utf8。
2 为什么往MySQL保存emoji代码出错?
emoji表情用的是Unicode字符,占4个字节。而utf8编码最大字符长度为3字节,所以插入数据时报了异常。
3 解决方案
3.1 方案一:解决保存emoji数据到数据库报错
3.1.1 解决办法
于是修改MySQL的字符集为utf8mb4
3.2 方案二:项目引入com.vdurmont依赖来处理emoji字符
3.2.1 依赖
<dependency>
<groupId>com.vdurmont</groupId>
<artifactId>emoji-java</artifactId>
<version>5.1.1</version>
</dependency>
只加依赖就可以了,不需要改配置文件里的其他东西。
3.2.2 保存到数据库前,把emoji表情对应的字符转成字符串
//思路:把unicode字符转成字符串后,保存到数据库
//使用方法:EmojiParser.parseToAliases()
String t = "\uD83D\uDE04";
System.out.println(EmojiParser.parseToAliases(t)); //:smile:
3.2.3 把从数据库拿到的emoji字符串转成unicode字符后,再返回到接口上
//思路:把从数据库里拿到的字符串转成unicode,返回到接口上
//使用方法:EmojiParser.parseToUnicode()
String s = ":smile:";
System.out.println(EmojiParser.parseToUnicode(s)); //😄
注:本站所有文章均为原创,欢迎转载,请注明文章出处:https://blog.csdn.net/s__lion/article/details/132832764。百度和各类采集站皆不可信,搜索请谨慎鉴别。技术类文章一般都有时效性,本人习惯不定期对自己的博文进行修正和更新,因此请访问出处以查看本文的最新版本。