美文网首页
iOS 10 emoji 与 ZWJ

iOS 10 emoji 与 ZWJ

作者: erbai | 来源:发表于2016-11-21 19:31 被阅读376次
iOS 10 emoji总结
  1. emoji 中表情包含很多,其中最复杂的就是各种带人的组合表情,什么一家四口,一家三口,相亲相爱。 如果你细心一点儿就会发现,其实这些表情都是单个emoji表情拼接而成的。
    2.\U200d 如果你为了兼容数据库而过滤掉了部分emoji表情,那应该对这个Unicode不陌生,它会出现在你过滤后的结果中,成片成片出现,但是你有没有想过他到底是什么呢

维基百科 :https://en.wikipedia.org/wiki/Zero-width_joiner

零宽连字 即\U200d的unicode编码 ,全称是Zero Width Joiner,简称“ZWJ”,是一个不打印字符,放在某些需要复杂排版语言(如阿拉伯语、印地语)的两个字符之间,使得这两个本不会发生连字的字符产生了连字效果。而在emoji中,充当的就是连接作用。emoji中复杂的表情(如下表)。

emoji 对应Unicode编码 表情组成
👨‍👩‍👦‍👦 \ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d\udc66\u200d\ud83d\udc66 👨 Man, 👩 Woman, 👦 Boy and 👦 Bo
👩‍❤️‍💋‍👩 \ud83d\udc69\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc69 👩 Woman, ❤ Heavy Black Heart, ️ Variation Selector-16, 💋 Kiss Mark and 👩 Woman
👨‍👩‍👦 \ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d\udc66 👨 Man, 👩 Woman and 👦 Bo

在Unicode的对照表中我们发现,\u200d是不代表任何意义的。


Paste_Image.png

我遇到的问题:在开发过程中,由于后台服务器数据库不支持部分emoji,所以进行了过滤,但是好巧不巧的没有过滤\u200d这个字符。在iOS10之前的系统中,是不会有问题的。但是我们app的用户在升级的iOS10 之后,由于\u200d的问题造成了闪退。推断是iOS10 对emoji进行了校验。对于\u200d字符进行了检验处理。由于我们只过滤的单个emoji表情,所以遗留的连接符没有通过校验,造成的闪退

相关文章

网友评论

      本文标题:iOS 10 emoji 与 ZWJ

      本文链接:https://www.haomeiwen.com/subject/ootjpttx.html