iOS禁止输入emoji表情

iOS禁止输入emoji表情
iOS禁止输入emoji表情

1/

iOS禁止输入emoji表情

有朋友在询问,如何屏蔽emoji表情输入的问题,因为苹果自带的表情在其他设备上不支持。

思路,在textfeild或者textview中,键入时候先判读是不是emoji的内容,如果是,就不返回给编辑框。

代码如下:

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range

replacementString:(NSString*)string{ DLog(@"[[UITextInputMode currentInputMode]primaryLanguage] is %@",);

if ([[[UITextInputMode currentInputMode]primaryLanguage] isEqualToString:@"emoji"]) {

return NO;

}

return YES;

2/

因为emoji编码在android或者pc设备没有很好的支持,所以有时候为了禁止emoji表情的输入,因为关闭不了系统emoji的键盘,那只能根据编码把emoji表情过滤掉,写了一个NSString的拓展,用来判断是不是emoji编码:

@implementation NSString(Emoji)

+(BOOL)isContainsEmoji:(NSString *)string {

__block BOOL isEomji = NO;

[string enumerateSubstringsInRange:NSMakeRange(0,

[string length]) options:NSStringEnumerationByComposedCharacterSequencesusi ngBlock:

^(NSString *substring, NSRange substringRange, NSRange enclosingRange, BOOL *stop) {

const unichar hs = [substring characterAtIndex:0];

// surrogate pair

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) {

isEomji = YES;

}

}

} else if (substring.length > 1) {

const unichar ls = [substring characterAtIndex:1];

if (ls == 0x20e3) {

isEomji = YES;

}

} else {

// non surrogate

if (0x2100 <= hs && hs <= 0x27ff && hs != 0x263b) {

isEomji = YES;

} else if (0x2B05 <= hs && hs <= 0x2b07) {

isEomji = YES;

} else if (0x2934 <= hs && hs <= 0x2935) {

isEomji = YES;

} else if (0x3297 <= hs && hs <= 0x3299) {

isEomji = YES;

} else if (hs == 0xa9 || hs == 0xae || hs == 0x303d || hs

== 0x3030 || hs == 0x2b55 || hs == 0x2b1c || hs == 0x2b1b || hs == 0x2b50|| hs == 0x231a ) {

isEomji = YES;

}

}

}];

return isEomji;

}

这样在textview或textfield的delegate判断一下,即可禁止输入emoji,如下:

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range

replacementString:(NSString *)string

{

//emoji无效

if([NSString isContainsEmoji:string])

{

return NO;

}

}

3/

思路:禁用了表情键盘

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRang e:(NSRange)range replacementString:(NSString*)string{

DLog(@"[[UITextInputMode currentInputMode]primaryLanguage] is %@",); if ([[[UITextInputMode currentInputMode]primaryLanguage] isEqualToSt ring:@"emoji"]) {

return NO;

}

return YES;

}

3/

调用方法:

在输入框的代理方法中使用

- (void)textViewDidChange:(UITextView *)textView{

NSLog(@"text:%@",textView.text);

if (textView.text.length <= TEXT_MAXLENGTH) {

label2.text = [NSString stringWithFormat:@"您还可以输入%lu个文字",TEXT_MAXLENGTH-[textView.textlength]];

}

//该判断用于联想输入

if (textView.text.length > TEXT_MAXLENGTH){

textView.text =

[textView.text substringToIndex:TEXT_MAXLENGTH];

}

}

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range

replacementText:(NSString*)text{

//判断加上输入的字符,是否超过界限

NSString *string = [NSString stringWithFormat:@"%@%@", textView.text, text];

if (string.length > TEXT_MAXLENGTH){

return NO;

}

// 限制苹果系统输入法禁止输入表情

if ([[[UITextInputMode currentInputMode]primaryLanguage] isEqualTo String:@"emoji"]) {

return NO;

}

//禁止输入emoji表情

if ([LGToolMethods stringContainsEmoji:text]) {

return NO;

}

return YES;

}

//判断是否输入了emoji 表情

+ (BOOL)stringContainsEmoji:(NSString *)string{

__block BOOL returnValue = NO;

[string enumerateSubstringsInRange:NSMakeRange(0, [string length])

options:NSStringEnumerationByComposedChar acterSequences

usingBlock:^(NSString *substring, NSRange subst ringRange, NSRangeenclosingRange, 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;

}else if (hs == 0x200d){

returnValue = YES;

}

}

}];

return returnValue;

}

Emoji已经成了热门营销策划手段不过想要赢光靠Emoji可不行

Emoji已经成了热门营销策划手段,不过想要赢光靠Emoji可不行 有没有发现最近 Emoji 里新增了墨西哥玉米卷的表情?今年夏天百事要推出 Emoji 可乐你知道吗?Emoji 已经成为了时下最热门的营销手段,不过想要赢得这场大战,光靠Emoji 可不行。 去年十一月,Guinness 在都柏林的 Open Gate 酿酒厂开始正式向公众开放。Guinness 的高级品牌经理 Elissa McGee 想就此在 Twitter 上发条状态推广一下,但是她发现了一件有点心塞的事情:Emoji 里并没有黑啤酒的表情。 标准智能手机键盘上有超过 1000 个 Emoji,但啤酒却只有浅色的。去年六月份统一码联盟发布了 79 个候选 Emoji 表情,其中包括牛油果、牛奶、牛仔等等,但就是没有黑啤酒。现在Guinness 正在争取在 Emoji 中加入啤酒的表情。(申请过程无需付费,只需提交申请并得到许可。) Mcgee 表示 Guinness「打的是一场持久战」。她明白得到统一码联盟的认可比直接打造品牌自有键盘要难得多,可能要耗费很多年;但Guinness 坚持这个战略。Guinness 也并非第一个打 Emoji 战略的厂家。早在都柏林酿酒厂开放一事之前,不少品牌就开始积极使用Emoji 等通用符号来拉近与消费者之间的距离。 《消费者心理新解读》(Decoding the New Consumer Mind)的作者,

消费心理学家 Kit Yarrow 对此分析道:「好的广告总是善于避开消费者的理性思考,更多地依赖于视觉效果,煽动他们的情感。因此品牌与消费者们感情沟通的渠道之一就是巧用视觉刺激,而当下比较流行的就是 Emoji。」 多芬在去年 12 月推出了「Love Your Curls」Emoji,不过要从应用商店另外下载才能使用。这款 Emoji 大受好评,不少想表达自己头发自带波浪卷的用户们非常爱用。Taco Bell 在 https://www.360docs.net/doc/f411990134.html, 上发起的 Taco Emoji(墨西哥玉米卷表情)情愿活动获得了 32000 多名用户的签名支持。于是统一码联盟在 2015 年向 Emoji 表情中加了一个墨西哥玉米卷,虽然联盟表示情愿活动其实在 Emoji 筛选过程中并没有起到作用。Eggo 想要推出华夫饼 Emoji,于是品牌就开发了华夫饼表情键盘。 为 Unilever 开发多芬表情键盘的 Snap 表示,这是他们有史以来最成功的宣传活动之一,多芬 Emoji 键盘的总下载量超过了 92.8 万次,每位用户分享多芬表情的次数约为 6 次,而 Snap 开发的 Emoji 分享次数总平均也仅为 4 次。 丰田也决定开发 Fanmoji 键盘,从体育相关表情开始着手,正式加入各个品牌的 Emoji 营销大战。Fanmoji 键盘应用比普通的体育表情 Emoji 多出很多特色表情,例如哭泣/开心的粉丝、断球、触底得分等等。Toyota 还加入了 Nascar 赛车和篮球相关表情,计划很快还会推出棒球、足球、冰球等运动表

又一个奇葩:表情符号聊天应用Emoji来袭

又一个奇葩:表情符号聊天应用Emoji 来袭 腾讯科技讯 7月3日,《福布斯》网站今天刊登了署名为巴尔米·奥尔森(Parmy olson)的文章。文章指出,随着Emoji社交应用的出现,传统的语音或文字交流将面临冲击。奥尔森的文章主要内容如下。 无论如何,图片即将成为人们交流过程中的一个更重要组成部分。随着交流环境的发展,越来越多的智能手机用户可能只需要动用一下手指就可以便捷地发送更多的表情符号或图片,这些表情符号和图片或许就如同传统的文字信息那样。 表情符号可以丰富我们的聊天内容,即将推出的Emojli应用就是一个只能用表情符号emoji聊天的iOS社交应用。此应用没有文字和图片,用户的信息都用emoji表情体现出来,甚至连用户名都是表情符号。Emojli将于7月底或8月初着陆iOS平台,之后会陆续着陆其它操作系统。 Emojli应用创始人马修·格雷(Matt Gray)和汤姆·斯科特(Tom Scott)都认为,随着Emojli应用的推出,取消文字消息的时机也将随之来临。在Emojli应用环境下,用户将完全使用那些微小的卡通风格的图标进行交流,并利用这些图标来表达观点,或在对话中谈论一些有趣的事。 目前为止,已经有1万多用户开始注册Emojli应用,诸多消息也已表明,这款社交应用将在不久后首先投放到iOS平台。事实上,格雷和斯科特本身也没有过度关注他们自己及他们

的产品,不过,表情符号和数字标签却仍然能够成为移动消息领域谈论越来越多的话题。 在亚洲市场,表情符号聊天蕴含着巨的的潜力,发展趋势也越来越明显。在亚洲市场,智能手机用户可以完全使用这些表情符号和数字标签进行聊天。格雷和斯科特的新应用或许将成为培训亚洲之外其它地区的智能手机利用表情符号进行聊天的重要工具。 随着这一市场的发展,只要达到了一定的规模,那么这种利用表情符号进行聊天的应用就有利可图。事实上,大量的数字标签发行商已经与一些大品牌签署了营收分成协议。相关的数据显示,2013年,日本消息应用供应商liNE就销售了价值达7000万美元的数字标签。 目前为止,Emojli创建人只需要顺利地推广其应用即可。以下就是这些创始人对相关问题的回答。 问:你们有哪些职业背景或编程背景? 答:马修是一名在电台工作的专业广播业工程师,汤姆主要从事网络相关工作。 问:你们为什么打造只能用表情符号聊天的社交网络和应用,你们创作灵感来自何处? 答:来源于两个故事。其一是,有趣的社交网络Yo;其二是Unicode consortium公司的新表情符号。我们俩人也都想到了同样的理念。我们都为打造这样的应用而感到高兴。 问:你们会允许Emojli网络与其它消息服务协同使用吗,以此作为对这些服务的拓展?还是只愿意单独使用? 答:我们目前还没有考虑这些问题,但是我们目前只将单独推出此应用。 问:你们已经开始亲自使用或测试这一服务了吗?使用的效果如何? 答:此应用目前仍在研发之中,因此我们目前还没有进入完全的测试阶段。(悦潼) 文章来源于:https://www.360docs.net/doc/f411990134.html,/article-9010-1.html

最新整理emoji是什么意思翻译

e m o j i是什么意思翻译 日本的L I N E或者发短信邮件等,基本上都有e m o j i,可谓是使用的出神入化了。下面是学习啦小编给大家整理的e m o j i是什么意思翻译,供大家参阅! e m o j i是什么意思翻译绘文字(日语:絵文字/えもじ e m o j i)是日本在无线通信中所使用的视觉情感符号,绘意指图形,文字则是图形的隐喻,可用来代表多种表情,如笑脸表示笑、蛋糕表示食物等。 在N T T D o C o M o的i-m o d e系统电话系统中,绘文字的尺寸是12x12像素,在传送时,一个图形有2个字节。U n i c o d e编码为E63E到E757,而在S h i f t-J I S编码则是从F89F到F9F C。基本的绘文字共有176个符号,在C-H T M L4.0的编程语言中,则另增添了76个情感符号。 最早由栗田穰崇(S h i g e t a k a K u r i t a)创作,并在日本网络及手机用户中流行。 自苹果公司发布的i O S 5输入法中加入了e m o j i后,这种表情符号开始席卷全球,目前e m o j i已被大多数现代计算机系统所兼容的U n i c o d e编码采纳,普遍应用于各种手机短信和社交网络中。

e m o j i绘文字使用方法手机操作系统i O S,A n d r o i d, W i n d o w s P h o n e; 电脑:W i n d o w s,M a c O S X均内设E m o j i表情 Q Q等聊天工具中也添加了e m o j i表情供用户使用 i O S 打开设置-通用-键盘-国际键盘-添加新的键盘-表 情符号,然后把e m o j i添加在里面即可在发短信和一些输入文本的文本框中输入表情。 此外,运用i o s自带的输入法,通过拼写相关的词汇,如鲜花,则会出现 日语输入法条件下,输入えもじ亦会出现大量E m o j i 表情。 A n d r o i d 原生A n d r o i d使用系统中的A n d r o i d键盘内按动符号,点击表情图案后转入E m o j i。 另外搜狗手机输入法,G o o g l e拼音等A n d r o i d第三方输入法也内置此表情。 W i n d o w s P h o n e 在键盘上按一个脸的标志就可以。 W i n d o w s

mysql 5.5+版本支持emoji表情符存储方法

开发移动应用时,emoji表情在mysql默认情况下是不能存储的。 出现如下错误: Incorrect string value: '\xF0\x9F\x92\x94' for column 'name' at row 1 让mysql支持emoji表情存储的方法如下: 1、升级mysql 5.5以上版本; 2、服务——>mysql右键,找到my.ini的路径; 3、修改my.ini [mysqld] character-set-server=utf8mb4 [mysql] default-character-set=utf8mb4 4、打开mysql command line client,或在安装目录bin中打开mysql.exe;

输入以下命令,用于修改环境变量: set character_set_client = utf8mb4; set character_set_connection = utf8mb4; set character_set_database = utf8mb4; set character_set_results = utf8mb4; set character_set_server = utf8mb4; 5、在服务中,重启Mysql服务; 6、登陆MYSQL,show variables like 'character%'; 可以查看编码是否已经修改成功。

7、将已经建好的表也转换成utf8mb4 alter ta开发移动应用时,emoji表情在mysql默认情况下是不能存储的。出现如下错误: Incorrect string value: '\xF0\x9F\x92\x94' for column 'name' at row 1 让mysql支持emoji表情存储的方法如下: 1、升级mysql 5.5以上版本; 2、服务——>mysql右键,找到my.ini的路径;

各种笑脸符号里,LOL默默地就没人用了

各种笑脸符号里,LOL默默地就没人用了 点开你酷炫的表情包,在“姚明脸”和“暴漫脸”以及各种笑脸中选一个自己最中意的,点击发送,一张可以表达自己“合群的随和”以及“逗比中透着一点可爱”的笑脸就趁热送达了。 现在人们好像进入了表情时代,如果不用表情就无法好好说话。我们之前曾经通过一篇长文章来解释这个可爱的现象,梳理了表情时代的发展史。 好笑的是,表情又像是人们掩盖真相的虚伪假面,大家乐此不疲地互相戏耍,都认为自己是最大赢家,有的时候有人发了一个笑瘫了的表情,其实那个人自己根本就没笑。 这些承载了无数网民喜怒哀乐的东西也在面临残酷的生存法则——作为一个被人点来点去的表情,你不知道哪天会被人捧红,也不知道哪天便会消散在风中。 最近 Facebook 出了一组调查数据,约有 46%的 Facebook 用户每周只用一次这些虚拟“笑脸”,15% 的用户表示,使用它们的次数会超过每周 5 次。 他们说人们在 Facebook 笑的时候最爱用单词“haha”来表示,其次是 emoji 表 情,“hehe”也会用来表示窃喜。要知道,在 emoji 风靡之前,歪果仁最爱用来表达大笑的东西是“LOL”。

但现在,喜欢用“haha”的人占 51.4%,喜欢用 emoji 表情的人占 33.7%,喜欢 用“hehe”的人占 13.1%,而喜欢用 LOL 的的人只有 1.9%。 从地域上看,LOL 流行的圈子多在南美,在中西部地区,用户更青睐 emoji 表情。芝加哥和纽约的人是 emoji 表情党,而旧金山和西雅图的人是“haha”党。 现在,emoji 表情已经成为年轻人的首选了。

UnifiedEmoji表情forAndroid

Unified Emoji表情for Android 这个是我做Android以来碰到的最烦的东西,该死的emoji表情,恨之入骨。。无奈这个问题分配给我了。我也只能硬着头皮做。 0.吐个槽先 首先,你要明白什么是emoji表情,不知道的google,不需要支持emoji的可以绕道了。 emoji有很多不同的版本,我tm最讨厌的就是不同版本的了。 Unified DoCoMo KDDI Softbank Google 因为ios5升级了,emoji编码从softbank变成unified了。所以只能Android这边改了。伤心。 我要做的工作就是把消息中含有的unified的emoji编码过滤出来,然后映射出对应的表情资源显示出来。 1.准备工作。 google下emoji表情的历史,google code上有个源码,不过是java的,那么你要把它改成java的。。(记得当初解析gif表情时也是把java改成android,可怜的我为咩总是干这活。。) 这里有个link,上面有所有的编码对应转换。Emoji for PHP 然后google code里有所有对应的编码转换的xml。叫emoji4unicode.xml. 这里是 link:emoji4unicode 如果没兴趣我等下会直接贴代码的,但是最好你先自己弄明白解析的原理是什么,emoji 表情一直在增加,以后要兼容你就得自己想办法了。 2.举个例子 black sun with rays unified : U+2600 softbank: U+E04A 如果以前你解析过softbank,应该很熟悉了。好歹它还有个大致得顺序,解析得时候只要判断是否在这个unicode范围内就可以了。so easy 可是unified完全是无顺序得,所以必须得自己建好映射。 因为原始的emoji.xml很大,把所有的描述信息都放里面了,我不需要,所以我写了个java 把xml解析了一遍,然后重新生成了一个我需要的xml。贴个图出来大家看下。

各种表情符号的英文说法全在这里了

各种表情符号的英文说法全在这里了 各种表情符号的英文说法拿微信来说,里面的表情符号都有自己的描述,简直是不看不知道,一看就懵圈了!第一排:Smile微笑Grimace撇嘴Drool色Scowl发呆CoolGuy得意Sob流泪Shy害羞第二排:Silent闭嘴Sleep 睡Cry大哭Awkward尴尬Angry发怒Tongue调皮Grin 呲牙第三排:Surprise惊讶Frown难过Ruthless酷Blush 冷汗Scream抓狂Puke吐对此本君只想说:其实,这些还都算正常啦,再看看Buzzfeed网站上的这几道题~本君觉得有必要为Emoji设立四六级了。看表情,猜含义,小伙伴们开始吧(老规矩,直接点击选项看答案~)Expressionless Face 面无表情Neutral Face 不动声色Straight Face 一本正经Face With Flat Mouth 扁嘴Playful Face 顽皮Crazy Face 疯狂Face With Stuck-Out Tongue and Winking Eye 吐舌眨眼Face With Wink 眨眼Nervous Face 紧张Anxious Face 焦虑Disappointed But Relieved Face 失望但如释重负Guilty And Caught Face 愧疚并被抓现行Concerned Face 关切Astonished Face 诧异Surprised Face 惊讶Hushed Face 缄默Rude Face 粗鲁Unamused Face 不爽Dissatisfied Face 不满意Eye-Roll Face 斜眼Apologetic Face 抱歉Pensive Face 忧郁Guilty Face 内疚

emoji编码在android

emoji编码在android或者pc设备没有很好的支持,所以有时候为了禁止emoji表情的输入,因为关闭不了系统emoji的键盘,那只能根据编码把emoji表情过滤掉,写了一个NSString 的拓展,用来判断是不是emoji编码: @implementation NSString(Emoji) +(BOOL)isContainsEmoji:(NSString *)string { __block BOOL isEomji = NO; [string enumerateSubstringsInRange:NSMakeRange(0, [string length]) options:NSStringEnumerationByComposedCharacterSequencesusingBlock: ^(NSString *substring, NSRange substringRange, NSRange enclosingRange, BOOL *stop) { const unichar hs = [substring characterAtIndex:0]; // surrogate pair 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) { isEomji = YES; } } } else if (substring.length > 1) { const unichar ls = [substring characterAtIndex:1]; if (ls == 0x20e3) {

iOS禁止输入emoji表情

1/ iOS禁止输入emoji表情 有朋友在询问,如何屏蔽emoji表情输入的问题,因为苹果自带的表情在其他设备上不支持。 思路,在textfeild或者textview中,键入时候先判读是不是emoji的内容,如果是,就不返回给编辑框。 代码如下: - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString*)string{ DLog(@"[[UITextInputMode currentInputMode]primaryLanguage] is %@",); if ([[[UITextInputMode currentInputMode]primaryLanguage] isEqualToString:@"emoji"]) { return NO; } return YES; 2/ 因为emoji编码在android或者pc设备没有很好的支持,所以有时候为了禁止emoji表情的输入,因为关闭不了系统emoji的键盘,那只能根据编码把emoji表情过滤掉,写了一个NSString的拓展,用来判断是不是emoji编码: @implementation NSString(Emoji) +(BOOL)isContainsEmoji:(NSString *)string { __block BOOL isEomji = NO;

[string enumerateSubstringsInRange:NSMakeRange(0, [string length]) options:NSStringEnumerationByComposedCharacterSequencesusi ngBlock: ^(NSString *substring, NSRange substringRange, NSRange enclosingRange, BOOL *stop) { const unichar hs = [substring characterAtIndex:0]; // surrogate pair 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) { isEomji = YES; } } } else if (substring.length > 1) { const unichar ls = [substring characterAtIndex:1]; if (ls == 0x20e3) { isEomji = YES; } } else { // non surrogate if (0x2100 <= hs && hs <= 0x27ff && hs != 0x263b) { isEomji = YES; } else if (0x2B05 <= hs && hs <= 0x2b07) { isEomji = YES; } else if (0x2934 <= hs && hs <= 0x2935) { isEomji = YES; } else if (0x3297 <= hs && hs <= 0x3299) {

相关文档
最新文档