Java URL 参数将 %20 替换为空格

2022-09-03 03:52:02

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

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


答案 1

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

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

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

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

如果你使用 servlet API,你不必转义任何东西,因为有很好的方法,比如 getParameterMap()。


答案 2

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


推荐