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

之前以为这个是不用做什么处理的,因为表情可以直接在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表情并不能被安卓那边识别,因此本篇博客上的解决方法还是有一定的问题的。面试官说这需要后台去做相关处理,而不用我们客户端做过多的处理。听到面试官的说法,我顿时挺高兴,可在实际开发中我还没有实现过,在真正的开发中实现了此功能(后台处理)再给出确定的答案吧。

评论中发emoji表情 iOS相关推荐

  1. android显示ios emoji表情符号,IM 使用的 Emoji 表情显示

    估计很多人都看到输入法键盘中使用的输入表情的Emoji. 键盘emoji.png Emoji.png Emoji使用基础 可以看到在不同的Native Android IOS系统中对应的emoji码显 ...

  2. Emoji表情图标在iOS与PHP之间通信及MySQL存储

    在某个 iOS 项目中,需要一个服务器来保存一些用户数据,例如用户信息.评论等,我们的服务器端使用了 PHP+MySQL 的搭配.在测试过程中我们发现,用户在 iOS 端里输入了 Emoji 表情提交 ...

  3. ios emjoi java_前端App开发,实际工作中三端(android,ios,前端H5)emoji表情显示解决方案...

    想起最近开发APP的时候,产品提的一个需求,用户的帖子正文还有评论内容里,要能够显示emoji表情,因为我们这款app是混合开发的,APP里的发贴,发评论是原生做的(android和ios),但帖子详 ...

  4. iOS禁止输入emoji表情

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

  5. IOS Emoji表情

    IOS Emoji 前言:我比较喜欢有趣的东西,有一些有趣的小东西,可能不是多么多么牛逼,也可能不需要多高深的技巧,也不会为其他什么强大的功能而服务,但是有时候将很多有趣的小东西组合起来运用,比如在你 ...

  6. java过滤ios表情,JS前端去掉emoji表情和Java后台处理emoji表情方法

    莫非定律 : 任何事情都没表面看去来那么简单! emoji表情在项目中使用,因为其特殊的编码格式,经常导致在网络传输.编解码.以及数据入库中带来一些问题! 下面简单介绍使用Js和java处理移除emo ...

  7. iOS应用中增加emoji表情输入功能

    Emoji的介绍参见wiki,iOS支持的emoji表情列表参见http://pukupi.com/post/1964/,iOS支持的emoji表情的Unicode编码范围为[0xE001,0xE05 ...

  8. iOS中Emoji表情的判断

    问题 服务器端不支持Emoji表情,因此客户端在上传用户输入时,不能包含Emoji表情. 解决方案 在客户端发送请求前,判断用户输入中是否含有表情,如果含有表情,则提示用户重新输入.这个过程关键是如何 ...

  9. Android IOS风格Emoji表情,简单实用

    相信大家做项目的时候,特别是聊天相关的,一般都需要用到Emoji. 但是Emoji表情在安卓和IOS两个平台上,显示效果是不一样的,如下图: 言归正传,大家都知道,Emoji就是一组Unicode编码 ...

最新文章

  1. CodeSmith实用技巧(十五):使用快捷键
  2. java读取C++结构体,类型转换
  3. mac os touch命令_MacOS系统终端常用命令大全
  4. PHP学习笔记02:自然数列求和
  5. html5 video视频资源保护,HTML5 视频播放 video
  6. c语言操作题和答案,C语言上机操作题及答案.doc
  7. 利用PLTS对F域测试数据做“AFR”指南
  8. linux oracle client 安装,Instant Client 下载 适用于 Linux x86-64(64 位)
  9. python 大智慧股池_大智慧的一般设置及股票池的安装步骤、使用方法
  10. 【SPSS统计分析】SPSS聚类分析:一个案例演示聚类分析全过程(附SPSS 19.0中文版下载)
  11. Gauss 求积公式及代码
  12. 什么是拓扑结构_拓扑结构图
  13. php西游记源码,基于Python第三方插件实现西游记章节标注汉语拼音的方法
  14. 深入理解操作系统实验——bomb lab(作弊方法2)
  15. excel股票今日走势计算机,有没有可以在excel上自动显示股票实时数据的方法
  16. 考试末名的英国教授获诺贝尔奖
  17. IP解析:含义、作用、格式、分类
  18. 如何理解线性回归中的“回归”,回归到哪里?
  19. 产品经理如何做好行业研究及竞争对手分析工作
  20. ROOT后安装Magisk,使用Magisk Hide 解决建设银行APP-一元流量不能用问题

热门文章

  1. 吊打tomcat的高性能web服务器undertow
  2. OpenCV4学习笔记(19)——模板匹配
  3. 电脑开机卡顿解决方法
  4. 【渝粤教育】电大中专常见病药物治疗 (3)作业 题库
  5. 大屏展示使用WebSocket记录
  6. 百度 翻译 api 使用
  7. 宇视摄像头安装水晶头防护套步骤
  8. 【数据分析】电商平台入驻商用户画像分析
  9. vue3 全局注册app.config.globalProperties, 如何处理getCurrentInstance 上下文线上环境报错
  10. Elliptic Curve