這些玩意幾年前還挺流行的,相信有不少朋友也參與其中復(fù)制過。 那么,在大家復(fù)制玩耍的時候,有沒有想過這到底是怎么實現(xiàn)的?在繼續(xù)介紹前,小編得帶大家簡單回憶一下 Unicode 編碼。Unicode( 統(tǒng)一碼、萬國碼、單一碼 )是計算機科學(xué)領(lǐng)域里的一項業(yè)界標(biāo)準(zhǔn),包含字符集和編碼方案。大家都知道,計算機在內(nèi)部運算和存儲的其實都是 0 和 1 ,但是人不可能只看數(shù)字,人要看文字,于是大家就建立了一個由數(shù)字跟文字互換的對應(yīng)標(biāo)準(zhǔn)~比如英文字母 A 對應(yīng)二進制 0110 0001 ,英文字母 B 對應(yīng) 0110 0010 等等。 最開始各國都有各自的編碼方案,畢竟都有自己特色文字嘛,但一陣子時間后發(fā)現(xiàn),亂的一匹!因為同一編碼值在不同編碼體系中代表不同的字,舉個不恰當(dāng)?shù)睦?,?A 電腦上用的是 ASCII 編碼,他發(fā)字母 A 給小 B ,而小 B 電腦上用的是 EBCDIC 編碼,可能識別成了字母 S ,編碼跟解碼的方式不同,雙方交換信息時就產(chǎn)生了誤解。咱們?nèi)粘I钪杏龅降膩y碼,也是編碼跟解碼方式不一致的結(jié)果~為了避免麻煩,方便協(xié)作,大家就約定用統(tǒng)一且唯一的數(shù)字編碼標(biāo)準(zhǔn),這也就是 Unicode 。
Unicode 是一個大家庭,看它名字就知道了,萬國碼!可不得把所有語言中的字符都吸納進來么,這就引發(fā)了很多有趣的事情。 文章開頭提到的 “ 擊穿 ” 屏幕的東西,就是 Unicode 組合字符,它們會附著在前一個非組合字符上。為了讓大家更具象的感受,接下來小編用 Chrome 的開發(fā)者工具來幫助演示。打開瀏覽器按 F12 即可調(diào)出該工具
首先我們輸入字母 A( \u0041 ) ,然后輸入組合字符圓圈 ? ( \u030A ),接著將圓圈重復(fù) 100 個( repeat( 100 ) )。我們輸入:'\u0041' '\u030A'.repeat(100)
組合字符之所以存在主要是為了滿足一些語言、文字中的需要,比如中文有聲調(diào)符號,法文有重音符號,泰文里有聲調(diào)符號跟母音符號。小編撤回了一條消息并親了你的小臉
這個 Bug 一出來的時候,可謂是轟動一時,當(dāng)時各大微信群里大家撤回的不亦樂乎,可惜很快就修復(fù)了。
還有那種,艾特他的微信 ID ,艾特出來是倒過來的,舉個栗子對方 ID 是:ABCDEF ,但是圈出來變成了:FEDCBA 。像我們用的回車、換行等,對文本進行控制的字符,就叫控制字符。控制字符中有兩個哥們,一個叫 RLO ( \U202E ,強制后續(xù)字符從右到左顯示 ),一個叫LRO ( \U202D ,強制后續(xù)字符從左到右顯示 )第二行翻譯過來是 “ 我喜歡你 ” ,我們在開頭加一個 RLO ( \U202E ),可以看到文字變成了 “ 你歡喜我 ” 。控制字符的 “ 玩法 ” 非常多,以前甚至有人用這玩意來偽裝木馬。舉個栗子,你創(chuàng)建一個 exe 文件,命名為 cdtxt.exe,然后重命名,并在 cd 后面插入一個 RLO 控制字符( 從右到左顯示 )。這個時候 exe 文件名會倒過來顯示成 exe.txt ,看上去就像是一個 txt 文件!~就像上面這樣
一般用戶乍一看,哪能想到 txt 后綴的文件也能執(zhí)行起來?結(jié)果一打開直接中招。。。
前面提到的,被微信修復(fù)的「 撤回消息并親了你一下 」的效果也是利用這兩個控制字符,通過兩次調(diào)換方向,將一部分文字調(diào)換到了系統(tǒng)的 「 撤回了一條消息 」后面顯示。控制字符的存在的原因,想必各位朋友已經(jīng)猜到了,雖然大部分語言的書寫習(xí)慣是從左到右寫,但是有些語言是從右到左的,比如阿拉伯語。 最后小編再教大家一手好玩的吧:利用神秘代碼跟朋友表明心聲。首先,找一個中文跟 Unicode 互換的網(wǎng)站,將想說的話轉(zhuǎn)換為 Unicode 。
發(fā)給朋友,讓 TA 長按翻譯,再點擊翻譯進行重譯。哦,對了,不要發(fā)給不解風(fēng)情的人。否則可能會得到一個奇怪的結(jié)果 (╯ ̄Д ̄)╯╘═╛ 來源:差評
編輯:Dannis
近期熱門文章Top10
1. 套娃嗎?你先看這個島中湖中島中湖中島