URL传带有特殊字符的参数时,特殊字符丢失问题
2018-02-09 11:00
288 查看
之前遇到一个问题,在URL中传参时,参数中有+号,到后台用getParameter()接收时,将+号解析为了空格(即url传“hello+world”时,后台接收的数据是“hello world”)。网上查了一下,原来url不能直接传特殊字符,否则后台会取不到正确的值。因此我们在处理url传特殊字符时,需要做特殊处理。
例如对于+号这种问题我们可以这样处理:
1、在客户端时对URL中的特殊字符先处理一下,然后再传到后台:
用replace函数替换特殊字符var paramStr = "hello+world+hello+world";
//paramStr = paramStr.replace('+', '%2B');//这种方法不推荐,因为这种方法只能替换第1个+号
paramStr = paramStr.replace(/\+/g, '%2B');//这种方法可以将字符串中所有+号替换但是,如果需要多个特殊字符一起处理时,特殊字符中有“%”,则需要先处理“%”再处理其他字符。
其中特殊字符(部分)对应的编码如下:
+ ----》 %2B
空格 ----》 %20
/ ----》 %2F
? ----》 %3F
% ----》 %25
# ----》 %232、在客户端中对URL中的+号不处理,在后台接收时将接收的空格替换为+号(但这种处理方式只适用于URL中有+号,没空格的情况)。
例如对于+号这种问题我们可以这样处理:
1、在客户端时对URL中的特殊字符先处理一下,然后再传到后台:
用replace函数替换特殊字符var paramStr = "hello+world+hello+world";
//paramStr = paramStr.replace('+', '%2B');//这种方法不推荐,因为这种方法只能替换第1个+号
paramStr = paramStr.replace(/\+/g, '%2B');//这种方法可以将字符串中所有+号替换但是,如果需要多个特殊字符一起处理时,特殊字符中有“%”,则需要先处理“%”再处理其他字符。
其中特殊字符(部分)对应的编码如下:
+ ----》 %2B
空格 ----》 %20
/ ----》 %2F
? ----》 %3F
% ----》 %25
# ----》 %232、在客户端中对URL中的+号不处理,在后台接收时将接收的空格替换为+号(但这种处理方式只适用于URL中有+号,没空格的情况)。
相关文章推荐
- 【.Net】关于URL传值多个参数以及特殊字符的问题
- URL ajax 传递带有特殊符号参数的问题
- 密码中有特殊的字符IOS如何处理 IOS中URL包含中文参数的问题
- 密码中有特殊的字符IOS如何处理 IOS中URL包含中文参数的问题
- 密码中有特殊的字符IOS如何处理 IOS中URL包含中文参数的问题
- 前台向后台传递参数时,特殊字符(+、-)丢失的问题
- iOS 密码中有特殊的字符IOS如何处理 IOS中URL包含中文参数的问题
- URL传含特殊字符参数的问题
- URL的参数中有加号传值变为空格的问题(URL特殊字符)
- GET重定向url带特殊字符参数拼接问题的解决
- ajax 中关于URL路径及参数特殊字符问题
- URL的参数中有加号传值的问题(URL特殊字符)
- URL参数中带有特殊字符+,空格,/,?,%,#,&,=的处理
- 编码问题之URL中特殊字符(ѐ等)
- JAVA中无法处理带有特殊字符文件名的zip包的问题解决
- url 传递参数(特殊字符)解决方法
- 用URL传参带特殊字符,特殊字符丢失(encode)
- 地址栏中传递带有特殊字符的参数,进行转义。
- URL请求后台获取不到特殊字符的参数
- aspnetpager多参数URL重写在webconfig中, "&"这个字符的问题,&转义失败