我有一个非常简单的问题
我正在形成一个如下的GET请求,参数是
para1=abc+xyz
注意这里的“+”号。现在,当我对它进行 url 编码时,我得到para1=abc%2Bxyz
. 没关系!
现在在 servlet 方面,我有如下代码
String para1 = request.getParameter("para1")
para1
are的内容abc xyz
(注意空格)。
不应该abc+xyz
吗?我希望该值与从源发送的一样,而不是混乱的值。
我有一个非常简单的问题
我正在形成一个如下的GET请求,参数是
para1=abc+xyz
注意这里的“+”号。现在,当我对它进行 url 编码时,我得到para1=abc%2Bxyz
. 没关系!
现在在 servlet 方面,我有如下代码
String para1 = request.getParameter("para1")
para1
are的内容abc xyz
(注意空格)。
不应该abc+xyz
吗?我希望该值与从源发送的一样,而不是混乱的值。
+
后被解码为空格url decoding
。如果要通过+
,则需要对其进行编码。
爪哇
String ecodedValue = URLEncoder.encode("abc+xyz", "UTF-8");
String decodedValue = URLDecoder.decode(ecodedValue, "UTF-8");
var encoded = encodeURIComponent(str);
var uri = "my test.asp?name=ståle&car=saab";
var res = encodeURI(uri);
或者
var res = encodeURIComponent(uri);
它们是等价的。+ 号和空格都转换为空格。如果要发送文字 + 符号,则需要对其进行编码。
在将参数值发布到 URL 时,您应该始终对其进行编码。你只需要使用编码你的参数值,
URLEncoder.encode(paramValue, "UTF-8");