我正在使用jsps,在我的网址中,我有一个变量值,例如“L& T”。现在,当我尝试使用request.getParameter
检索它的值时,我只得到“L”。它承认“&”作为分隔符,因此不会被视为整个字符串。
如何解决这个问题?
答案 0 :(得分:16)
java.net.URLEncoder.encode("L & T", "utf8")
这将输出URL编码,这可以作为GET参数:
L+%26+T
答案 1 :(得分:1)
网址中的文字符号应编码为:%26
// Your URL
http://www.example.com?a=l&t
// Encoded
http://www.example.com?a=l%26t
答案 2 :(得分:1)
您需要“URL编码”参数以避免此问题。 URL查询字符串的格式为:
...?<name>=<value>&<name>=<value>&<etc>
所有<name>
和<value>
都需要进行URL编码,这基本上意味着将所有可能被错误解释的字符(如&amp;)转换为%-escaped值。有关更多信息,请参阅此页面:
http://www.w3schools.com/TAGS/ref_urlencode.asp
如果您使用Java 生成问题URL,则使用以下方法:
String str = URLEncoder.encode(input, "UTF-8");
在其他位置生成URL(某些模板或JS或原始标记),您需要在源处修复问题。
答案 3 :(得分:0)
您可以使用 Spring Web 中的UriUtils#encode(String source, String encoding)
。此实用程序类还提供仅对URL的某些部分进行编码的方法,如UriUtils#encodePath
。