utf-8字符集昵称含有特殊表情处理

使用以下两个处理方法即可

 /*** @param str 待转换字符串* @return 转换后字符串* @throws UnsupportedEncodingException exception* @Description 将字符串中的emoji表情转换成可以在utf-8字符集数据库中保存的格式*/public static String emojiConvert1(String str) throws UnsupportedEncodingException {String patternString = "([\\x{10000}-\\x{10ffff}\ud800-\udfff])";Pattern pattern = Pattern.compile(patternString);Matcher matcher = pattern.matcher(str);StringBuffer sb = new StringBuffer();while (matcher.find()) {try {matcher.appendReplacement(sb,"[["+ URLEncoder.encode(matcher.group(1),"UTF-8") + "]]");} catch (UnsupportedEncodingException e) {throw e;}}matcher.appendTail(sb);return sb.toString();}/*** @param str 转换后的字符串* @return 转换前的字符串* @throws UnsupportedEncodingException exception* @Description 还原utf8数据库中保存的含转换后emoji表情的字符串*/public static String emojiRecovery2(String str) throws UnsupportedEncodingException {String patternString = "\\[\\[(.*?)\\]\\]";Pattern pattern = Pattern.compile(patternString);Matcher matcher = pattern.matcher(str);StringBuffer sb = new StringBuffer();while (matcher.find()) {try {matcher.appendReplacement(sb,URLDecoder.decode(matcher.group(1), "UTF-8"));} catch (UnsupportedEncodingException e) {throw e;}}matcher.appendTail(sb);return sb.toString();}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部