java处理数据库不支持的emoji表情符

匿名 (未验证) 提交于 2019-12-02 21:53:32

一般数据库的编码是utf8,utf8是不支持存储表情符的,当存入的微信昵称带有表情符时就会出现乱码情况,有两种解决方法:

1.mysql数据库升级到5.5版本以上,utf8改为utf8mb4,utf8mb4的字符最多可以是4个字节,可以存储表情符,重启数据库服务器,这种方式有可能会失效;

2.在java代码里过滤掉表情符,简洁高效,下面是过滤掉表情符的工具类:

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;     } }

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!