關於 URL 編碼

對於 URL 來講,之因此要進行編碼,是由於 URL 中有些字符會引發歧義。html

不一樣的操做系統、不一樣的瀏覽器、不一樣的網頁字符集都會對 URL 的編碼有影響,形成了 URL 編碼至關混亂的局面,具體對 URL 編碼是怎樣影響的,請參考:阮一峯-關於 URL 編碼,爲了保證客戶端只用一種編碼方法向服務器發出請求,讓服務器獲得的數據是格式一致的,因此咱們採用 JavaScript 先對 URL 進行編碼,再向服務器提交。瀏覽器

JavaScript 有三個對 URL 進行編碼的函數:服務器

escape()

這是最古老的一個編碼函數,目前已經再也不提倡使用了,實際上,escape() 不能直接用於 URL 編碼,它的真正做用是返回一個字符的 Unicode 編碼值,因爲已經再也不提倡使用了,就再也不多說了。函數

encodeURL() 和 decodeURL()

encodeURL() 會對整個 URL 進行編碼,編碼後,它輸出符號的 utf-8 形式,而且在每一個字節前加上 % ;對應的解碼函數式 decodeURL();須要注意的是,它不對單引號 ' 編碼。編碼

encodeURLComponent() 和 decodeURIComponent()

encodeURLComponent() 用於對 URL 的組成部分進行個別編碼,而不用於對整個 URL 進行編碼;如 "; / ? : @ & = + $ , #" ,這些在 encodeURI() 中不被編碼的符號,在encodeURIComponent() 中通通會被編碼;它對應的解碼函數是decodeURIComponent()。url

相關文章
相關標籤/搜索