国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > iOS > 正文

iOS中判斷Emoji表情問題

2019-10-21 18:53:57
字體:
來源:轉載
供稿:網友

先給大家說下問題描述

服務器端不支持Emoji表情,因此客戶端在上傳用戶輸入時,不能包含Emoji表情。

解決方案

在客戶端發送請求前,判斷用戶輸入中是否含有表情,如果含有表情,則提示用戶重新輸入。這個過程關鍵是如何判斷字符串中是否含有Emoji表情。要判斷是否含有Emoji表情,必須先了解什么是Emoji。

Emoji 是一套起源于日本的12x12像素表情符號,由栗田穣崇(Shigetaka Kurit)創作,最早在日本網絡及手機用戶中流行,自蘋果公司發布的iOS 5輸入法中加入了emoji后,這種表情符號開始席卷全球,目前emoji已被大多數現代計算機系統所兼容的Unicode編碼采納,普遍應用于各種手機短信和社交網絡中。

以上是摘自百度百科里的一段話,Emoji表情最終會被編碼成Unicode,因此,只要知道Emoji表情的Unicode編碼的范圍,就可以判斷用戶是否輸入了Emoji表情。以下是具體代碼,我這里寫成了NSString的一個分類

@implementation NSString (Emoji)+ (BOOL)stringContainsEmoji:(NSString *)string{__block BOOL returnValue = NO;[string enumerateSubstringsInRange:NSMakeRange(0, [string length]) options:NSStringEnumerationByComposedCharacterSequences usingBlock:^(NSString *substring, NSRange substringRange, NSRange enclosingRange, BOOL *stop) {const unichar hs = [substring characterAtIndex:0];if (0xd800 <= hs && hs <= 0xdbff) {if (substring.length > 1) {const unichar ls = [substring characterAtIndex:1];const int uc = ((hs - 0xd800) * 0x400) + (ls - 0xdc00) + 0x10000;if (0x1d000 <= uc && uc <= 0x1f77f) {returnValue = YES;}}} else if (substring.length > 1) {const unichar ls = [substring characterAtIndex:1];if (ls == 0x20e3) {returnValue = YES;}} else {if (0x2100 <= hs && hs <= 0x27ff) {returnValue = YES;} else if (0x2B05 <= hs && hs <= 0x2b07) {returnValue = YES;} else if (0x2934 <= hs && hs <= 0x2935) {returnValue = YES;} else if (0x3297 <= hs && hs <= 0x3299) {returnValue = YES;} else if (hs == 0xa9 || hs == 0xae || hs == 0x303d || hs == 0x3030 || hs == 0x2b55 || hs == 0x2b1c || hs == 0x2b1b || hs == 0x2b50) {returnValue = YES;}}}];return returnValue;}

本段代碼親測管用,歡迎大家參考。

以上所述是小編給大家介紹的iOS中判斷Emoji表情問題,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VEVB武林網網站的支持!


注:相關教程知識閱讀請移步到IOS開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 拉孜县| 越西县| 三台县| 云南省| 普陀区| 靖宇县| 余干县| 河西区| 新昌县| 稻城县| 黑水县| 阳江市| 新兴县| 武陟县| 庄浪县| 惠东县| 柞水县| 岳池县| 舒兰市| 普定县| 盘锦市| 蒙城县| 息烽县| 盐亭县| 嘉鱼县| 武陟县| 大洼县| 曲水县| 永德县| 东乌| 两当县| 福泉市| 呼和浩特市| 万荣县| 眉山市| 高陵县| 德格县| 新泰市| 清新县| 青岛市| 平度市|