javascript - encodeURI和encodeURIComponent的區別

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

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

從上面的說明中咱們能夠看出來encodeURIComponent編碼更很一些,被編碼後的字符都變成%xx這樣的16進制形式。php

image

從使用的角度來講:java

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

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

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

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

大體就是這樣了。url

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

關於escape我要說兩點:blog

  1. ECMAScript 3中已經不提倡使用這個函數了,因此咱們仍是少用吧。
  2. escape不會編碼的字符有69個:*,+,-,.,/,@,_,0-9,a-z,A-Z
相關文章
相關標籤/搜索