品玩

科技创新者的每日必读

打开APP
关闭
微信

微信上“XX撤回一条消息并向你扔了一台锤子手机”的魔法是什么原理

玩法岂止这一种~

翔神

发布于 2016年4月22日

昨天,玩high了!你可能注意到微信群里有人撤回了一条消息,但是撤回的提示好像有哪里不对...

很多人都玩得不亦乐乎,甚至马上就有教程和生成器流了出来。

然而这其实并不是微信更新的一个新功能,于是当大家玩得正开心的时候,微信以迅雷不及掩耳盗铃之势把这个Bug修复了(不过之前修改过的依然可以这样玩)。

我知道你意犹未尽还有些好奇,为什么可以这么玩,又是怎样的一个原理呢?朋友圈有机智的小伙伴给出了这样的解释,我知道你看不懂,我们通俗的解释一下。

我们平时在手机上打出来的字并不是你们简单看到的字,而是由一堆编码组成的。这个编码非常容易被篡改,所以当你修改了编码,呈现出来好像字没变,但实际上最终展示的顺序就会发生变化。所以你会在聊天主页面看见经过这样设置的人发的消息都是反过来的,因为他加入特殊字符后本来呈现出来的就是反的。但是通知栏推送和主界面下这些就是原始的顺序,到聊天界面就会经过编码,呈现出正常的顺序。

当我们撤回一条消息的时候,按照规则就会获取已经被做了手脚的文字中的姓名了,但你又会疑惑,为何会有XX撤回一条消息并XXX这样被分开呢,如果只是单纯反过来展示文字。其实很简单,就是加了一个分隔符,把你的昵称和增加的文字分开。让昵称正常显示,让增加的文字从右往左显示。

电脑看到的过程是这样的:

“小明”撤回了一条消息——>增加自定义文字了饭吃去后然,变成“小明”了饭吃去后然撤回了一条消息——>让自定义的文字从右往左显示,于是这些字就跑到了整句的最后面——>“小明”撤回了一条消息然后去吃饭了

但你可能会觉得为何微信要支持反着来?因为微信是一个国际化的产品,支持阿拉伯语,而阿拉伯语是从右往左读的。为了兼容这种阅读习惯,微信便支持这种转换的字符。所以微信只要禁止昵称修改使用这个让文字翻转的字符就可以了。

那为什么之前没人发现,现在才有人玩?不,之前就可以玩,只是你不知道,而且还有很多种玩法。比如:

还有你们熟悉的瘦子的字体特别小的玩法...(缩小字符!)

这些都是利用了 Unicode 开发出来的各种玩法。如果你懂代码还有创意,还可以开发出各种新的玩法来。

下载品玩App,比99.9%的人更先知道关于「微信」的新故事

下载品玩App

比99.9%的人更先知道关于「微信」的新故事

iOS版本 Android版本
立即下载
翔神

性格恶劣,胆小认生。

取消 发布
AI阅读助手
以下有两点提示,请您注意:
1. 请避免输入违反公序良俗、不安全或敏感的内容,模型可能无法回答不合适的问题。
2. 我们致力于提供高质量的大模型问答服务,但无法保证回答的准确性、时效性、全面性或适用性。在使用本服务时,您需要自行判断并承担风险;
感谢您的理解与配合
该功能目前正处于内测阶段,尚未对所有用户开放。如果您想快人一步体验产品的新功能,欢迎点击下面的按钮申请参与内测 申请内测