之因此對url進行編碼是由於有些字符有特殊的含義。
當URI被做爲參數進行傳輸或排版或受到文字處理程序的處理時,重要的空格可能會消失而且可能引入可有可無的空格。
在查詢字符串中,&符號(&)用做鍵值對之間的分隔符。 若是將&符號放入其中一個值中,它看起來就像值的結尾和下一個鍵的開頭之間的分隔符。
所以對於像這樣的特殊字符,咱們使用百分比編碼,以便咱們能夠確保數據是明確編碼的。
注意:而中文須要進行兩次編碼https://segmentfault.com/q/10...html
該方法不會對 ASCII 字母和數字進行編碼,也不會對這些 ASCII 標點符號進行編碼: - _ . ! ~ * ' ( ) 。專屬url的特殊字符,這些字符指的是除數字字母之外的字符,例如: // / & # 。若是某個url做爲參數傳給服務器,這時,服務器是沒法識別的。這個時候,能夠用encodeURIComponent方法對這個url進行編碼。小程序
該方法不會對 ASCII 字母和數字進行編碼,也不會對這些 ASCII 標點符號進行編碼: - _ . ! ~ * ' ( ) 。segmentfault
若是 URI 組件中含有分隔符,好比 ? 和 #,則應當使用 encodeURIComponent() 方法分別對各組件進行編碼。也就是說,encodeURI對全角日韓漢字起做用。對URL中的特殊字符不作處理,encodeURIComponent()對url中的特殊字符作出來,將他們轉化成對應的ASCII碼
在小程序中的H5經過wx.navigateTo等函數把url做爲參數時,就須要把url進行編碼
附圖
參考:
http://www.w3school.com.cn/js...
http://www.w3school.com.cn/js...
https://www.cnblogs.com/shuiy...服務器