java字符串中Emoji表情處理

在爬蟲獲取字符串內容時,遇到內容中有手機表情,存入數據庫是報錯!網上找了半天,發現好多人不去實驗一下就複製別人的代碼網上發,然後導致我拿來用直接不行。最終找到一個可以行辦法,在此總結一下:
方法主要有兩個:
第一,修改數據庫字符集:
這種方法需要的硬性要求就是你的mysql數據庫版本5.5以後的。一般有數據庫管理工具的,直接打開改了就是了,比如我用的HeidiSQL,直接把表改爲utf8mb4就可以了。這種方法簡單省事,但是可能需要重啓數據庫。還有個問題是,有時候這方法不太靈,我第一次用這個方法,完美解決的問題,但是第二次,說啥都不好使。所以,這種方式還是不推薦了。
第二,將這些表情過濾掉
既然數據庫不能保存,那就直接把這些表情過濾掉好了。這種情況是損壞客戶的個性而讓服務更便捷的一張方式。目前很多網站就是這麼幹的,畢竟效率是關鍵,你這表情即便保存了,也說不定哪裏再次用到,展示不了。
建議做成工具方法,方便實用,親測可行。

/**
     * emoji表情替換
     *
     * @param source 原字符串
     * @param slipStr emoji表情替換成的字符串                
     * @return 過濾後的字符串
     */
    public static String filterEmoji(String source,String slipStr) {
        if(StringUtils.isNotBlank(source)){
            return source.replaceAll("[\\ud800\\udc00-\\udbff\\udfff\\ud800-\\udfff]", slipStr);
        }else{
            return source;
        }
    }

原文:http://www.3fwork.com/b200/004985MYM000642/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章