首页 > 其他 > 详细

Emoji字符检查与替换

时间:2016-01-07 10:11:50      阅读:106      评论:0      收藏:0      [点我收藏+]

当文本包含Emoji字符的时候,存储到数据库或读取的时候需要进行编码和解码(如UTF_8),否则MySQL的存储可能有异常。

当有的文本不允许输入Emoji字符,或者显示时需要将Emoji替换为指定字符的时候可以用下面的几个工具方法。

    /**
     * 将字符串中的Emoji表情替换为*
     * @param source
     * @return
     */

    public static String replaceEmojiToStar(String source){
        String res = "";
        if (Tools.isStrEmpty(source)) {
            return res;
        }
        if(!containsEmoji(source)){
            return source;
        }else{
            int len = source.length();
            char[] dest = new char[len];
            for (int i = 0; i < len; i++) {
                char codePoint = source.charAt(i);
                if (isNotEmojiCharacter(codePoint)) {
                    dest[i] = codePoint;
                }else{
                    dest[i] = ‘*‘;
                }
            }
            res = String.valueOf(dest);
        }
        return res;

    }
    /**
     * 检测是否有emoji字符
     *
     * @param source
     * @return 一旦含有就抛出
     */
    public static boolean containsEmoji(String source) {
        if (Tools.isStrEmpty(source)) {
            return false;
        }

        int len = source.length();

        for (int i = 0; i < len; i++) {
            char codePoint = source.charAt(i);

            if (!isNotEmojiCharacter(codePoint)) {
                return true;
            }
        }

        return false;
    }

    /**
     * 判断是否是非Emoji字符之外的正常字符,正常字符返回true
     * @param codePoint
     * @return
     */

    private static boolean isNotEmojiCharacter(char codePoint) {
        return (codePoint == 0x0) ||
                (codePoint == 0x9) ||
                (codePoint == 0xA) ||
                (codePoint == 0xD) ||
                ((codePoint >= 0x20) && (codePoint <= 0xD7FF)) ||
                ((codePoint >= 0xE000) && (codePoint <= 0xFFFD));
    }

 

Emoji字符检查与替换

原文:http://www.cnblogs.com/permanent2012moira/p/5108677.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!