javascript - encodeURI和encodeURIComponent的區別


這兩個函數功能上面比較接近,但是有一些區別。

  • encodeURI:不會進行編碼的字符有82個 :!,#,$,&,',(,),*,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z,A-Z
  • encodeURIComponent:不會進行編碼的字符有71個:!, ',(,),*,-,.,_,~,0-9,a-z,A-Z

從上面的說明中我們可以看出來encodeURIComponent編碼更很一些,被編碼后的字符都變成%xx這樣的16進制形式。

image

從使用的角度來說:

encodeURI主要用於直接賦值給地址欄時候: 

location.href=encodeURI("http://huangjacky.com/");

而encodeURIComponent主要用於url的query參數:

location.href="http://huangjacky.com/test.php?a="+encodeURIComponent("我就是我");

大致就是這樣了。

這個時候你肯定要說還有個escape函數。

關於escape我要說兩點:

  1. ECMAScript 3中已經不提倡使用這個函數了,所以我們還是少用吧。
  2. escape不會編碼的字符有69個:*,+,-,.,/,@,_,0-9,a-z,A-Z


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM