URL 传+号到后台变空格问题解决方案

客户端向服务器传递参数时,参数中的“+”全部变成了空格,原因是URL中默认的将“+”号转义了

解决方法如下:

  • 1.修改客户端,将客户端带“+”的参数中的“+”全部替换为‍“2b%”,这样参数传到服务器端时就能得到“+”了。

    1
    2
    3
    4
    function URLencode(sStr)
    {
    return escape(sStr).replace(/\+/g, '+').replace(/\"/g,'"').replace(/\'/g, ''').replace(/\//g,'/');
    }
  • 2.修改服务器端,将空格替换为“+”,这种方式只适用于参数中有‍“+”没有空格的情况。

    1
    str.Replace(" ", "+");
  • 3.普通的传参出现乱码问题,可使用encodeURI来转译,它会转译成UTF-8的格式;

    1
    2
    strURL = "search.html?param=" + encodeURIComponent(str);
    strURL = "search.html?param=" + encodeURI(str);