在web開發中,經常會涉及到url傳參的需求,而javascript提供了一個encodeURI方法來對url中的字符串進行編碼處理。下面我們來深入了解一下這個方法。
encodeURI函數可以將url中的字符串進行編碼,對于特殊字符會進行特殊處理,例如空格會被替換成%20,&符號會被替換成%26等。下面我們來看一個簡單的例子:
var str = 'hello world!'; var encodedStr = encodeURI(str); console.log(encodedStr); //hello%20world!
我們可以看到,使用encodeURI對字符串進行編碼處理后,空格被替換成了%20。
對于url中的其他特殊字符,也會有相應的處理方式。下面是一些常見的特殊字符及其對應的編碼方式:
字符 編碼方式 # %23 $ %24 & %26 + %2B , %2C / %2F : %3A ; %3B = %3D ? %3F @ %40
除了encodeURI方法之外,還有一個encodeURIComponent方法。相對來說,encodeURIComponent方法會更加嚴格一些,對不符合規范的字符進行更加嚴格的編碼處理,包括一些常見的用于modem傳輸的控制字符。例如:
var str = 'hello ~world!'; var encodedStr = encodeURIComponent(str); console.log(encodedStr); //hello%20~world%21
可以看到,除了空格被替換為%20之外,字符~也被進行了編碼處理。
在實際使用過程中,我們可能會遇到一些需要解碼的情況,javascript中提供了兩個對應的方法decodeURI和decodeURIComponent。下面是一個簡單的解碼示例:
var str = 'hello%20world!'; var decodedStr = decodeURI(str); console.log(decodedStr); //hello world!
可以看到,將編碼后的字符串解碼之后,空格被恢復為了原本的樣子。
綜上所述,encodeURI是javascript中用于將url中的字符串進行編碼的方法,而decodeURI則是解碼的方法。
上一篇php sql 分頁
下一篇css3d傾斜