4 回答

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超6個贊
你有三個選擇:
escape()
不會編碼:@*/+
encodeURI()
不會編碼:~!@#$&*()=:/,;?+'
encodeURIComponent()
不會編碼:~!*()'
但在你的情況下,如果你想將URL傳遞給GET
其他頁面的參數(shù),你應(yīng)該使用escape
或encodeURIComponent
,但不是encodeURI
。
請參閱Stack Overflow問題最佳實(shí)踐:escape或encodeURI / encodeURIComponent以供進(jìn)一步討論。

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超7個贊
堅(jiān)持下去encodeURIComponent()
。該函數(shù)encodeURI()
不打算編碼在URL中具有語義重要性的許多字符(例如“#”,“?”和“&”)。escape()
不推薦使用,并且不打算編碼“+”字符,這些字符將被解釋為服務(wù)器上的編碼空格(并且,正如其他人所指出的那樣,不能對非ASCII字符進(jìn)行正確的URL編碼)。
對于encodeURI()
和encodeURIComponent()
其他地方之間的區(qū)別有一個很好的解釋。如果要對某些內(nèi)容進(jìn)行編碼以便可以安全地將其作為URI的一個組件包含在內(nèi)(例如作為查詢字符串參數(shù)),則需要使用encodeURIComponent()
。
添加回答
舉報(bào)