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后就可以了,可以看下成功的截图:
表字段:
表引擎:
数据库:
数据:
不用管数据库中存的是乱码,取出来的环境支持emoji时就会显示出来。
java emoji表情_java处理emoji表情的方法相关推荐
- java emoji 编码_Java对Emoji表情编码与解码
Java对Emoji表情编码与解码,使用到Java Emoji Converter . GitHub地址:https://github.com/binarywang/java-emoji-conver ...
- java emoji过滤_java过滤emoji表情
java手机端网页常用的过滤emoji表情,注意:过滤常规emoji表情,iso或安卓一些手机自带的特殊表情不在过滤范围 import java.util.regex.Matcher; import ...
- java wait 参数_java中wait()和join()方法的区别是什么
java中wait()和join()方法的区别是:存在不同的java包中:wait()方法用于线程间通信,它所施加的等待状态的线程可以被启动:join()方法用于在多个线程之间添加排序,它所施加的等待 ...
- java拆分日期_java实现日期拆分的方法
java实现日期拆分的方法 本文实例讲述了java实现日期拆分的方法.分享给大家供大家参考.具体如下: 如:计算6-1至6-5之间的日期天数及具体日期,预期的结果是得到: 6-1 6-2 6-3 6- ...
- java 释放一个对象_JAVA中销毁一个对象的方法
方法一:垃圾回收器 垃圾回收器是Java平台中用的最频繁的一种对象销毁方法.垃圾回收器会全程侦测Java应用程序的运行情况.当反先有些对象成为垃圾时,垃圾回收器就会销毁这些对象,并释放这些对象所占用的 ...
- java emoji问号_java过滤emoji字符
替换成问号: EmojiFilter.filterEmoji(str, "?"); import org.apache.commons.lang3.StringUtils; /** ...
- java右移位_java、、移位操作方法
< int leftShift = 10; System.out.println("十进制:" + leftShift + ", 二进制:" + Inte ...
- java如何重写_java中如何重写一个方法
方法的重写: 1.在子类中可以根据需要对从基类中继承来的方法进行重写. 2.重写的方法和被重写的方法必须具有相同方法名称.参数列表和返回类型. 3.重写方法不能使用比被重写的方法更严格的访问权限. 在 ...
- java null布局_Java Swing 绝对布局管理方法,null布局
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 import java.awt.Container; import java.awt.Dimension; import java.awt.Rectang ...
最新文章
- 进程、线程、进程池、进程三态、同步、异步、并发、并行、串行
- 计算机科学与技术专业术语
- Python的try... excep异常捕捉机制
- Errors occurred during the build
- 开发和使用自定义服务器控件
- linux设置双屏拼接_双屏办公,用起来到底有多爽
- POJ 3225 - 区间
- 对比 C++ 和 Python,谈谈指针与引用
- 微信超赞新功能上线,终于知道钱花哪儿了
- 盘点:互联网上无处不在的僵尸
- Python算术运算符目录
- 软件产品三步曲(内容、可用性、视觉)
- strace/linux
- 艾肯声卡没有声音处理方法
- 半导体丨索尼推出世界最小监控用CMOS图像传感器IMX415
- 技能提升----直流有刷电机控制方案之经典
- C#实现百度翻译功能
- (5)将一个数组中的值按逆序重新存放。例如原来顺序为8,6,5,4,1。要求改为1,4,5,6,8
- 深度学习领域,你心目中 idea 最惊艳的论文是哪篇?
- 三火龙加身战无不胜 TES国际首秀告捷
热门文章
- MySQL中出现Duplicate entry 'XXX' for key 'PRIMARY'解决方案
- ftp工具,ftp工具专业版
- 电脑连接上WiFi但是上不了网
- 软件工程复习笔记——第六章 软件维护
- 线程池2nd卷:虎落平阳被犬欺
- 掌门人共话根技术 | 麒麟信安高级副总裁陈松政参加2022长沙·中国1024程序员节“岳麓对话”
- python可以自动运行m文件吗_如何运行m文件而不启动matlab
- 洛谷日报 2020年3月前索引
- unity通过浏览器打开网页
- 在CentOS上解压含有中文名的ZIP文件出现乱码的解决办法