服務器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