Java URL参数用空格替换%20

时间:2013-03-05 22:30:13

标签: java url-encoding

在我的网页中提交表单时,如果在文本字段中输入了空格,则在后端java代码中将其读取为%20而不是空格。我可以在后端将%20替换回“”,但我认为这不是正确的方法,它可能发生在应用程序的任何地方。

提交表单时,有没有更好的方法在前端处理它?<​​/ p>

3 个答案:

答案 0 :(得分:20)

那没关系。这是字符在URL中转义的方式。您应该使用URLDecoder,这是特别合适的,因为尽管它的名称是application/x-www-form-urlencoded解码:

String decoded = URLDecoder.decode(queryString, "UTF-8");

然后,您将能够构建一个键/值对映射,解析URL的查询部分,在&上拆分,并使用=将键与值分开(也可能是null)。

但请注意,如果URL作为URI对象传递,则它有一个很好的getQuery(),它已经返回了未转义的文本。

如果使用servlet API,则不必转义任何内容,因为有很好的方法,如getParameterMap()

答案 1 :(得分:11)

您可以通过URLDecoder传递它,这样您不仅可以为%20排序问题,还可以对其他URLEncoded值进行排序http://docs.oracle.com/javase/7/docs/api/java/net/URLDecoder.html

答案 2 :(得分:4)

 try {
         String result = URLDecoder.decode(urlString, "UTF-8");
     } catch (UnsupportedEncodingException e) {
         // TODO Auto-generated catch block
         e.printStackTrace();
     }