过滤NSString中的Emoji
2024-08-28 20:53:23
有时候由于项目需求。要过滤NSString中的emoji。
比方下面情况:
- 要跟android互通,android假设还没做这方面的支持。
- 内容做为手机短信发出去。
思路例如以下,遍历NSString每个字符,然后替换成其他字符。打印每个字符:
NSRange range;
for(NSInteger i = 0; i < length; i += range.length) {
range = [string rangeOfComposedCharacterSequenceAtIndex:i];
NSString *composedString = [string substringWithRange:range];
NSLog(@"i = %@, ch = %@", @(i), composedString);
}`
怎样推断composedString
是emoji呢?
- 方法1:查找其在emoji字典里。这种方法要载入全面的emoji,不是非常理想。
- 方法2:是不是正常能显示的字符,就是它是非emoji。
推断当前码点是不是emoji.
- (BOOL)isNotEmoji:(UInt64) codePoint {
return (codePoint == 0x0)
|| (codePoint == 0x9)
|| (codePoint == 0xA)
|| (codePoint == 0xD)
|| ((codePoint >= 0x20) && (codePoint <= 0xD7FF))
|| ((codePoint >= 0xFF00) && (codePoint <=
0xFFFF));
}
依据以上两个方法,我写了一个NSString的扩展类:
NSString+YFEmoji
本文原创。转载请注明。
最新文章
- show master/slave status求根溯源
- poj3461 Oulipo(KMP模板)
- extJs学习基础 容器的介绍
- dedecms无法创建rss文件,提示DedeTag Engine Create File False
- 阅读jQuery源码的18个惊喜
- Restful api测试插件Swagger-UI
- Android_ViewPager
- HDU 3265 Posters ——(线段树+扫描线)
- 使用阿里百川HotFix
- 在 ServiceModel 客户端配置部分中,找不到引用协定“XX”的默认终结点元素的解决方法
- 814-Binary Tree Pruning
- 从浏览器多进程到JS单线程,JS运行机制最全面的一次梳理
- css 修改svg图标的颜色(不修改fill)
- percona-5.7二进制多实例安装
- Java常用测试工具
- 解决双系统(Window10+Ubuntu16.10)下ubuntu安装git时提示软件包git没有可安装候选问题
- C# 日志系统 log4net 配置及使用
- nginx 场景业务汇总 (初)
- python+selenium实现动态爬取及selenuim的常用操作
- SQL条件!=null查不出数据
热门文章
- MongoError: topology was destroyed解决方法
- CodeForces - 283E Cow Tennis Tournament
- 【AC自动机】zoj3228 Searching the String
- 【分块打表】Gym - 100923K - Por Costel and the Firecracker
- 【分块答案】【最小割】bzoj1532 [POI2005]Kos-Dicing
- css sprite demo
- SSH学习——Spring基础
- C#Windows服务:一些方法(启动、停止等)
- linux-内存使用-free
- 论文中的state-of-the-art