Java Servlet:";%2B“;被转换成空间
我有一个很简单的问题 我正在形成一个GET请求,如下所示,参数是Java Servlet:";%2B“;被转换成空间,java,servlets,get,getparameter,Java,Servlets,Get,Getparameter,我有一个很简单的问题 我正在形成一个GET请求,如下所示,参数是 para1=abc+xyz 注意这里的“+”符号。现在,当我对其进行url编码时,我得到了para1=abc%2Bxyz。没关系 现在在servlet方面,我有如下代码 String para1 = request.getParameter("para1") para1的内容是abc xyz(注意空格) 它不应该是abc+xyz吗?我希望值与从源代码发送的值相同,而不是混乱的值 它们是等价的。+符号和空格都转换为空格。如果要发
para1=abc+xyz
注意这里的“+”符号。现在,当我对其进行url编码时,我得到了para1=abc%2Bxyz
。没关系
现在在servlet方面,我有如下代码
String para1 = request.getParameter("para1")
para1
的内容是abc xyz
(注意空格)
它不应该是abc+xyz吗?我希望值与从源代码发送的值相同,而不是混乱的值 它们是等价的。+符号和空格都转换为空格。如果要发送文字+符号,则需要对其进行编码。
+
在url解码后解码为空格。如果要传递+
,则需要对其进行编码
爪哇
或
在将参数值发布到URL时,应始终对其进行编码。
您只需要使用
urlcoder.encode(参数值,“UTF-8”)
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);