Android emoji顯示
阿新 • • 發佈:2018-11-01
Android emoji顯示
開發中常會被測試提出emoji支援顯示的問題,Android的TextView與Editext 的元件其實是已經支援了emoji的顯示的,有問題的就是,將emoji發給後臺,後臺再發回來會出現問題,所以我們需要對編碼進行處理。當然下面的操作可以在Android處理也可以在後臺處理,看需求而定
unicode轉換為String
emoji是unicode編碼,所以需先將unicode轉換為String,再將String傳給後臺
/**
* unicode 轉字串
*/
public static String unicode2String (String unicode) {
StringBuffer string = new StringBuffer();
String[] hex = unicode.split("\\\\u");
for (int i = 1; i < hex.length; i++) {
// 轉換出每一個程式碼點
int data = Integer.parseInt(hex[i], 16);
// 追加成string
string.append((char ) data);
}
return string.toString();
}
String 轉換為unicode
再將String轉換為unicode,如何直接setText到Android的TextView等元件上便可顯示
/**
* 字串轉換unicode
*/
public static String string2Unicode(String string) {
StringBuffer unicode = new StringBuffer();
for (int i = 0 ; i < string.length(); i++) {
// 取出每一個字元
char c = string.charAt(i);
if(c < 256)//ASC11表中的字元碼值不夠4位,補00
{
unicode.append("\\u00");
}
else
{
unicode.append("\\u");
}
// 轉換為unicode
unicode.append(Integer.toHexString(c));
}
return unicode.toString();
}