微信文章emoji表情过滤

最近研究爬虫, 做过滤器, 遇到微信文章带emoji表情的居然没有过滤.

抓到串了存到数据库里面里面居然能够直接显示....数据库是mongodb

真是哔了狗了.

写一个小的过滤器:

/**
 * 过滤emoji工具类
 * 
 * @author createOrUpdate by xx update time: 2015-11-26 上午9:24:27
 */
public class EmojiFilter {
    /* 要过滤的特殊字符-emoji */
    private static Pattern emoji = Pattern.compile ("[\ud83c\udc00-\ud83c\udfff]|[\ud83d\udc00-\ud83d\udfff]|[\u2600-\u27ff]",Pattern.UNICODE_CASE | Pattern.CASE_INSENSITIVE ) ;

    /**
     * 是否包含emoji特殊字符
     * @param source
     * @param emoji
     * @return
     */
    private static boolean containsEmoji(String source,Pattern emoji){
        CharSequence cs = null;
        cs = source;
        Matcher emojiMatcher = emoji.matcher(cs);
        if (emojiMatcher.find()) {
            emojiMatcher.replaceAll("");
            return true;
        }
        return false;
    }
    
    /**
     * 将字符串中得特殊字符转为空
     * @param source   原字符串, 不需要特殊处理
     * @return
     */
    public static String replaceEmoji(String source){
        if(containsEmoji(source, emoji)){
            CharSequence cs = null;
            cs = source;
            Matcher emojiMatcher = emoji.matcher(cs);
            if (emojiMatcher.find()) {
                source = emojiMatcher.replaceAll("");
            }
        }
        return source;
    }
}

过滤的时候就直接调用replaceEmoji方法了.

比如从网址抓了条数据下来:

Document doc = Jsoup.parse(new URL("你的网址"), 5000);
String html = doc.html();
html = EmojiFilter.replaceEmoji(html);
doc = Jsoup.parse(html);

这样就过滤掉了.

例子:

\u2705

这个unicode其实是:

没错, myeclipse可以直接显示这个.


另外:如果大家有什么好的过滤方法也都希望给我回复一下,我学习学习.....

转载于:https://my.oschina.net/tulongx/blog/535925

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值