emoji表情检测

 /**
     * 检测是否有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 (!isEmojiCharacter(codePoint)) { //如果不能匹配,则该字符是Emoji表情
                return true;
            }
        }        return false;
    }    /**
     * 判断是否是Emoji
     *
     * @param codePoint 比较的单个字符
     * @return
     */
    private static boolean isEmojiCharacter(char codePoint) {        return (codePoint == 0x0) || (codePoint == 0x9) || (codePoint == 0xA) ||
                (codePoint == 0xD) || ((codePoint >= 0x20) && (codePoint <= 0xD7FF)) ||
                ((codePoint >= 0xE000) && (codePoint <= 0xFFFD)) || ((codePoint >= 0x10000)
                && (codePoint <= 0x10FFFF));
    }
时间: 2024-12-17 15:58:02

emoji表情检测的相关文章

【转】移动前端手机输入法自带emoji表情字符处理

http://blog.csdn.net/binjly/article/details/47321043 今天,测试给我提了一个BUG,说移动端输入emoji表情无法提交.很早以前就有思考过,手机输入法里自带的emoji表情,应该是某些特殊字符.既然是字符,那应该都能提交才对,可是为啥会被卡住呢?搜了一下,才发现,原来emoji用到的字符是4字节的utf-16(utf-16有2字节和4字节两种编码),而我们的数据库是采用的utf-8,并且最大只允许3字节的字符.这样冲突就产生了,表单因为这些em

移动前端手机输入法自带emoji表情字符处理

今天,测试给我提了一个BUG,说移动端输入emoji表情无法提交.很早以前就有思考过,手机输入法里自带的emoji表情,应该是某些特殊字符.既然是字符,那应该都能提交才对,可是为啥会被卡住呢?搜了一下,才发现,原来emoji用到的字符是4字节的utf-16(utf-16有2字节和4字节两种编码),而我们的数据库是采用的utf-8,并且最大只允许3字节的字符.这样冲突就产生了,表单因为这些emoji字符的存在无法提交. 找到原因之后,接下来就要考虑解决方案了.目前考虑到的两种方案,一是让后台处理,

【Android】android 输入框EditText禁止输入Emoji表情符

转载地址:http://blog.csdn.net/elsdnwn/article/details/45390771 package com.liujy.ui.wiget;import android.content.Context;import android.text.Editable;import android.text.Selection;import android.text.Spannable;import android.text.TextWatcher;import andro

Android--&gt;轻松打造带删除按钮的输入框(EditText),附Emoji表情过滤

输入框带删除按钮, 此乃标配, 实现起来方法也很多, 网上开源也很多. 但是, 没事就喜欢瞎折腾. 上图说话. 只是在原生的基础上加了扩展. 相对来说入侵非常少, 使用方法和原生的一模一样.无任何阉割. 完整代码: public class ExEditText extends AppCompatEditText { Rect clearRect = new Rect(); public ExEditText(Context context) { super(context); } public

mysql支持emoji表情

让MySql支持Emoji表情 解决方案:将Mysql的编码从utf8转换成utf8mb4. 需要 >= MySQL 5.5.3版本.(经检测5.5.29的也可以)低版本不支持这个字符集.复制报错 停止MySQL Server服务 修改 my.cnf或者mysql.ini [client] default-character-set = utf8mb4 [mysql] default-character-set = utf8mb4 [mysqld] character-set-client-ha

微信昵称emoji表情,特殊表情导致列表不显示,导出EXCEL报错等问题解决!

最近做的项目,上线后一切正常,过段时间管理员反馈用户导出EXCEL报错,前台获取用户列表不显示,查找问题找到是微信昵称.emoji表情导致报错, emoji表情介绍 由于微信接口中对于emoji表情使用的是UTF-8的二进制字符串,并没有解码,表现就是当收到微信端用户发来的emoji表情时,显示为一个方块型「」或是无法显示的字符,这时就需要对其进行转码. 每个emoji表情其实都有相应的unicode编码,在解析用户向公众号发送的文字中的emoji表情字符时,我们可以根据unicode码来匹配

mysql存储emoji表情报错的处理方法【更改编码为utf8mb4】

utf-8编码可能2个字节.3个字节.4个字节的字符,但是MySQL的utf8编码只支持3字节的数据,而移动端的表情数据是4个字节的字符.如果直接往采用utf-8编码的数据库中插入表情数据,Java程序中将报SQL异常: java.sql.SQLException: Incorrect string value: '\xF0\x9F\x92\x94' for column 'name' at row 1 at com.mysql.jdbc.SQLError.createSQLException(

js解析emoji表情

Emoji 公司的产品之前只有网页端,并没有提供emoji表情,之后将某个模块整合到app中,里面有个评论功能,在手机端可以输入emoji,显示的时候是空白,说明数据库并没有存储成功,查阅资料后得知emoji是四个字节,而mysql5.5.3前的版本utf8编码最多只支持3个字节. js解析emoji 先需要了解几个概念,js的编码方式.utf16.unicode 1.JavaScript语言采用Unicode字符集,但是只支持一种编码方法ucs-2 2.utf16编码 utf16是ucs-2的

微信去除EMOJI表情

方法是: 方法是:return json_decode(preg_replace("#(\\\ue[0-9a-f]{3}|\\\ud83e|\\\udd14)#ie", "", json_encode($text))); 原理是: 进行微信公众号开发者接入的时候,与用户的对话互动中,涉及到的文本信息不仅仅是文字那么简单,其中可能还会包含着各种表情字符,例如「emoji表情」. 百科: Emoji 由于微信接口中对于emoji表情使用的是UTF-8的二进制字符串,并没