encodeURI()
返回值
URIstring 的副本,其中的某些字符將被十六進制的轉義序列進行替換。
說明
該方法會替換所有的字符,但不包括以下字符,即使它們具有適當的UTF-8轉義序列:
- 保留字符 ; , / ? : @ & = + $
- 非轉義的字符 字母 數字 - _ . ! ~ * ' ( )
- 數字符號 #
encodeURIComponent()
返回值
URIstring 的副本,其中的某些字符將被十六進制的轉義序列進行替換。
說明
該方法不會對 ASCII 字母和數字進行編碼,也不會對這些 ASCII 標點符號進行編碼: - _ . ! ~ * ' ( ) 。
區別
encodeURIComponent()
不適合對 http
請求的完整 URI
進行編碼
var queryString = 'http://m.test.com?name=測試&redirect_url=http://home.test.com';
console.log(encodeURI(queryString));
console.log(encodeURIComponent(queryString));
但是,如果需要對 URI
的參數信息進行編碼,encodeURIComponent()
會比較合適,因為 redirect_url
參數的值是需要被編碼的。