java emoji表情_java处理emoji表情的方法

最近项目中遇到emoji表情存储的问题,后来就在网上搜了很多,

总结出两种方法进行处理:

1.通过正则匹配进行过滤,代码如下:

//emoji表情过滤

public static String filterEmoji(String source) {

if(source != null){

Pattern emoji = Pattern.compile("[\ud83c\udc00-\ud83c\udfff]|[\ud83d\udc00-\ud83d\udfff]|[\u2600-\u27ff]",Pattern.UNICODE_CASE | Pattern.CASE_INSENSITIVE);

Matcher emojiMatcher = emoji.matcher(source);

if (emojiMatcher.find()){

source = emojiMatcher.replaceAll("");

return source;

}

return source;

}

return source;

}

2.通过修改数据库编码进行存储,最好在创建数据库的时候就采用该编码:

好多都说把mysql数据库字符集编码改成utf8mb4_unicode_ci,改完之后存储的emoji表情是4个问号,后来接着上网查,发现了通过引入emoji-java的jar方式来处理emoji表情,下面是两段转换代码: //把含有emoji表情的字符串中的emoji表情转成相应的alias String result = EmojiParser.parseToAliases(name); //把取得的别名转成对应的emoji表情 name = EmojiParser.parseToUnicode(name); 具体参考:https://github.com/vdurmont/emoji-java 上面的方法虽然可以用,但是需要比对jar包中的表情库,所系速度上相对来说较慢,后来我又继续研究上面 通过修改数据库编码的方式来解决,最后通过配置my.ini文件,把数据库编码格式修改成以下格式后就可以了, 原来出现乱码是因为我的character_set_server格式是latin1,改成utf8mb4后就可以了,可以看下成功的截图:

a9011180aa6556d402f9fcd1d685bd40.png表字段:

793a7951ed6daa573078c8c61a4541ea.png表引擎:

da1faf17b494256bae1d089d41e3c9fe.png数据库:

50bae28eb26fe8986c572b8fbcfc38fb.png数据:

a84e5405c331843d81a0e9749cd83d0b.png不用管数据库中存的是乱码,取出来的环境支持emoji时就会显示出来。

277ffd0af360480f17085ba7ed01ec97.png

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值