在我的网页中,当提交表单并在文本字段中输入空格时,它在后端 Java 代码中被读取为 %20 而不是空格。我可以在后端将 %20 替换回“”,但我认为这不是正确的方法,它可能发生在应用程序的任何地方。
提交表单时,有没有更好的前端处理方式?
最佳答案
这并没有错。这就是在 URL 中转义字符的方式。你应该使用 URLDecoder
,这是特别合适的,因为尽管它的名字如此,但它执行 application/x-www-form-urlencoded
解码:
String decoded = URLDecoder.decode(queryString, "UTF-8");
然后您将能够构建一个键/值对映射,解析 URL 的查询部分,在 &
上拆分,并使用 =
分隔来自值的键(也可以是 null
)。
但是请注意,如果 URL 作为 URI
对象传递,它有一个很好的 getQuery()
它已经返回未转义的文本。
如果您使用 servlet API,则不必转义任何内容,因为有像 getParameterMap()
这样的好方法.
关于Java URL 参数用空格替换 %20,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15235400/