最近项目中遇到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后就可以了,可以看下成功的截图:

表字段:

表引擎:

数据库:

数据:

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

java emoji表情_java处理emoji表情的方法相关推荐

  1. java emoji 编码_Java对Emoji表情编码与解码

    Java对Emoji表情编码与解码,使用到Java Emoji Converter . GitHub地址:https://github.com/binarywang/java-emoji-conver ...

  2. java emoji过滤_java过滤emoji表情

    java手机端网页常用的过滤emoji表情,注意:过滤常规emoji表情,iso或安卓一些手机自带的特殊表情不在过滤范围 import java.util.regex.Matcher; import ...

  3. java wait 参数_java中wait()和join()方法的区别是什么

    java中wait()和join()方法的区别是:存在不同的java包中:wait()方法用于线程间通信,它所施加的等待状态的线程可以被启动:join()方法用于在多个线程之间添加排序,它所施加的等待 ...

  4. java拆分日期_java实现日期拆分的方法

    java实现日期拆分的方法 本文实例讲述了java实现日期拆分的方法.分享给大家供大家参考.具体如下: 如:计算6-1至6-5之间的日期天数及具体日期,预期的结果是得到: 6-1 6-2 6-3 6- ...

  5. java 释放一个对象_JAVA中销毁一个对象的方法

    方法一:垃圾回收器 垃圾回收器是Java平台中用的最频繁的一种对象销毁方法.垃圾回收器会全程侦测Java应用程序的运行情况.当反先有些对象成为垃圾时,垃圾回收器就会销毁这些对象,并释放这些对象所占用的 ...

  6. java emoji问号_java过滤emoji字符

    替换成问号: EmojiFilter.filterEmoji(str, "?"); import org.apache.commons.lang3.StringUtils; /** ...

  7. java右移位_java、、移位操作方法

    < int leftShift = 10; System.out.println("十进制:" + leftShift + ", 二进制:" + Inte ...

  8. java如何重写_java中如何重写一个方法

    方法的重写: 1.在子类中可以根据需要对从基类中继承来的方法进行重写. 2.重写的方法和被重写的方法必须具有相同方法名称.参数列表和返回类型. 3.重写方法不能使用比被重写的方法更严格的访问权限. 在 ...

  9. java null布局_Java Swing 绝对布局管理方法,null布局

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 import java.awt.Container; import java.awt.Dimension; import java.awt.Rectang ...

最新文章

  1. 进程、线程、进程池、进程三态、同步、异步、并发、并行、串行
  2. 计算机科学与技术专业术语
  3. Python的try... excep异常捕捉机制
  4. Errors occurred during the build
  5. 开发和使用自定义服务器控件
  6. linux设置双屏拼接_双屏办公,用起来到底有多爽
  7. POJ 3225 - 区间
  8. 对比 C++ 和 Python,谈谈指针与引用
  9. 微信超赞新功能上线,终于知道钱花哪儿了
  10. 盘点:互联网上无处不在的僵尸
  11. Python算术运算符目录
  12. 软件产品三步曲(内容、可用性、视觉)
  13. strace/linux
  14. 艾肯声卡没有声音处理方法
  15. 半导体丨索尼推出世界最小监控用CMOS图像传感器IMX415
  16. 技能提升----直流有刷电机控制方案之经典
  17. C#实现百度翻译功能
  18. (5)将一个数组中的值按逆序重新存放。例如原来顺序为8,6,5,4,1。要求改为1,4,5,6,8
  19. 深度学习领域,你心目中 idea 最惊艳的论文是哪篇?
  20. 三火龙加身战无不胜 TES国际首秀告捷

热门文章

  1. MySQL中出现Duplicate entry 'XXX' for key 'PRIMARY'解决方案
  2. ftp工具,ftp工具专业版
  3. 电脑连接上WiFi但是上不了网
  4. 软件工程复习笔记——第六章 软件维护
  5. 线程池2nd卷:虎落平阳被犬欺
  6. 掌门人共话根技术 | 麒麟信安高级副总裁陈松政参加2022长沙·中国1024程序员节“岳麓对话”
  7. python可以自动运行m文件吗_如何运行m文件而不启动matlab
  8. 洛谷日报 2020年3月前索引
  9. unity通过浏览器打开网页
  10. 在CentOS上解压含有中文名的ZIP文件出现乱码的解决办法