URL傳值帶加號“+”的問題的解決方法

使用encodeURIComponent

如str="a+b";

url="sql_str.jsp?sql="+str;

要改成:

url="sql_str.jsp?sql="+encodeURIComponent(str);


URL傳值帶加號“+”的問題的解決方法

今天在調試客戶端向服務器傳遞參數時,參數中的“+”全部變成了空格,原因是URL中默認的將“+”號轉義了。

解決方法如下:

方法一、修改客戶端,將客戶端帶“+”的參數中的“+”全部替換爲‍“2B%”,這樣參數傳到服務器端時就能得到“+”了。

方法二、修改服務器端,將空格替換爲“+”,這種方式只適用於參數中有‍“+”沒有空格的情況。

例子:

String a = reuqest.‍getParameter("clientStr")‍.replace('','+');

如果客戶端爲clientStr=test+OK,那麼a的值爲test+OK;

方法三、修改服務器端,將獲取參數的方法由‍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)
{
    returnescape(sStr).replace(/\+/g, '+').replace(/\"/g,'"').replace(/\'/g,''').replace(/\//g,'/');
}          
發佈了103 篇原創文章 · 獲贊 193 · 訪問量 44萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章