JS 關於 URL 的編碼或解碼方法


URL的合法字符

URL的合法字符表示再瀏覽器的地址欄中不會被轉義的字符,有兩種:

  1. URL元字符:分號(;),逗號(’,’),斜杠(/),問號(?),冒號(:),at(@),&,等號(=),加號(+),美元符號($),井號(#)
  2. 語義字符:a-z,A-Z,0-9,連詞號(-),下划線(_),點(.),感嘆號(!),波浪線(~),星號(*),單引號(),圓括號(()`)

當輸入的字符不符合以上的字符時,瀏覽器就會把該字符轉義,規則:根據操作系統的默認編碼,將每個字節轉為百分號(%)加上兩個大寫的十六進制字母。
比如:當再瀏覽器地址欄中輸入www.baidu.com/q=你好時,會被轉義成例如www.baidu.com/q=%E6%98%A5%E8%8A%82類似的字符串,瀏覽器才會讀取。

JavaScript的四個URL編碼/解碼方法:

encodeURI

將元字符和語義字符之外的字符都進行轉義,一般用於知道該URL只用於完整的URL時使用

encodeURIComponent

將除了語義字符之外的字符進行轉義,包括元字符,因此,它的參數通常是URL的路徑或參數值,而不是整個URL。
比如說,要在谷歌中搜索www.baidu.com/q=5&name時,若使用encodeURI,&字符並不會被轉義,從而改變其真正的URL。

decodeURI

還原轉義后的URL,是encodeURI方法的逆運算。

decodeURIComponent(此方法可以還原被轉義的 url)

還原轉義后的URL片段。是encodeURIComponent方法的逆運算。


免責聲明!

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



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