在我的网页中,提交表单时在文本字段中输入了空格,在后端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()
之类的不错的方法。