Post请求数据传到后台+号变成了空格

Posted skyfreedom

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Post请求数据传到后台+号变成了空格相关的知识,希望对你有一定的参考价值。

问题:

  今天遇到一个问题:页面带有"+"号的数据,传到服务端接口,结果+号变成了空格。例如:传“1+1”变成了"1 1"。

解决办法:

  方案一:

    将“+”号替换成“%2B”; 

    例如:

    string name="a+b";
    name = name.replace(‘+‘,‘%2B‘);

 

 

    可能会有多个+号的情况,比如:“a+++b+”

    

while(name.IndexOf(+)>0){
     name = name.replace(+,%2B);  
}

  

  这样就可以解决+号被转化成空格的问题;但是这样看起来并不太好看,效率也不是很高,那就看看第二种方法

  方案二:

  

string name = "a+b";

name = encodeURIComponent(name);

  encodeURIComponent()函数大家可以看一下:

  注意:encodeURIComponent不编码字符有71个:!, ‘,(,),*,-,.,_,~,0-9,a-z,A-Z

以上是关于Post请求数据传到后台+号变成了空格的主要内容,如果未能解决你的问题,请参考以下文章

nodejs POST加号变成了空格

什么时候表单提交的空格全部变成用加号表示了?不是用%20表示的吗?

Ajax请求参数传到后台为空

input name='a.name[]' 这种form.serializeArray()传到php后台怎么取值啊?

url 参数的加号变成空格处理

如何解决Http请求参数中加号变空格问题