表情编码如何与UTF-8编码实现相互转换?
- 内容介绍
- 文章标签
- 相关推荐
本文共计155个文字,预计阅读时间需要1分钟。
pythondef emojiConvert1(str): patternString=r(?:[\U00010000-\U0010FFFF\U000E000-\U000F8FF]) pattern=re.compile(patternString) return pattern.sub(lambda m: m.group(0).encode('utf-16be').decode('utf-16be'), str)
gistfile1.txt/** * 对表情进行转义成utf-8 * * @param str * @return */ public static String emojiConvert1(String str) { 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 (Exception e) { } } matcher.appendTail(sb); return sb.toString(); } /** * 对数据进行表情转换 * * @param str * @return */ public static String emojiRecovery2(String str) { 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) { } } matcher.appendTail(sb); return sb.toString(); }
本文共计155个文字,预计阅读时间需要1分钟。
pythondef emojiConvert1(str): patternString=r(?:[\U00010000-\U0010FFFF\U000E000-\U000F8FF]) pattern=re.compile(patternString) return pattern.sub(lambda m: m.group(0).encode('utf-16be').decode('utf-16be'), str)
gistfile1.txt/** * 对表情进行转义成utf-8 * * @param str * @return */ public static String emojiConvert1(String str) { 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 (Exception e) { } } matcher.appendTail(sb); return sb.toString(); } /** * 对数据进行表情转换 * * @param str * @return */ public static String emojiRecovery2(String str) { 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) { } } matcher.appendTail(sb); return sb.toString(); }

