java后台去掉微信昵称中的表情

竹叶青出于蓝 发布于 2017/03/27 19:59
阅读 915
收藏 0

java后台去掉微信昵称中的表情

加载中
1
您的好友
您的好友

正则匹配替换换掉表情就可以了    emoji表情有自己unicode区间的    

竹叶青出于蓝
竹叶青出于蓝
多谢
0
龙影
龙影

为什么要去掉呢?难道你用的是mysql数据库?

龙影
龙影
回复 @竹叶青出于蓝 : 这个也是我为啥放弃MySQL的原因。
竹叶青出于蓝
竹叶青出于蓝
可以使用utf8mb64 存储 但是拿出来的时候会麻烦
0
首席撸出血
首席撸出血
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class EmojiUtils {
    public static String filter(String str){
        if(str == null || str.length() == 0){
            return "";
        }
        StringBuffer sb = new StringBuffer();
        for(int i=0;i<str.length();i++){
            int ch = str.charAt(i);
            int min = Integer.parseInt("E001", 16);
            int max = Integer.parseInt("E537", 16);
            if(ch >= min && ch <= max){
                sb.append("");
            }else{
                sb.append((char)ch);
            }
        }
        return sb.toString();
    }
    
    /**
     * 过滤昵称特殊表情
     */
    public static String filterName(String name) {
        if(name==null){
            return null;

        }
        if("".equals(name.trim())){
            return "";
        }

        Pattern patter = Pattern.compile("[a-zA-Z0-9\u4e00-\u9fa5]");
        Matcher match = patter.matcher(name);

        StringBuffer buffer = new StringBuffer();

        while (match.find()) {
            buffer.append(match.group());
        }

        return buffer.toString();
    }
    
    /**
     * 测试代码,里面的内容复制粘贴到微信然后发送就可以看到
     * @param args
     */
    public static void main(String[] args) {
        System.out.println(filter("啊阿萨德发秦莞尔"));
    }
}

 

金贞花
金贞花
filterName(filterEmoji(nickname) 是这样使用吗
竹叶青出于蓝
竹叶青出于蓝
管用 多谢
返回顶部
顶部