自emoji诞生以来,人们就一直在努力降低它的使用门槛,好让全世界人民🌎都可以平等地享受到它的便利和乐趣。虽然这个目标已经基本实现,但还是有一个很烦人的问题在困扰着用户们:那就是人们在不同设备上看到的emoji并不总是完全一样的。

这里说的不一样可以分为两种情况:一种是同一个emoji在不同设备📱上的外观却不一样。这个现象的原因可以参考我们前阵子发布的这篇博客: 🎭为什么Emoji在不同平台显示的外观不一样?

另一种就是我们今天要说到的了: emoji无法正常地显示。

这种“错误的显示”可以分为三种情况。接下来我们会一一详细说明,并附上对应的解决办法🤏。

Emoji显示为符号

第一种情况是最常见的,即emoji完全显示不出来。这种情况下,emoji一般会以方框/带叉的方框/带问号的方框/空白这四种形式出现(如下图所示)。具体会以哪种形式出现则取决于你使用的设备。

🔺:emoji的正常显示 🆚 emoji的四种不正常显示

造成这种情况的原因要从emoji的本质开始说起。emoji和我们平时熟知的汉字、标点符号等一样,是一种全世界通用的可以被计算机识别的字符,由统一码联盟(Unicode Consortium)标准化管理。任何设备或者app如果想要支持emoji的使用,就得先把它们编入自己的系统中。

在统一码联盟的管理下,每个emoji都会有一个码点,这些码点就相当于emoji的身份证号一样。比如说,下图中emoji的码点是U+1F623。

🔺:图片来源:unicode.org

当你发送一个emoji时,你使用的设备的系统就会通过识别它的码点来寻找并显示它🧐。而当系统遇到一个不认识的码点时,它无法找到这个码点对应的emoji图像,就只能将这个emoji显示为一个符号了,也就是本段开头提到的四种符号之一。

所以当你看到这种无法显示的emoji时,就说明你使用的设备或者app的系统需要更新字符集和emoji字体了。

字符集和字体的更新一般会包含在系统的版本更新里,因此只需要将你使用的设备或者app更新到最新版本即可。但是各家厂商和app对于emoji的更新并不是同步的,比如说苹果的更新就一直比安卓要快很多。所以假如你并没有找到可以更新的版本或者更新后emoji还是无法显示,那就只能再耐心等待下一次更新了。

如果app更新完后还是无法正常显示emoji,那你可以试试它的网页版(如果有的话)。推特就是这样,它的app里没有内置emoji键盘,所以用户想在推特app上发送emoji的话只能选择自己手机里内置的emoji。而推特网页版上则有内置的emoji键盘,只要它更新了,即使你的手机/电脑暂时还不支持使用某些emoji,你也可以在推特上使用它们。

一个emoji被拆分为两个emoji

很多看起来由两个emoji组成的组合,其实表示的是一个emoji。比如下图中左边的emoji的正体其实都如右边所示。

分辨这种情况的方式很简单:如果你可以分别选中这两个emoji,则说明它们是两个独立的个体;假如你无法分别选中它们,则说明它们其实是一个整体。

这种情况出现的原因和第一种一样👆,也是系统版本较低导致的,因此解决方式也一样,只需更新系统即可。


💡:这里我们顺便给大家科普一下为什么有些emoji会显示为两个emoji的组合。前文我们提到说每创造一个新的emoji就需要给它分配一个码点,可emoji的扩充是无限的♾,而码点却是有限的。怎样才能既节约码点,又不影响emoji的扩充和更新呢?于是统一码联盟就想了一个办法🤔:从现有的emoji中挑出几个,并用ZWJ(零宽度连字符)连接起来从而形成新的emoji。这样新增的emoji就不需要被分配新码点了,它的码点就是被连接起来的那几个emoji和ZWJ的码点合集(如下图所示)。推荐阅读📚:什么是Emoji ZWJ 序列?

特例

最后一种情况比较特殊也比较少见,就是当你使用同一台电脑浏览不同的网站时,你可能会发现同样的emoji在不同的网站显示的外观不一样。这就不是系统导致的问题了,而是emoji在不同网站的字体不一样。

🔺:由上至下分别是微软、苹果、谷歌设计的emoji字体

所有操作系统都需要调用emoji字体来实现对emoji的显示。目前苹果、微软、谷歌等都有设计自己的emoji字体,通常网站开发者会将这些emoji字体写入网站编码中,以供不同的操作系统能正常调用。但假如系统调用时出现问题,就会影响emoji的显示了。

不过这种情况还是很少见的😎,所以大家了解一下就好。

结论

以上就是比较常见的几种emoji无法正常显示的情况了🔚。如果你有遇到其他情况或者你还知道其他办法的话,欢迎在评论里和大家一起交流🗣!我们下期博客见啦!👋