表情显示服务器异常,彻底解决iOS输入表情,报系统异常问题

907fa3164f5a

奋斗的七月

之前写的一篇iOS限制输入表情(emoji),因为输入表情之后,服务器返回系统异常,所以就限制了输入表情。但是这种方法终究不是一个最好的解决办法,如果需求是要求可以输入表情,并且要展示出来呢。所以我们要另辟新径。

我们在请求有中文链接的网址时会请求失败, 正常的处理是先把含有中文的网址进行编码后在请求就会成功, 因此,我们保存表情时也可以你用这种办法;

注意: 这里在你把转码后的操作发给服务器后, 需要做的一个额外操作就是, 你再从服务器去回来显示时, 需要反转一下之前的编码才能正常显示出表情符号, 否则就是一堆乱码, 如: 123%F0%9F%98%94%E2%9C%8C%EF%B8%8F%F0%9F%98%A9%F0%9F%98%B3;

1、把含有表情的字符串进行编码后再发送给服务端:

NSString *encodedString = (NSString *)CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, (CFStringRef)urlString, (CFStringRef)@"!$&'()*+,-./:;=?@_~%#[]", NULL, kCFStringEncodingUTF8);

2、对从服务器获取回来含有表情的字符串进行反转后显示在页面上:

NSString *showText = [serverString stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

3、把编码的字符串反转之后的显示效果图:

907fa3164f5a

奋斗的七月

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值