一个有趣的 QQ 群名片

前几天我在 QQ 群看到一个有趣的群名片,我聊天窗口的显示模式是文本模式,非气泡模式,所以为了区分不同群员发送的消息,系统会标注该名群员的群名片、QQ 号码和发送的时间。即假设一名 QQ 号码为 "123456" ,群名片为 "二蛋" 的群友在 11:11:11 发送了一条内容为 "光棍节快乐!" 的消息,那么在窗口上就会显示:

二蛋(123456)  11:11:11
光棍节快乐!

但我发现其中有一名群友发送信息显示的是:

echo '(123456)  11:11:11';
光棍节快乐!

可以看到,这家伙的发送时间后面居然还有文字,配合上适当的昵称就变成了上面这样一条语句一样,相当有趣。于是我复制了他的群名片来琢磨一下,为了方便查看,我把它这样展示出来:

image-20191103004803357

从这里可以清晰的看到,这个群名片包含了两个控制字符,82388237,其中 8238 这个字符是 LEFT-TO-RIGHT OVERRIDE 意思是从这里开始右边的字符从右往左排,如:

image-20191103005255544

而 8237 是 LEFT-TO-RIGHT OVERRIDE ,如:

image-20191103005337571

我们可以发现并没有变化,因为我们本来的字符就是从左往右排。而上面那位群友的群名片正是通过这两个控制字符的使用来呈现了开头描述的效果:

image-20191103005640968

如果不要 8237 ,会是怎样的效果呢?我们来看看(为了效果更明显,我把时间更换了一下,更换为 23:45:56 ):

image-20191103010005527

你会发现没有了 8237 之后,引号里的 QQ 号码和发送时间倒序了,所以这就是 8237 的作用,将文字正序回来。

最后附上这个有趣的群名片:

echo '‮;'‭

你可以复制上面这段文字,然后修改。也可以在复制下面这段到浏览器地址栏上,然后回车,Ctrl + A 全选,将它作为你的群名片即可。其中 echo ''; 这两个内容是可以随便修改的。

data:text/html;charset=utf8,<script>document.write("echo '" + String.fromCharCode(8238) + "';".split('').reverse().join('') + String.fromCharCode(8237))</script>

 

下面是一些资料:

LEFT-TO-RIGHT OVERRIDE (Left-to-Right Override [LRO] ): http://www.fileformat.info/info/unicode/char/202d/index.htm

LEFT-TO-RIGHT OVERRIDE ( Left-to-Right Override [LRO] ): http://www.fileformat.info/info/unicode/char/202d/index.htm

发表回复