评论中发emoji表情 iOS

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010105969/article/details/52355467

最近项目中有个新需求——在评论中发表情。

之前以为这个是不用做什么处理的,因为表情可以直接在UILabel上显示。然而显示并不是我所想象的这样,因为后台并不能识别客户端上传的表情符号。

iOS中的表情符号是emoji表情,需要将表情符号进行转换,后台才能识别。识别方法:

NSString * str1 = [str stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; (iOS 9后被另一个方法替换

NSString * str1 =  [str stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet characterSetWithCharactersInString:@"`#%^{}\"[]|\\<> "].invertedSet];

)

如果str字符串中包含表情符号,转换后的str1就能被后台所识别。此时的str1是一串字符,而没有了所谓的表情符号。如果将str1显示在UILabel上,同样是一串字符。

我们给后台上传的是Hahh%F0%9F%98%85这样的字符串,同样发回给我们的也是Hahh%F0%9F%98%85。

那么问题来了,我们要怎样识别这些表情字符,并将表情显示出来?这时就需要我们使用另一个方法,将表情符号识别并显示出来了。

方法:

 NSString * str2 = [str1  stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

    NSLog(@"%@", str2);(iOS9之后被另一个方法替换:

NSString * str2 = [str1 stringByRemovingPercentEncoding];

只要使用了以上两个方法我们就能实现发表emoji表情的功能了。

说实话,之前为了解决这个问题,我绕了很多弯路,网上查、群里问、找大神,最终终于是解决了。写这篇博客就是为了让大家少走弯路,将时间用在更多的技术上。

2017.4.4增加:

最近在面试的时候面试官提到了这个问题,我的回答并不是很让面试官满意。面试官说这样会有一个问题,就是iOS系统的一些emoji表情并不能被安卓那边识别,因此本篇博客上的解决方法还是有一定的问题的。面试官说这需要后台去做相关处理,而不用我们客户端做过多的处理。听到面试官的说法,我顿时挺高兴,可在实际开发中我还没有实现过,在真正的开发中实现了此功能(后台处理)再给出确定的答案吧。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏PPV课数据科学社区

做数据分析必须学R语言的4个理由

R 是一种灵活的编程语言,专为促进探索性数据分析、经典统计学测试和高级图形学而设计。R 拥有丰富的、仍在不断扩大的数据包库,处于统计学、数据分析和数据挖掘发展的...

39360
来自专栏happyJared

用python快速分析你的微信好友

itchat基于python开发,封装了大量调取微信功能的接口,使得开发人员可以快速基于这个框架来完成一些微信操作,在这之前我们要做的就是扫码登录,实际上这相...

11820
来自专栏生信小驿站

Python Vs R:数据科学家的永恒问题pythonR结论

Python有一些使用案例,R也是如此。使用它们的场景各不相同。 更常见的是环境以及客户或雇主的需求决定了Python和R之间的选择。许多事情在Python中都...

11220
来自专栏ios 技术积累

ios 百度地图设置BMKAnnotationView层级

产品有一个新需求,就是百度地图上显示的BMKAnnotationView,根据数值越大的放在最上层,原因是因为BMKAnnotationView很多并且有重叠的...

36240
来自专栏PPV课数据科学社区

【连载】R语言18讲(四)

? 前面讲到了怎么导入数据,获取数据,按照数据挖掘的流程,在我们导入数据之后接下来的工作便是对数据进行初步的探索,探索的工作主要包括两大块,第一是数据...

30880
来自专栏生信技能树

一篇文章学会miRNA-seq分析

第一讲:文献选择与解读 前阵子逛BioStar论坛的时候看到了一个关于miRNA分析的问题,提问者从NCBI的SRA中下载文献提供的原始数据,然后处理的时候出现...

2.5K70
来自专栏大数据挖掘DT机器学习

【推荐】分析的前提—数据质量

数据质量(Data Quality)是数据分析结论有效性和准确性的基础也是最重要的前提和保障。数据质量保证(Data Quality Assurance...

32050
来自专栏令仔很忙

软件工程---软件需求分析

   需求分析是软件定义时期的最后一个阶段,它的基本任务是准确回答“系统必须做什么?”

18120
来自专栏量子位

有个AI陪你一起写代码,是种怎样的体验?| 附ICLR论文

后来,程序猿要写的代码越来越多,世界上便有了各种各样的API,来减少大家的工作量。有些功能,可以让API来帮我们实现。

11920
来自专栏重庆的技术分享区

大数据与机器学习融合

我最近与柏林工业大学的学生进行了两次非常有趣的讨论,我了解了机器学习社区和大数据社区之间的鸿沟有多大。

48740

扫码关注云+社区

领取腾讯云代金券