用了这么多年微信,手机里攒了几百个表情包,有自己收藏的,有群里偷的,还有朋友私发给我的。前几天手机提示存储空间不足,我寻思着把那些不常用的表情清理一下,结果翻遍了手机相册和文件管理,愣是没找到它们到底存在哪儿。后来花了一下午时间研究,总算弄明白了微信表情保存在哪里这个问题。
先说结论:微信表情并没有一个统一的文件夹
不像相册里的照片那样有个明确的DCIM文件夹,微信表情的存放位置其实分好几种情况。我自己的手机是安卓系统,以它为例,苹果手机的逻辑也类似,只是文件路径稍有不同。总的来说,微信表情主要存在三个地方,分别是微信缓存目录、微信收藏文件夹和聊天记录数据库。
第一种:临时表情和GIF动图在缓存文件夹里
平时我们在聊天里发的那些表情,尤其是别人发过来你还没保存的,其实都存放在微信缓存目录下。具体路径一般是:手机内部存储/Android/data/com.tencent.mm/MicroMsg/这个文件夹里。里面有一长串乱码名字的子文件夹,其中某个文件夹下的sns文件夹就是存图片缓存的地方。
不过说实话,这个文件夹里的文件都是加密和重命名过的,你打开看是一堆没有后缀名的文件,根本分辨不出哪个是哪个。而且这个文件夹属于应用私有数据,普通用户就算找到了也打不开,更别说单独把某个表情提取出来了。我试过用第三方文件管理器强行访问,结果只能看到一堆乱码文件,实用性几乎为零。
第二种:自己收藏的表情在收藏文件夹里
如果你在聊天界面长按某个表情,选择了添加到表情,那这个表情就属于你的收藏了。这类表情的存储位置和上面说的缓存不太一样。在MicroMsg文件夹里,有一个专门的子文件夹叫emoji,这里存放的就是你收藏过的表情文件。有趣的是,这些文件虽然也是加密的,但至少能看出来大小和修改时间。
我自己对比了一下,发现这个文件夹里不仅有图片格式的静态表情,还有GIF格式的动图。但问题来了,这些文件同样没有扩展名,想直接复制出来当图片用是行不通的。而且微信为了节省空间,会对收藏的表情做压缩处理,所以就算你提取出来了,画质也比原图差不少。
第三种:聊天记录里的表情藏在数据库里
还有一种情况,就是那些没收藏但出现在聊天记录里的表情。这些表情其实是以二进制数据的形式存储在微信数据库中的。具体来说,在MicroMsg文件夹下有一个名为EnMicroMsg.db的数据库文件,里面有一个表专门记录表情数据。这个数据库是加密的,需要特定的密钥才能打开。
普通用户基本不可能直接读取这个数据库,除非借助专门的微信数据恢复工具或微信聊天记录备份软件。但说实话,这些工具大多收费,而且操作复杂,我试过一次就放弃了。对于只是想清理空间或者保存几个喜欢的表情来说,去翻数据库实在有点大材小用。
为什么在文件管理器里找不到微信表情?
很多朋友和我一样,习惯用手机自带的文件管理器去找文件。但你会发现,在文件管理里根本看不到Android/data这个目录下的内容,因为安卓系统从某个版本开始就限制了应用私有数据的访问权限。这也就是为什么你搜遍手机也找不到微信表情的原因。
另一个原因是微信对表情文件做了加密处理,即使你把文件拷贝到电脑上,用图片查看器也打不开。我试过把缓存文件夹里的文件改成.jpg后缀,结果提示图片已损坏。这说明微信不仅改了文件名,还修改了文件头信息,普通的图片软件根本识别不了。
苹果手机的情况类似但更封闭
如果你用的是iPhone,那情况就更简单了。iOS系统本身就不允许用户直接访问应用沙盒目录,别说微信表情了,就连微信下载的文档都不一定能找到。除非越狱,否则在苹果手机上你无法通过文件管理器看到任何微信内部文件。所以苹果用户想导出微信表情,唯一可行的办法就是逐个长按保存到相册,没有其他捷径。
临时表情的自动清理机制
其实微信对表情的存储策略挺聪明的。那些你在聊天中看到但没有收藏的表情,微信会把它放在缓存目录里,并且设定了一个自动清理的机制。当缓存超过一定大小或者长时间未使用,微信会自动删除这些临时文件。这也就是为什么有时候你翻聊天记录,早期的表情图片会显示加载失败,因为源文件已经被清理掉了。
所以如果你有特别喜欢的表情,最好的办法就是第一时间收藏,否则过段时间可能就再也找不回来了。我自己就吃过这个亏,有个特别搞笑的表情包当时没收藏,后来想找的时候发现已经被微信自动清掉了,后悔莫及。
补充方案:用过的备份工具分享
上面说了这么多,其实都是在解释微信表情的存储机制。如果你只是想偶尔导出几个表情做头像或者发到别的平台,那用手机自带的长按保存功能就够了。但如果你像我一样,想把整个表情包库完整备份出来,那手动操作几乎是不可能的。
后来我在网上找了一圈,发现有个叫备份助手的小工具(这里就不提全名了)可以做到这件事。它的原理是通过模拟微信的登录协议,直接读取你账号下的表情数据,然后批量导出为正常的图片格式。我用过一次,确实能把收藏的几百个表情全部导出来,包括那些加密的GIF动图,导出的画质和原图几乎一样。
不过这个工具有个明显的限制:它只支持安卓手机,而且需要手机已获取root权限才能正常工作。对于大多数没有root的普通用户来说,这个工具基本用不了。另外它的界面比较简陋,操作流程也不算友好,需要一些耐心去摸索。还有一个问题就是它只能导出收藏的表情,聊天记录里那些没收藏的依然无法提取。
总的来说,如果你有root权限且动手能力强,可以试试这个方案。如果你和我一样只是个普通用户,那还是老老实实用长按保存的方式,虽然麻烦了点,但胜在安全可靠。毕竟微信表情这东西,说到底也就是些图片文件,真没必要为了它们费太大劲。