方案1.改數據庫配置
使之支持emoji表情等特殊字符,小公司或者個人開發還好,大公司用此方案代價較大。
以mysql為例,改配置方法參考:https://blog.csdn.net/u010737354/article/details/52456668
方案2.使用unicode編碼(推薦使用)
統一標准:入庫或入緩存統一對特殊字符unicode編碼,從庫或緩存取出后統一進行unicode編碼
(1)unicode加密:
//加密emoji表情
public static String encodeToUnicode(String string) {
StringBuffer unicode = new StringBuffer();
for (int i = 0; i < string.length(); i++) {
// 取出每一個字符
char c = string.charAt(i);
// 轉換為unicode
unicode.append("\\u" + Integer.toHexString(c));
}
return unicode.toString();
}
(2)unicode解密:
//解密emoji表情
public static String decodeFromUnicode(String unicode) {
StringBuffer string = new StringBuffer();
String[] hex = unicode.split("\\\\u");
if(hex.length==1){
return unicode;
}
for (int i = 1; i < hex.length; i++) {
// 轉換出每一個代碼點
int data = Integer.parseInt(hex[i], 16);
// 追加成string
string.append((char) data);
}
return string.toString();
}
emoji表情等特殊字符處理和存儲的兩個方案_透明大腦-CSDN博客_emoji表情存儲
