对于使用utf8编码的mysql数据库来说,如果字符串中存在emoji小图像,是不能存进数据库中的,查了一下,原因大概是因为utf8编码可以存1-3个字节的字符,但是emoji是4个字节;解决方法可以把mysql的编码换成utf8mb4,需要相应版本的mysql;另外一种方法是把字符串中所有的emoji给去除掉,然后在存进数据库,具体的方法是:
public static String filterEmoji(String source,String slipStr) { if(isNotBlank(source)){ return source.replaceAll("[\\ud800\\udc00-\\udbff\\udfff\\ud800-\\udfff]", slipStr); }else{ return source; } }
参考链接: