分類: C#基礎 使用encodeURIComponent 如str="a+b"; url="sql_str.jsp?sql="+str; 要改爲: url="sql_str.jsp?sql="+encodeURIComponent(str); URL傳值帶加號「+」的問題的解決方法 今天在調試客戶端向服務器傳遞參數時,參數中的「+」所有變成了空格,緣由是URL中默認的將「+」號轉義了。 解決方法以下: 方法1、修改客戶端,將客戶端帶「+」的參數中的「+」所有替換爲「2B%」,這樣參數傳到服務器端時就能獲得「+」了。 方法2、修改服務器端,將空格替換爲「+」,這種方式只適用於參數中有「+」沒有空格的狀況。 例子: String a = reuqest.getParameter("clientStr").replace(' ','+'); 若是客戶端爲clientStr=test+OK,那麼a的值爲test+OK; 方法3、修改服務器端,將獲取參數的方法由reuqest.getParameter改成request.getQueryString().substring(0),而後對獲得的字符串進行解析。 例子: String a =request.getQueryString().substring(0); 若是客戶端爲clientStr=test+OK,那麼a的值爲clientStr=test+OK,須要再解析一下, a=a.substring(10);獲得a的值爲test+OK。 附:一個JS,用來轉義URL中特殊字符的。 function URLencode(sStr) { return escape(sStr).replace(/\+/g, '+').replace(/\"/g,'"').replace(/\'/g, ''').replace(/\//g,'/'); }