码迷,mamicode.com
首页 > 数据库 > 详细

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

时间:2018-04-25 10:54:58      阅读:215      评论:0      收藏:0      [点我收藏+]

标签:就会   size   regex   重启   sql数据库   mysq   mat   SQ   code   

一般数据库的编码是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;
    }
}

 

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

标签:就会   size   regex   重启   sql数据库   mysq   mat   SQ   code   

原文地址:https://www.cnblogs.com/bingyimeiling/p/8940712.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!