微信表情是图片吗还是文字?终于有人把这个问题说清楚了

前几天在群里聊天,发了几个微信表情,突然有个朋友问:你们发的这些表情到底是图片还是文字啊?我一下子愣住了,用了这么多年微信,还真没仔细想过这个问题。相信很多人跟我一样,每天发成百上千个表情,但真要问起微信表情是图片吗还是文字,估计也说不清楚。

微信表情到底是什么?

要回答这个问题,得先搞清楚微信里表情的类型。我自己平时常用的表情大致分三类:系统自带的小黄脸、下载的表情包、还有自己收藏的自定义表情。这三类表情的存储方式完全不同。

第一类:系统自带的小黄脸

就是微信里那些微笑、大哭、捂脸之类的黄色表情。这些其实是Unicode字符,本质上跟文字一样,是编码系统里的一部分。当你发一个捂脸表情时,微信发送的是一串特定的字符代码,对方手机收到后,根据系统识别显示对应的图案。所以严格来说,这类表情更接近文字而非图片。

这也是为什么有时候换个手机看同一个表情,样子会有点不一样——不同手机厂商对Unicode表情的渲染风格不同。比如苹果的捂脸和安卓的捂脸,细看是有差别的。

第二类:下载的表情包

这类就是我们在微信商店里下载的各种卡通表情、明星表情。这些本质上是图片文件,通常是GIF或者PNG格式。每次发送,实际上是在传输一张图片。所以这类表情才是真正的图片。

这类表情有个特点:占空间。我微信里几十个表情包,光这些就占了1个多G的内存。而且如果网络不好,发出去半天转圈圈,不像小黄脸那样秒发。

第三类:自定义添加的表情

包括自己收藏的、从聊天记录里添加的、或者别人发给你的。这些也是图片文件,跟下载的表情包本质一样,只是来源不同。不过这类表情有个坑:如果原图被删了或者过期了,你这边看着还在,但发出去对方可能看到的是空白或者加载失败。

为什么有时候表情发出去变成方框?

说到微信表情显示异常,最烦人的就是发出去变成方框或者问号。我遇到过好几次,特别在跟用不同手机的朋友聊天时。原因其实很简单:对方手机系统不支持这个表情对应的Unicode编码。

比如一些比较新的表情,如果你的微信版本或者手机系统版本太旧,系统无法识别这个字符,就会显示成方框。解决办法就是:更新微信和手机系统。另外,一些第三方输入法里的特殊表情也可能出现这种情况,因为那些表情用的不是标准Unicode,而是输入法自己定义的编码。

微信表情的传输原理

搞清楚了表情的本质,再来说说传输。小黄脸这类文字型表情发送时,传输的只是几个字节的字符代码,所以速度快、不占流量。而表情包这类图片型表情,发送的是完整的图片文件,大小从几十KB到几MB不等,自然就慢一些、费流量一些。

这也是为什么在信号不好的地方,文字消息能发出去,但表情包一直转圈。因为文字数据量小,哪怕信号差也能挤过去;图片数据量大,信号稍微不稳就卡住了。

表情的存储与清理

微信越来越占空间,表情缓存是罪魁祸首之一。我手机里微信占了几十个G,查了一下,光表情相关的缓存就有好几个G。特别是那些动图表情,一个就几MB,看多了手机内存根本扛不住。

清理方法也简单:微信设置-通用-存储空间-缓存-清理。但要注意,清理缓存会删掉一些临时文件,比如没保存到手机相册的表情图片。建议定期清理,但别太频繁。

关于表情的版权问题

很多人不知道,微信表情其实有版权。特别是那些原创表情包,作者是有知识产权的。以前有个朋友把微信里的表情截图发到网上,结果被原作者投诉了。所以建议大家别随意把别人的原创表情拿去商用或者二次传播。

当然,日常聊天用一用完全没问题,微信也允许在聊天范围内使用。但如果是做公众号、做视频、做广告,那就得小心了,最好用无版权表情或者自己制作。

总结一下

回到最初的问题:微信表情是图片还是文字?答案是:既可以是文字,也可以是图片,取决于你用的是哪种表情。系统自带的小黄脸本质是Unicode字符,属于文字;而下载的表情包和自定义表情则是图片文件。

搞清楚了这一点,再遇到表情发不出去、显示异常、占内存这些问题,就能大概知道原因了。希望这篇文章对你有帮助,至少下次再有人问起,你能说出个所以然来。

补充方案

说到微信表情的存储和清理,其实我一直在用一个叫清浊的工具来管理手机里的缓存文件。这个工具能扫描出微信里各种类型的缓存,包括表情图片、聊天图片、视频等,然后分类显示占用空间大小。用起来比较直观,不用像微信自带的清理那样一样一样手动翻。

不过它也有明显的限制:首先只能在安卓系统上用,苹果用户用不了;其次它只能清理手机存储里的缓存,微信内部的聊天记录这些它管不了;另外清理的时候得自己判断哪些能删哪些不能删,它不会帮你自动识别,如果误删了重要的文件就麻烦了。所以我一般只用它来定期扫描看看哪些缓存占空间大,真正清理的时候还是手动选择比较放心。