【发布时间】:2021-08-23 22:42:48
【问题描述】:
我有一个 java servlet 应用程序,我在其中使用 URLDecoder 来解码密码的值
这是我的代码的一部分:
Map<String, String[]> paramMap = request.getParameterMap();
Set<String> keySet = paramMap.keySet();
Iterator<String> iterator = keySet.iterator();
while (iterator.hasNext())
{
String key = iterator.next();
if (!key.equals("_")){
try {
String value = URLDecoder.decode(request.getParameter(key),"UTF-8");
System.out.println("Getting parameter("+ key +" = '" + value +"')");
}
}
如果值包含 '%',则不会被解码
我尝试使用 getQueryString() 返回包含百分比的字符串,但它没有提取特定参数的方法
String requestParamValue = URLDecoder.decode(request.getQueryString(),"UTF-8");
这会返回:
Request raw param decoded is feature=check&userid=xyz@gmail.com&password=Asp%8]a/Asp%8]a/
有什么方法可以让包含'%'的字符串使用request.getParameter(key)解码url
谢谢
【问题讨论】:
-
应该已经被
request.getParameterMap()解码了。您正在解码两次。
标签: java decode encode urldecode