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

10-06 15:20