1. 程式人生 > >Android emoji顯示

Android emoji顯示

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(); }