Java过滤emoji表情,找出emoji的unicode范围。

/**
 * 过滤Emoji表情
 * @author Kunjie
 * 2015年7月17日
 */
public class EmojiFilter {

    public static void main(String[] args) {
        System.out.println(filter("啊阿萨德发秦莞尔"));
    }

    public static String filter(String str){
        if(str == null || str.length() == 0){
            return "";
        }
        StringBuffer sb = new StringBuffer();
        for(int i=0;i<str.length()-1;i++){
            int ch = str.charAt(i);
            int min = Integer.parseInt("E001", 16);
            int max = Integer.parseInt("E537", 16);
            if(ch >= min && ch <= max){
                sb.append("");
            }else{
                sb.append((char)ch);
            }
        }
        return sb.toString();
    }

}

每个表情有 sb unicode编码。

如太阳表情,则sb码为E04A,是16进制的。

从中找到最小的 E001, E537,

然后将其转换为10进制比较大小。在这个范围内,就是emoji的表情字符了。

时间: 2024-11-03 22:15:04

Java过滤emoji表情,找出emoji的unicode范围。的相关文章

微信昵称包含emoji表情,保存异常

MySQL要存储emoji表情,由于emoji表情的unicode编码占用4个字节,而Mysql的utf8编码最多只能存储3个字节, 所以保存到数据库时会产生异常,一般两种解决方法, 方法一 修改数据库的字符集为utf8mb4,MySQL支持 emoji 表情的最低版本为5.5.3,否则不支持字符集utf8mb4. # 修改数据库: ALTER DATABASE database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;

通过代码审计找出网站中的XSS漏洞实战(三)

一.背景 笔者此前录制了一套XSS的视频教程,在漏洞案例一节中讲解手工挖掘.工具挖掘.代码审计三部分内容,准备将内容用文章的形式再次写一此,前两篇已经写完,内容有一些关联性,其中手工XSS挖掘篇地址为快速找出网站中可能存在的XSS漏洞实践(一)https://segmentfault.com/a/1190000016095198 本文主要记录通过代码审计的方式进行XSS漏洞挖掘,分为了找出关键位置,正向审计,反向审计三个部分,审计的系统为permeate渗透测试系统,测试系统的搭建可以参考笔者的

java代码过滤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.UNIC

【异常处理】Incorrect string value: &#39;\xF0\x90\x8D\x83...&#39; for column... Emoji表情字符过滤的Java实现

Emoji表情字符现在在APP已经广泛支持了.但是Mysql的UTF8编码对Emoji字符的支持却不是那么好.所以我们经常会遇到这样的异常: Incorrect string value: '\xF0\x90\x8D\x83...' for column 原因是Mysql里UTF8编码最多只能支持3个字节,而Emoji表情字符使用的UTF8编码,很多都是4个字节,有些甚至是6个字节. 解决的方案有两种: 1.使用utf8mb4的mysql编码来容纳这些字符. 2.过滤掉这些特殊的表情字符. 关于

Java 解决Emoji表情过滤问题

Emoji表情从三方数据中获取没有过滤,导致存入DB的时候报错. 原因: UTF-8编码有可能是两个.三个.四个字节.Emoji表情是4个字节,而Mysql的utf8编码最多3个字节,所以数据插不进去. 方法1.将已经建好的表也转换成utf8mb4 2,写个工具类:过滤掉emoji表情符号 public class EmojiFilter { private static boolean isEmojiCharacter(char codePoint) { return (codePoint =

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

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

用JS过滤Emoji表情的输入

本文为原创,转载请注明出处: cnzt       文章:cnzt-p http://www.cnblogs.com/zt-blog/p/6773854.html 在前端页面开发过程中,总会碰到不允许输入框输入emoji表情的需求,我的思路是通过编码用正则匹配表情,然后将其替换为空字符创.但是问题也是显而易见的,完整的编码集是什么呢?查阅了官方文档,发现上面并没有给出想要的答案.并且很多emoji表情除了主编码还有副编码(这是我给取的名字),举个例子: \uD83C\uDC00是一个表情,\uD

Java在mysql中存储emoji表情

mysql存储emoji表情要使用utf8mb4字符集,这是4字节存储,最低支持版本为5.5.3+,若不是,请升级到较新版本. 修改mysql配置文件 Window目录: mysql/my.ini Ubuntu16.04目录: /etc/mysql/conf.d/mysql.cnf  配置Client /etc/mysql/mysql.conf.d/mysql.cnf  配置Server 其他目录: 一般在etc/mysql/my.cnf 在mysql配置文件添加以下三部分内容: [client

java 处理emoji表情

public class EmojiUtil { /**  * 将str中的emoji表情转为byte数组  *   * @param str  * @return  */ public static String resolveToByteFromEmoji(String str) { Pattern pattern = Pattern .compile("[^(\u2E80-\u9FFF\\w\\s`[email protected]#\\$%\\^&\\*\\(\\)_+-?()-