java字串中Emoji表情處理
阿新 • • 發佈:2019-01-28
在爬蟲獲取字串內容時,遇到內容中有手機表情,存入資料庫是報錯!網上找了半天,發現好多人不去實驗一下就複製別人的程式碼網上發,然後導致我拿來用直接不行。最終找到一個可以行辦法,在此總結一下:
方法主要有兩個:
第一,修改資料庫字符集:
這種方法需要的硬性要求就是你的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;
}
}