QQ群反向昵称、恶搞昵称的原理

时间:2021-05-08 13:07:38 父亲起名网

想必大家经常会看到用来调戏QQ系统消息的昵称,在手机上会有【xxx撤回了一条消息,并亲了你一口】的神奇效果。本文只简单讨论背后unicode相关的原理,不涉及文本框的显示原理。

我的昵称显示为“gloria汪”,但撤回时会出现这样一条消息:

图1 撤回消息时神奇效果​​​

什么情况?为啥我说话还带“汪”?把这一串神奇的昵称粘贴到unicode字符查询网站上在线查询,我们立马就能看出端倪:

图2 unicode码分析​​​​​​

逮到了!图2中红框和蓝框标识的字符,显示为空字符,对应的Unicode编码值分别为U+202E、U+202D。这两个就是所谓的Unicode控制字符:它们是零宽度字符,简单来说看不见摸不着,但是可以对文本的显示方式进行控制(当然咯Unicode控制字符可不止这两个)。通过查询得知,上述两个字符的作用分别是:

真相大白。那靠它们是如何产生上面的效果的呢?为了便于理解,我们来举个栗子看看其中发生了什么;其中用“|”表示光标位置,用→表示书写方向以及下一个字符出现的位置:

我@gloria并发出了一条消息“【括号里是我的消息】”

文本框的显示过程是:

|→

@|→

@g|→

...

@gloria|→

这时好戏来了,文本框处理到了控制字符“U+202E”,告诉它,现在要从右往左书写

@gloria←|

下一个字符是“汪”,于是:

@gloria←|汪

然后又是一个控制字符“U+202D”微信隐身代码怎么输到名字上,从左向右书写

@gloria|→汪

接下来的事情就很简单了,把我的消息贴在后面

@gloria【|→汪

@gloria【括|→汪

@gloria【括号|→汪

...

@gloria【括号里是我的消息】|→汪

结束~看看结果:

原理很简单,效果也很好玩。接下来大家可以思考几个问题:①如果把“汪”替换成“123”微信隐身代码怎么输到名字上,显示出的文本是什么样的?②如果去掉最后一个从强制左向右控制字符“U+202D”会有什么效果呢?[答案链接]如果这两个问题懂了,恭喜,你可以玩转反向QQ昵称了,Enjoy it~

最后提供两个控制字符以供复制:

U+202E:从右向左强制

U+202D:从左向右强制

读过此篇文章的网友还读过: