专栏首页DannyHoo的专栏评论中发emoji表情 iOS

评论中发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 条评论
登录 后参与评论

相关文章

  • OC中清除缓存

    上一篇文章是获取文件大小(http://blog.csdn.net/u010105969/article/details/53021768),本篇文章是清除缓...

    用户1451823
  • POST上传各种数据类型(包括图片)

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

    用户1451823
  • 构造方法、类方法、类的复合

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

    用户1451823
  • 想拿月薪4万,99%公司必备的技术,你得先掌握好啊!

    关于什么是bean的作用域,可以去看一下之前的一篇文章:Spring系列第6篇:玩转bean scope,避免跳坑里!

    路人甲Java
  • Spring获取Bean 源码浅析

    我想上面这行代码,第一次接触过spring这个框架时都应该接触过;读取xml中我们配置的bean;

    用户2141593
  • 求求你,下次面试别再问我什么是AOP了!

    也称为批量的方式,批量的方式用在spring环境中,通过bean后置处理器来对符合条件的bean创建代理

    路人甲Java
  • 红烧嗨鸟

    用户1907613
  • springframework 核心概念扫盲

    springframework 从 2.5 版本发展至今,期间已经发生了非常多的修正及优化。 最初认为 spring 框架是一个非常轻量级的东西,轻量到你几乎认...

    Java3y
  • springframework 核心概念扫盲

    springframework 从 2.5 版本发展至今,期间已经发生了非常多的修正及优化。 最初认为 spring 框架是一个非常轻量级的东西,轻量到你几乎认...

    美码师
  • Facebook关闭Oculus Story Studio工作室,是战略变更还是人事调控?

    VRPinea

扫码关注云+社区

领取腾讯云代金券