服务器mysql中emoji表情转换入库高内存超级实用的高防服务器速度快
服务器咨询敏敏QQ:2853898501 / 3007425289 电话微信:18316411879

东莞市锐辉网络科技有限公司
历经风雨历程,依托于公司的服务器业务,为广大互联网朋友提供了质优实惠的服务器租用,托管服务。
我们对自己的要求甚高,及客户之所急,想客户之所想。
历经考验,我们已有了一大批忠实的拥护者。以后,我们将继续为广大客户提供优质,周到的服务!

emoji表情符在平时用的时候特别的爽,但是有时候在开发的时候就比较的难受,微信开发昵称往往都有表情符导致无法入库。尝试了往上很多的方法都没有得以解决,甚至我改了数据库配置后发现库不能启动了(哎哟我靠,感谢那些博主的建议)。所以今天给大家个工具类,用着是挺舒服的。

public class EmojiUtil {
/**
* @Description emoji表情转换入库
* @param str 待转换字符串
* @return 转换后字符串
* @throws UnsupportedEncodingException
*/
public static String emojiToUtf(String str)
throws UnsupportedEncodingException {
String patternString = "([\\x{10000}-\\x{10ffff}\ud800-\udfff])";
Pattern pattern = Pattern.compile(patternString);
Matcher matcher = pattern.matcher(str);
StringBuffer con = new StringBuffer();
while (matcher.find()) {
try {
matcher.appendReplacement(con,"[[" + URLEncoder.encode(matcher.group(1),"UTF-8") + "]]");
} catch (UnsupportedEncodingException e) {
throw e;
}
}
matcher.appendTail(con);
return con.toString();
}

/**
* @Description 还原emoji表情的字符串
* @param str 转换后的字符串
* @return 转换前的字符串
* @throws UnsupportedEncodingException
*/
public static String utfToEmoji(String str)
throws UnsupportedEncodingException {
String patternString = "\\[\\[(.*?)\\]\\]";

Pattern pattern = Pattern.compile(patternString);
Matcher matcher = pattern.matcher(str);

StringBuffer con = new StringBuffer();
while (matcher.find()) {
try {
matcher.appendReplacement(con,
URLDecoder.decode(matcher.group(1), "UTF-8"));
} catch (UnsupportedEncodingException e) {
throw e;
}
}
matcher.appendTail(con);
return con.toString();
}
第一个方法是将字段中的emoji表情转换入库。

String content=“”;
try {
content = EmojiUtil.emojiToUtf(content);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
转换后入库。

第二个方法是讲 转化后的字符还原为 emoji表情:

String content = comm.getStr("content");
if (StringUtils.isNotBlank(content)) {
try {
content = EmojiUtil.utfToEmoji(content);
comm.set("content", content);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
如需了解更多咨询QQ:2853898501/3007425289 电话:18316411879