今天在除錯客戶端向伺服器傳遞引數時,引數中的「+」全部變成了空格,原因是url中預設的將「+」號轉義了。解決方法如下:網上很多解決方法,但是前提是get請求(或者是post請求後面追加的引數),
讓我試了很久(我是post),沒成功!引以為戒!!
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)
還一種方案 --我用的
encodeuricomponent(querysql);
strurl = "search.do?param=" + encodeuricomponent(str);
普通的傳參出現亂碼問題,可使用encodeuri來轉譯,它會轉譯成utf-8的格式;
strurl = "search.do?param=" + encodeuri(str);
URL 傳 號到後台變空格問題解決方案
今天巧合遇到這個問題,下面是網上找的解決方案。原文 今天在除錯客戶端向伺服器傳遞引數時,引數中的 全部變成了空格,原因是url中預設的將 號轉義了。解決方法如下 方法一 修改客戶端,將客戶端帶 的引數中的 全部替換為 2b 這樣引數傳到伺服器端時就能得到 了。方法二 修改伺服器端,將空格替換為 這種...
解決url傳遞過程中加號變空格的問題
1.第一篇 在接收url引數的過程中,會發現如果引數中存在 號,接收後會變成空格。如11 22接收後變成11 22。要解決這個問題,需要將加號替換為 2b進行傳遞。如11 2b22接收後變成11 22。這種問題經常出現在字串加密傳遞的過程中,這時就需要加密後把所有加號替換成 2b再進行傳遞 2.第二...
nodejs後台亂碼問題解決
最近在學習nodejs,在web前端傳參到後台時,發現中文亂碼,我所有檔案都是utf 8,html也指定了utf 8編碼,但還是亂碼。google了一下,發現了這麼兩個函式encodeuricomponent str decodeuricomponent str 在w3school上的解釋如下 de...