encodeURI和encodeURIComponent有何不同?

encodeURI 適用於正常的普通的 URI 它對於一些保留字不進行編碼。

encodeURIComponent: 該函數處理方式和encodeURI只有一個不同點,那就是對於保留字符同樣做轉義編碼。例如,字符":"被轉義字符"%3A"代替
之所以有上面兩個不同的函數,是因爲我們在寫JS代碼的時候對URI進行兩種不同的編碼處理需求。encodeURI可以用來對完整的URI字符串進行編碼處理。而encodeURIComponent可以對URI中一個部分進行編碼,從而讓這一部分可以包含一些URI保留字符。

這在我們日常編程中是十分有用的。比如下面的URI字符串: http://www.mysite.com/send-to-friend.aspx?url=http://www.mysite.com/product.html
在這個URI字符串中。send-to-friend.aspx頁面會創建HTML格式的郵件內容,裏面會包含一個鏈接,這個鏈接的地址就是上面URI字符串中的url值。顯然上面的url值是URI中的一個部分,裏面包含了URI保留關鍵字符。我們必須調用encodeURIComponent對它進行編碼後使用,否則上面的URI字符串會被瀏覽器認爲是一個無效的URI。正確的URI應該如下: http://www.mysite.com/send-to-friend.aspx?url=http%3A%2F%2Fwww.mysite.com%2Fproduct.html

 

 

詳細出處參考:http://www.jb51.net/article/22880.htm

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章