java處理數據庫不支持的emoji表情符

通常數據庫的編碼是utf8,utf8是不支持存儲表情符的,當存入的微信暱稱帶有表情符時就會出現亂碼狀況,有兩種解決方法:java

1.mysql數據庫升級到5.5版本以上,utf8改成utf8mb4,utf8mb4的字符最多能夠是4個字節,能夠存儲表情符,重啓數據庫服務器,這種方式有可能會失效;mysql

2.在java代碼裏過濾掉表情符,簡潔高效,下面是過濾掉表情符的工具類:sql

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class EmojiUtil {

    public static String replace(String input) {
        if (!StringUtil.isEmpty(input)) {
            String patternStr = "[^\\u0000-\\uFFFF]";
            Pattern pattern = Pattern.compile(patternStr, Pattern.UNICODE_CASE | Pattern.CASE_INSENSITIVE);
            Matcher matcher = pattern.matcher(input);
            input = matcher.replaceAll("");
        }
        return input;
    }
}
相關文章
相關標籤/搜索