1. 程式人生 > >javascript對url進行encode的兩種方式

javascript對url進行encode的兩種方式

javascript可以使用的內建函式有

encodeURI()

encodeURIComponent()

他們都是用utf-8的編碼方式

encodeURI(),用來encode整個URL,不會對下列字元進行編碼:+ : / ; ?&。它只會對漢語等特殊字元進行編碼

encodeURIComponent (),用來enode URL中想要傳輸的字串,它會對所有url敏感字元進行encode

在對url做encode操作時,一定要根據情況選擇不同的方法。

例如url = 'www.xxx.com/aaa/bbb.do?parm1=羅'

此時可以用encodeURI(url)

當你的引數中包含+ : / ; ?&請使用 encodeURIComponent 方法對這些引數單獨進行編碼。

例如url = 'www.xxx.com/aaa/bbb.do?parm1=www.xxx.com/ccc/ddd?param=abcd'

encodeURI(url)絕對無法滿足要求,因為param1=www.xxx.com/ccc/ddd?param=abcd,這個引數是不能按照我們的要求encode的,

此時應該這樣單獨對引數進行encode

url = 'www.xxx.com/aaa/bbb.do?parm1=' + encodeURIComponen('www.xxx.com/ccc/ddd?param=abcd')


編碼後的url的值為

www.xxx.com/aaa/bbb.do?parm1=www.xxx.com%2Fccc%2Fddd%3Fparam%3Dabcd

此時接受此請求的服務端就能夠成功取得param1=www.xxx.com/ccc/ddd?param=abcd