关于java过滤微信emoji表情的问题解决方法
由于网上某个版本存在bug,以下是将bug修复过的版本,仅供参考
public class EmojiFilter {
/**
* 检测是否有emoji字符
* @param source 需要判断的字符串
* @return 一旦含有就抛出
*/
public static boolean containsEmoji(String source) {
int len = source.length();
for (int i = 0; i < len; i++) {
char codePoint = source.charAt(i);
if (!notisEmojiCharacter(codePoint)) {
//判断确认有表情字符
return true;
}
}
return false;
}
/**
* 非emoji表情字符判断
* @param codePoint
* @return
*/
private static boolean notisEmojiCharacter(char codePoint) {
return (codePoint == 0x0) ||
(codePoint == 0x9) ||
(codePoint == 0xA) ||
(codePoint == 0xD) ||
((codePoint >= 0x20) && (codePoint <= 0xD7FF)) ||
((codePoint >= 0xE000) && (codePoint <= 0xFFFD)) ||
((codePoint >= 0x10000) && (codePoint <= 0x10FFFF));
}
/**
* 过滤emoji 或者 其他非文字类型的字符
* @param source 需要过滤的字符串
* @return
*/
public static String filterEmoji(String source) {
if (!containsEmoji(source)) {
return source;//如果不包含,直接返回
}
StringBuilder buf = null;//该buf保存非emoji的字符
int len = source.length();
for (int i = 0; i < len; i++) {
char codePoint = source.charAt(i);
if (notisEmojiCharacter(codePoint)) {
if (buf == null) {
buf = new StringBuilder(source.length());
}
buf.append(codePoint);
}
}
if (buf == null) {
return "";//如果没有找到非emoji的字符,则返回无内容的字符串
} else {
if (buf.length() == len) {
buf = null;
return source;
} else {
return buf.toString();
}
}
}
}
关于java过滤微信emoji表情的问题解决方法相关推荐
- php微信Emoji表情处理
一.适用场景 通过代码实现微信Emoji表情处理. 二.相关代码 1.字节转Emoji表情 /*** 字节转Emoji表情* @author php_elephant* @param $cp 数据* ...
- java 过滤微信昵称_java过滤微信昵称emoji表情与非emoji的问题解决方法
import java.util.regex.Matcher; import java.util.regex.Pattern; /** * 过滤emoji表情与非emoji表情 * @author h ...
- java过滤微信昵称emoji表情
注:核心代码为转载 最近在开发中遇到要过滤掉微信名称中的表情,再入库的功能:在找了多篇实现验证后,发现排名在前的文章们竟然有bug,最终找到以下实现,验证后符合要求,特此记录一下. import ja ...
- mysql 过滤微信昵称表情_微信昵称emoji表情的过滤
前言 微信昵称现在五花八门,可以加入各种表情符号.这些符号存储到mysql数据库时存在一些问题.这里记录下我的解决方法. 问题 第一种方案:修改数据库编码,支持存储emoji表情 mysql的utf8 ...
- mysql 过滤微信昵称表情_PHP正则过滤处理微信昵称中emoji字符的方法
本文实例讲述了PHP正则过滤处理微信昵称中emoji字符的方法.分享给大家供大家参考,具体如下: 今天刚做了一个微信应用,在获取微信昵称的过程中报错了,经查原因是微信昵称中包含emoji字符,在写入数 ...
- java过滤ios表情,JS前端去掉emoji表情和Java后台处理emoji表情方法
莫非定律 : 任何事情都没表面看去来那么简单! emoji表情在项目中使用,因为其特殊的编码格式,经常导致在网络传输.编解码.以及数据入库中带来一些问题! 下面简单介绍使用Js和java处理移除emo ...
- mysql存微信你曾_Mysql存储微信Emoji表情问题
问题 Tomcat 中报 Java 如下错误: java.sql.SQLException: Incorrect string value: '\xF0\x9F\x8D\x87 \xE7...' fo ...
- php 微信表情存储,轻松处理PHP开发中微信emoji表情mysql存储的问题
背景 做微信开发的时候发现,微信支持emoji表情做昵称,结果考虑不周 Mysql表设计时,都是用UTF8字符集的.把带有emoji的昵称字段往里面insert一下就没了,整个字段变成了空字符串.有的 ...
- JS前端去掉emoji表情和Java后台处理emoji表情方法
莫非定律 : 任何事情都没表面看去来那么简单! emoji表情在项目中使用,因为其特殊的编码格式,经常导致在网络传输.编解码.以及数据入库中带来一些问题! 下面简单介绍使用Js和java处理移除emo ...
最新文章
- AI大佬“互怼”:Bengio和Gary Marcus隔空对谈深度学习发展现状
- 装逼一步到位!GauGAN代码解读来了
- nginx+FastCGI到底是谁影响超时时间
- SSH实现论坛BBS系统
- tcpip详解--端口号
- Delphi中判断字母与汉字
- vlookup查找值不唯一时怎么办
- jdbc excute方法理解的误区
- activemq和mysql_activeMQ 填坑记
- JCG学院开设了Java设计模式课程!
- Spring Boot 集成MyBatis
- 智能会议系统(16)---Linphone配置大全
- dll模块化设计与编程_PLC模块、结构化编程到底强在哪里?
- 最大速度、加速度时间,加速度、加加速度、加加速度时间
- 保存Simulink仿真模型为图片或者PDF的方法
- POJ3345 Bribing FIPA(树形DP)
- 无线路由器的连接与设置
- 高薪职位不少,这个行业为什么如此缺人才?
- python等待键盘输入_Pythoninput实现等待键盘输入,超时返回缺省值,并且释放input...
- GNSS/INS组合导航(1)-- 姿态矩阵