iOS 獲取emoji表情和攔截emoji表情

2022-05-09 07:36:15 字數 1792 閱讀 4080

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

}

returnarray;

}

為了防止輸入表情符號,需要對輸入的內容做檢測和過濾,將蘋果鍵盤的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表情呢?首...