【问题标题】:Query params seperator differs in Java and Javascript for semicolon查询参数分隔符在 Java 和 Javascript 中的分号不同
【发布时间】:2022-09-23 21:11:13
【问题描述】:

对于这样的 url example.com?head=1&foot=1;id Javascript URLSearchParams 和 Java URLEncodedUtils.parse 返回不同的结果。

我应该考虑哪一个?

Javascript:

let url = new URLSearchParams(\"?head=1&foot=1;id\")
const params = Object.fromEntries(url.entries());
console.log(url) // --> { head: \'1\', foot: \'1;id\' }

爪哇:

 List<NameValuePair> params = URLEncodedUtils.parse(\"head=1&foot=1;id\", StandardCharsets.UTF_8);
 System.out.println(params); // --> [head=1, foot=1, id]
  • Java 和 Javascript 是两种完全不同的语言。这是两个完全不同的代码 sn-ps,因此它们的字符串表示看起来不同也就不足为奇了。你的问题是什么?

标签: javascript java url


【解决方案1】:

看起来你在谈论分号部分。

您使用的URLEncodedUtils 现在是deprecated

分号用于作为查询字符串中的分隔符,类似于&amp; 所做的。

在 1999 年的建议中,W3C 建议所有 Web 服务器都支持分号分隔符和 & 号分隔符,以允许 HTML 文档中的 URL 中的 application/x-www-form-urlencoded 查询字符串,而不必实体转义 & 号。

自 2014 年起,W3C 建议仅使用 & 作为查询分隔符

在这里阅读: https://en.wikipedia.org/wiki/Query_string#Web_forms

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-03-29
    • 2016-10-01
    • 1970-01-01
    • 2012-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多