import java.io.UnsupportedEncodingException; import java.net.URLDecoder; import java.net.URLEncoder; import java.util.regex.Matcher; import java.util.regex.Pattern; import org.slf4j.Logger; import org.slf4j.LoggerFactory; / ** * Emoji 转换 工具 类 * * @version $ ID $ * @since 2018/11/12 13:44 * / public class EmojiUtil { Logger final estático LOGGER = LoggerFactory.getLogger (EmojiUtil.class); / ** * emoji 表情 转换 成 字符串 * * @param str * * @return * * @throws UnsupportedEncodingException * / public static String emojiEncode (String str) arroja UnsupportedEncodingException { String patternString = "([\\ x {10000} - \\ x {10ffff} \ ud800- \ udfff])"; Patrón patrón = Pattern.compile (patternString); Coincididor coincidente = patrón.matcher (str); StringBuffer sb = new StringBuffer (); while (matcher.find ()) { try { matcher.appendReplacement (sb, "[[" + URLEncoder.encode (matcher.group (1), "UTF-8") + "]]"); } catch (UnsupportedEncodingException e) { LOGGER.error ("error emojiEncode", e); tirar e; } } comparador. LOGGER.debug ("emojiEncode" + str + "a" + sb.toString () + ", len :" + sb.length ()); return sb.toString (); } / ** * 将 包含 字符串 转换 成 emoji 表情 * @param str * * @return * * @throws UnsupportedEncodingException * excepción * / public static String emojiDecode (String str) arroja UnsupportedEncodingException { String patternString = "\\ [\\ [(. *?) \\] \\] "; Patrón patrón = Pattern.compile (patternString); Coincididor coincidente = patrón.matcher (str); StringBuffer sb = new StringBuffer (); while (matcher.find ()) { intente { matcher.appendReplacement (sb, URLDecoder.decode (matcher.group (1), "UTF-8")); } catch (UnsupportedEncodingException e) { LOGGER.error ("error emojiDecode", e); tirar e; } } matcher.appendTail (sb); LOGGER.debug ("emojiDecode" + str + "a" + sb.toString ()); return sb.toString (); } }
Herramienta de conversión de expresiones emoji
Supongo que te gusta
Origin blog.csdn.net/A___B___C/article/details/83992595
Recomendado
Clasificación