一、escape
1、特點
- 作用是讓字符串在所有電腦上可讀。
- 編碼之後的效果是%XX或者%uXXXX這種形式。
- 編碼字符範圍: ASCII字母、數字、@*/+,這幾個字符不會被編碼,其餘的都會。
2、適合場合
編碼URL之外的字符串
二、encodeURI
1、特點
- 空格會被編碼成“%20”
- 編碼字符範圍: ASCII字母、數字、~!@#$&*()=:/,;?+’不會被編碼,其它的都會
2、適合場合
因爲encodeURI
不會對URL中的”:”和”/”進行編碼,所以如果需要編碼並使用整個URL,那麼用encodeURI
。
不能用encodeURIComponent
,因爲encodeURIComponent
會將URL中的:
- “:”編碼成”%3A”
- “/”編碼成”%2F”
這樣這個URL就不能訪問。
三、encodeURIComponent
1、特點
- 編碼字符範圍: ASCII字母、數字、~!*()’不會被編碼,其它的都會
- 對比
encodeURI
可以發現encodeURIComponent
比encodeURI
編碼的範圍更大。 encodeURIComponent
會把 http:// 編碼成 http%3A%2F%2F 而encodeURI
卻不會。
2、適合場合
當你需要編碼URL中的參數的時候,那麼encodeURIComponent
是最好方法。
因爲URL參數中的”/”是需要被編碼的,不然在URL中造成一個無效的路徑,影響URL的訪問。
encodeURIComponent
可以對”/”進行編碼,所以適合用來編碼URL中對的參數。
encodeURI
不能對”/”進行編碼,所以它不適合用來編碼URL中的參數。