我有个很简单的问题
我正在形成一个GET请求如下所示,参数是
para1=abc+xyz注意这里的“+”标志。现在,当我对它进行编码时,我得到了para1=abc%2Bxyz。这没什么!
现在,在servlet端,我有如下代码
String para1 = request.getParameter("para1")para1的内容是abc xyz (请注意空格)。
不是应该是abc+xyz吗?我想要的价值是从源头发送的,而不是混乱的一个。
发布于 2015-10-06 08:12:29
+被解码为url decoding之后的空间。如果要传递+,则需要对其进行编码。
Java
String ecodedValue = URLEncoder.encode("abc+xyz", "UTF-8");
String decodedValue = URLDecoder.decode(ecodedValue, "UTF-8");var encoded = encodeURIComponent(str);Javascript
var uri = "my test.asp?name=ståle&car=saab";
var res = encodeURI(uri);或
var res = encodeURIComponent(uri);发布于 2015-10-06 08:07:32
他们是等价物。+符号和空格都被翻译成空格。如果要发送文字+符号,则需要对其进行编码。
发布于 2015-10-06 12:03:18
在将参数值发送到URL时,应始终对其进行编码。你只需要用,
URLEncoder.encode(paramValue,"UTF-8");
https://stackoverflow.com/questions/32964766
复制相似问题