Javascript編碼解碼URL

pengjielee發表於2019-10-24

Javascript編碼解碼URL

1. encodeURIComponent()和decodeURIComponent()

encodeURIComponent 轉義除了字母、數字、(、)、.、!、~、*、'、-和_之外的所有字元。

console.log(encodeURIComponent("http://www.w3school.com.cn"));
console.log(encodeURIComponent("http://www.w3school.com.cn/My first/"));
console.log(encodeURIComponent(",/?:@&=+$#"));
console.log(encodeURIComponent("你好"));

output:
http%3A%2F%2Fwww.w3school.com.cn
http%3A%2F%2Fwww.w3school.com.cn%2FMy%20first%2F
%2C%2F%3F%3A%40%26%3D%2B%24%23
%E4%BD%A0%E5%A5%BD
複製程式碼

2. encodeURI()和decodeURI()

encodeURI 會替換所有的字元,但不包括以下字元: 保留字元 ; , / ? : @ & = + $ 非轉義的字元 字母 數字 - _ . ! ~ * ' ( ) 數字符號 #

console.log(encodeURI("http://www.w3school.com.cn"));
console.log(encodeURI("http://www.w3school.com.cn/My first/"));
console.log(encodeURI(",/?:@&=+$#"));
console.log(encodeURI("你好"));

output:
http://www.w3school.com.cn
http://www.w3school.com.cn/My%20first/
,/?:@&=+$#
%E4%BD%A0%E5%A5%BD
複製程式碼

3. 比較

encodeURI()不會對本身屬於URI的特殊字元進行編碼,例如冒號、正斜槓、問號和井字號; encodeURIComponent()則會對它發現的任何非標準字元進行編碼。

encodeURI:適用於url跳轉時。 encodeURIComponent:適用於url作為引數傳遞時。

使用encodeURI()編碼後的結果是除了空格之外的其他字元都原封不動,只有空格被替換成了%20; encodeURIComponent()方法則會使用對應的編碼替換所有非字母數字字元。

4. MDN

developer.mozilla.org/zh-CN/docs/…

developer.mozilla.org/zh-CN/docs/…

相關文章