想象一個場景,你朋友發一個鏈接讓你打開,但鏈接是下面其中之一,你會不會想錘死他
1. \u0068\u0074\u0074\u0070\u003a\u002f\u002f\u0062\u0069\u006c\u0069\u0062\u0069\u006c\u0069\u002e\u0063\u006f\u006d (Unicode)
2. http%3A%2F%2Fbilibili.com (UTF-8)
3. http\x3A\x2F\x2Fbilibili.com (UTF-16)
如果遇到上面情況,非程序員可能會一臉懵逼,覺得對方在玩自己,但實際這3個鏈接是通過不同方式加密后得到的,
而我們需要對上面鏈接進行解密后才能拿到可訪問的地址
此時,可使用JS提供的decodeURIComponent函數分別對其進行解碼即可,如下
Unicode解碼
UTF-8解碼
UTF16解碼
注:經本人測試,該函數暫不支持 Gzip,Base64,md5,Hex等方式解碼
補充1:事物都是具有雙面性的,有解碼函數,相對的就有編碼函數,encodeURIComponent()
補充2:可能細心的你還會問一個問題,解碼和編碼函數中的URI是什么?
URL大家都不陌生,官方稱為統一定為資源符,俗稱,地址,網址,域名;
URI官方稱為統一資源標識符,可以簡單理解為,URL是URI的子集,相當於父子關系
詳見:https://www.cnblogs.com/gaojing/archive/2012/02/04/2413626.html