Java URL 参数用空格替换 %20

标签 java url-encoding

在我的网页中,当提交表单并在文本字段中输入空格时,它在后端 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/

相关文章:

swift - 为什么 String.addingPercentEncoding() 的返回值是可选的?

Javascript:正则表达式用十六进制代码替换一些字符

javascript - 具有任意字符的 AngularJS 路由参数

java - 如何通过多个可能值找到实体列表(使用或在 Spring Data 中)

java - 为什么我无法获取在 Wildfly 配置中添加的缓存?

java - 将 Quarkus 应用于非 Maven、非 Gradle Java 项目

java - 如何在 Spring Boot JPA 中连接到多个数据库?

PHP 通过 URL 发送加密数据

url - URL 百分比编码是否区分大小写?

java - 如何在等效的 Scala 中转换 Java foreach 循环?