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
没有什么优雅的代码比空代码的执行效率更高