1.escape() 不能直接用於URL編碼,它的真正作用是返回一個字元的Unicode編碼值。比如“春節”的返回結果是%u6625%u8282,escape()不對"+"編碼主要用於漢子編碼,現在已經不提倡使用了。 2.encodeURI()是javascript中真正用來對URL編碼的函數。編碼 ...
1.escape() 不能直接用於URL編碼,它的真正作用是返回一個字元的Unicode編碼值。比如“春節”的返回結果是%u6625%u8282,escape()不對"+"編碼主要用於漢子編碼,現在已經不提倡使用了。
2.encodeURI()是javascript中真正用來對URL編碼的函數。編碼整個URL地址,但對特殊含義的符號";/?:@&=+$,#",也不進行編碼。對應的解碼函數是decodeURI()。
3.encodeURIComponent()能編碼";/?:@&=+$,#"這些特殊字元。對應的解碼函數decodeURIComponent()。假如要傳遞帶&符號的網址,所以用encodeURIComponent()
總結,有次需要在前臺傳個"+"符號到後臺中,沒想到到了後臺中自動解碼成了空格,最後查到url中“+”對應的後臺就是空格,空格在前臺會自動變成+傳到後臺,所以開始要對"+"進行編碼,如果確定參數中可能有會有"+"的話,傳值之前首先對它進行encodeURIComponent()對它進行編碼,到後臺取值的時候會變成"+"。