最近公司项目开发中涉及到在 Android 上显示 emoji 表情。
网上查了一些资料,如下。
Emoji 表情,最初是从日本的“绘文字”演化过来,在没有正式定下规范之前,日本的三大电信运营商, NTT DoCoMo , au/KDDI , Softbank 都各自有一套关于 Emoji 的编码规范,而且在这个时候,每个 Emoji 表情对应的表情图片也是没有统一规范的。这时候,应用最广泛的是应该的属于日本软银( Softbank )的 Softbank 编码了,在 iOS 系统的早期的版本上,采用的也是这个编码规范。
后来,在 2010 年 10 月,随着 Unicode6.0 的发布, Emoji 的编码以及对应的表情图片正式被规范化,核心 Emoji 表情包含 722 个 Emoji 编码。而到了 Unicode 7.0 ( 2014 年 6 月发行)之后,更多的 Emoji 表情被加入了进来,包括一些其他比较偏门的 Emoji 表情组,例如 Webdings , Wingdings ,也被编入了 Unicode 7.0 规范,此时,整个 Emoji 编码集合已经有大概 1000 个左右,而在表情图片的规范上,除了我们常见的 ios style 之外,还有 Android Style , Twitter Style 等,在这里,有一份比较详细的 Emoji 表情列表,包含了不同的表情样式以及对应的编码。
而在 iOS 系统上,在 Unicode 6.0 规范出来之前,原来也是采用 Softbank 编码( iOS 4 以及之前版本),而 Unicode 6.0 规范之后( iOS 5 以及之后的版本,或者 OSX Lion 之后的系统),则改为使用了 Unicode 编码。
而 android4.4 以前,无法使用像苹果那样的 emoji 字体样式,最简单的解决方案是使用 ImageSpan 配合 SpannableString ,而在 4.4 及之后的版本,则可以直接采用类似 iOS/OSX 的方案进行快速渲染。
目前已经决定采用 ImageSpan 配合 SpannableString ,以便兼容低版本系统。目前有一个问题, Android4.4 以下系统, String 可以存储 Unicode 6.0 新增的 emoji 表情字符吗?请了解的 V 友帮忙回答一下。