一文詳解JavaScript的轉(zhuǎn)碼方式
解碼是前端比較常見(jiàn)的一種操作。
特殊符號(hào)是否編碼
- escape: 不編碼ASCII字母、數(shù)字、標(biāo)點(diǎn)符號(hào)"@ * _ + - . /",對(duì)其他所有字符進(jìn)行編碼。
- encodeURI: 不編碼ASCII字母、數(shù)字、標(biāo)點(diǎn)符號(hào)"; / ? : @ & = + $ , #",對(duì)其他所有字符進(jìn)行編碼。
- encodeURIComponent: 對(duì)所有字符進(jìn)行編碼
轉(zhuǎn)碼結(jié)果
- escape: 輸出字符的Unicode編碼值
- encodeURI: 輸出符號(hào)的utf-8形式,并且在每個(gè)字節(jié)前加上%
- encodeURIComponent: 輸出符號(hào)的utf-8形式,并且在每個(gè)字節(jié)前加上%
tips:
- 但是我們知道,網(wǎng)頁(yè)在提交表單的時(shí)候,如果有空格,則會(huì)被轉(zhuǎn)化為+字符。服務(wù)器處理數(shù)據(jù)的時(shí)候,會(huì)把+號(hào)處理成空格。
注意點(diǎn)
為何解碼最好解兩次
例如筆者常用的解碼方式
function decode(str) { var r = ''; try { r = decodeURIComponent(decodeURIComponent(str)); }catch(e){ try { r = decodeURIComponent(str); } catch(e) { try { r = unescape(str); //Unicode }catch(e) { r = str; } } } return r; }
- 為什么捕抓異常: 其實(shí)decodeURIComponent是會(huì)有時(shí)候會(huì)爆異常的..這個(gè)屬于bug
- 為什么要嘗試兩次編碼、一次編碼、和無(wú)編碼: 因?yàn)榉乐狗?wù)端encode兩次、一次、或者無(wú)編碼
- 為什么要最后unescape,因?yàn)橹挥羞@個(gè)方法能解析Unicode編碼
到此這篇關(guān)于一文詳解JavaScript的轉(zhuǎn)碼方式的文章就介紹到這了,更多相關(guān)JavaScript轉(zhuǎn)碼方式內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
JS實(shí)現(xiàn)面包屑導(dǎo)航功能從零開(kāi)始示例
這篇文章主要為大家介紹了JS實(shí)現(xiàn)面包屑導(dǎo)航功能從零開(kāi)始示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12前端常見(jiàn)的時(shí)間轉(zhuǎn)換方法以及獲取當(dāng)前時(shí)間方法小結(jié)
在做開(kāi)發(fā)時(shí)會(huì)對(duì)不同的時(shí)間格式進(jìn)行轉(zhuǎn)換,下面這篇文章主要給大家介紹了關(guān)于前端常見(jiàn)的時(shí)間轉(zhuǎn)換方法以及獲取當(dāng)前時(shí)間方法的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-01-01javascript實(shí)現(xiàn)將數(shù)字轉(zhuǎn)成千分位的方法小結(jié)【5種方式】
這篇文章主要介紹了javascript實(shí)現(xiàn)將數(shù)字轉(zhuǎn)成千分位的方法,結(jié)合實(shí)例形式分析了5種常用的數(shù)字轉(zhuǎn)換的常用方法,涉及字符串與正則操作的相關(guān)技巧,需要的朋友可以參考下2016-12-12淺談JavaScript變量的自動(dòng)轉(zhuǎn)換和語(yǔ)句
下面小編就為大家?guī)?lái)一篇淺談JavaScript變量的自動(dòng)轉(zhuǎn)換和語(yǔ)句。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-06-06JS實(shí)現(xiàn)二叉查找樹(shù)的建立以及一些遍歷方法實(shí)現(xiàn)
本篇文章主要介紹了JS實(shí)現(xiàn)二叉查找樹(shù)的建立以及一些遍歷方法實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-04-04關(guān)于javascript解決閉包漏洞的一個(gè)問(wèn)題詳解
閉包在JavaScript高級(jí)程序設(shè)計(jì)(第3版)中是這樣描述:閉包是指有權(quán)訪問(wèn)另一個(gè)函數(shù)作用域中的變量的函數(shù),下面這篇文章主要給大家介紹了關(guān)于javascript解決閉包漏洞的一個(gè)問(wèn)題的相關(guān)資料,需要的朋友可以參考下2022-11-11微信小程序?qū)崿F(xiàn)發(fā)送短信驗(yàn)證碼倒計(jì)時(shí)
這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)發(fā)送短信驗(yàn)證碼倒計(jì)時(shí),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-08-08