当数据库字段编码格式为utf-8时插入数据如果有 emoji 表情会插入失败并且报错
因为mysql的utf-8编码为3个字节,而emoji 是四个字节,所有会插入失败
解决方案:
1. 数据库 utf8 编码改成 utf8mb4 (这个编码为四个字节可用存表情)
2. java 写个 emoji 表情替换方法
/**
* 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;
}
}