zoukankan      html  css  js  c++  java
  • 微信QQ群里的搞怪


    data:text/html;charset=utf8,
    <script>document.write('微信昵称'+String.fromCharCode(8238)+'撤回后的文字'.split(").revers().join(")+String.fromCharCode(8237))</script>

    8238(202E)代表RLO,强制字符成为从右到左的字符。
    8237(202D)代表LRO, 强制字符成为从左到右的字符。

    小明RLO脸的你了摸并LRO撤回了一条消息
    小明息消条一了回撤LRO并摸了你的脸
    小明撤回了一条消息并摸了你的脸

    ‮股屁的你了踢并‭

    unicode是一种在网页上显示文字的规范。因为它希望显示全世界所有语言的文字,而有些语言的文字是从右往左写的,所以它必须处理这个问题。
    因此它发明了很多控制符,其中一个叫U+202E:“右至左覆盖”。系统在读到这一个控制符的时候,会立刻开始把显示顺序修改为从右到左。
    相对应的,另一个U+202D就是“左至右覆盖”。
    正常情况下,一种文字要么从左到右,要么从右到左,不会混着来。但是如果有人故意要混着玩,就会出现有意思的场景。
    好比说有一个用户叫果壳网,在微信里撤回信息的时候,会显示“果壳网撤回了一条消息”
    现在我改名“果壳网U+202E手短小只一了扔你向并U+202D”
    系统就会试图显示“果壳网U+202E手短小只一了扔你向并U+202D撤回了一条消息”
    它会先依次显示“果壳网”三个字:

    果I
    果壳I
    果壳网I
    (I代表下一个字符将会出现的位置)

    然后它发现了U+202E控制符,得令,开始从右边向左书写了:

    果壳网 I手
    果壳网 I短手
    果壳网 I小短手
    ……
    果壳网 I并向你扔了一只小短手

    然后它又发现了U+202D,恢复正常,又开始从左往右输入了:

    果壳网 撤I 并向你扔了一只小短手
    果壳网 撤回I 并向你扔了一只小短手
    果壳网 撤回了I 并向你扔了一只小短手
    ……
    果壳网 撤回了一条消息 并向你扔了一只小短手

    Success.
    (友情提示:这需要改微信本名,改群昵称没用)
    (不过据说微信服务器端已经封锁了这个符号所以无所谓啦)
    ——————————

    如果你的这个效果是自己写的,那么你肯定知道发生了什么。
    如果你是用网页生成的,比如 ruguoapp.com/unicode.html
    那么查看一下源代码,里面值得注意的就两行
    suffix = reverse(suffix);
    document.write("<h1 style='padding: 100px 100px'>"+name+"‮"+suffix +"‭</p>")

    第一行的作用是把你输入的后缀反序;
    第二行的作用是把这个后缀前后加上所需的控制码。‮ 就是 U+202E,‭就是 U+202D。

     html测试代码

    <html>
    <body>
    下这里为了禁止页面解释,加了-,实际运行去掉即可 
    <br/>
    ABC&-#8238DEF&-#8236G
    <br/>
    小明&-#8238脸的你了摸并&-#8237:撤回了一条消息
    </body>
    </html>

     另补充:qq昵称设置空白  

  • 相关阅读:
    poj 3616 Milking Time
    poj 3176 Cow Bowling
    poj 2229 Sumsets
    poj 2385 Apple Catching
    poj 3280 Cheapest Palindrome
    hdu 1530 Maximum Clique
    hdu 1102 Constructing Roads
    codeforces 592B The Monster and the Squirrel
    CDOJ 1221 Ancient Go
    hdu 1151 Air Raid(二分图最小路径覆盖)
  • 原文地址:https://www.cnblogs.com/xj2015/p/5721360.html
Copyright © 2011-2022 走看看