12
//將數字轉為
#define emoji_code_to_symbol(x) ((((
0x808080f0
| (x &
0x3f000
) >>
4
) | (x &
0xfc0
) <<
10
) | (x &
0x1c0000
) <<
18
) | (x &
0x3f
) <<
24
);
12
3456
78910
1112
1314
- (
void
)viewdidload
}
12
3456
78910
1112
//獲取預設表情陣列
- (nsarray *)defaultemoticons
}
return
array;
}
為了防止輸入表情符號,需要對輸入的內容做檢測和過濾,將蘋果鍵盤的emoji表情符號過濾掉。
通過研究和測試,得到以下比較完美的解決方案,思路兩條:
1,當使用者切換鍵盤為emoji表情時,輸入的表情不響應(即表情符號不顯示到uitextview或uitextfield)。這裡可以通過uitextview或uitextfield的**和是否為emoji鍵盤:
1 [[[textview textinputmode] primarylanguage] isequaltostring:@"emoji"]
來判斷;
2,當使用者通過中文鍵盤輸入中文「哈哈」後出現可選文字中選中的emoji笑臉,最後統一通過檢查最終字串textfield.text的內容,通過emoji篩unicode編碼來判斷是否存在emoji表情,如果存在則提醒使用者做修改。
主要的**如下:
- (bool)textview:(uitextview *)textview shouldchangetextinrange:(nsrange)range replacementtext:(nsstring *)text
}return yes;
}// 過濾所有表情
- (bool)stringcontainsemoji:(nsstring *)string
}} else if (substring.length > 1)
} else else if (0x2b05 <= hs && hs <= 0x2b07) else if (0x2934 <= hs && hs <= 0x2935) else if (0x3297 <= hs && hs <= 0x3299) else if (hs == 0xa9 || hs == 0xae || hs == 0x303d || hs == 0x3030 || hs == 0x2b55 || hs == 0x2b1c || hs == 0x2b1b || hs == 0x2b50)
}}];
return returnvalue;
}
iOS 過濾emoji表情
前言。bool stringcontainsemoji nsstring string else if substring.length 1 else else if 0x2b05 hs hs 0x2b07 else if 0x2934 hs hs 0x2935 else if 0x3297 hs ...
mysql支援IOS的Emoji表情
原因 utf 8編碼有可能是兩個 三個 四個位元組。emoji表情是4個位元組,而mysql的utf8編碼最多3個位元組,所以資料插不進去。解決辦法 將mysql的編碼從utf8轉換成utf8mb4 步驟 1.修改mysql配置檔案 my.ini default character set utf8...
IOS開發中emoji表情如何判斷
在ios開發中,很多時候我們要對textfield中的文字進行限制,包括有沒有空格,長度在哪個範圍裡面。不過,最近發現乙個問題,ios手機自帶的鍵盤裡面可以輸入一些emoji表情,而且這些表情在伺服器上根本不支援,這時候沒辦法只能控制使用者輸出了,那麼我們如何來判斷文字中是否含有emoji表情呢?首...