首页 > 系统 > Android > 正文

详解Android过滤emoji表情正则表达式

2019-10-21 21:49:31
字体:
来源:转载
供稿:网友

做了一些信息提交的操作,输入了Emoji表情时,后台数据库无法存储

原因:UTF-8编码有可能是两个、三个、四个字节。Emoji表情是4个字节,而Mysql的utf8编码最多3个字节,所以数据插不进去

讨论了一些方案,最后还是前端来做过滤,如果是Emoji表情直接干掉,因此也找了一些正则表达式,记录下

只过滤一Emoji表情:

[^/u0000-/uFFFF]

过滤Emoji表情和颜文字:

[//ud83c//udc00-//ud83c//udfff]|[//ud83d//udc00-//ud83d//udfff]|[//u2600-//u27ff]|[//ud83e//udd00-//ud83e//uddff]|[//u2300-//u23ff]|[//u2500-//u25ff]|[//u2100-//u21ff]|[//u0000-//u00ff]|[//u2b00-//u2bff]|[//u2d06]|[//u3030]

写了个静态方法使用:

/**    * Emoji表情校验    *    * @param string    * @return    */   public static boolean isEmoji(String string) {     //过滤Emoji表情     Pattern p = Pattern.compile("[^//u0000-//uFFFF]");     //过滤Emoji表情和颜文字     //Pattern p = Pattern.compile("[//ud83c//udc00-//ud83c//udfff]|[//ud83d//udc00-//ud83d//udfff]|[//u2600-//u27ff]|[//ud83e//udd00-//ud83e//uddff]|[//u2300-//u23ff]|[//u2500-//u25ff]|[//u2100-//u21ff]|[//u0000-//u00ff]|[//u2b00-//u2bff]|[//u2d06]|[//u3030]");     Matcher m = p.matcher(string);     return m.find();   }

总结

以上所述是小编给大家介绍的Android过滤emoji表情正则表达式,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对VEVB武林网网站的支持!


注:相关教程知识阅读请移步到Android开发频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表