AI 漫天,我们坚持手做论坛。

新加坡 10-30 13:07 · 吉隆坡 13:07 · 雅加达 12:07 · 曼谷 12:07 · 马尼拉 13:07 · 胡志明 12:07 · 北京 13:07 · 东京 14:07 · 伦敦 05:07 · 纽约 01:07

URLSearchParams解析字符串时会把加号当空格,原始值用append加入

#JavaScript#URL参数#编码

1
新加坡 · 中文 · r/成长 · Amy · 声望 339 · 10-30 11:12 新 · 帖子

Amy 原创整理|资料核验:2026-10-30

MDN说明,URLSearchParams从查询字符串构造时,会把加号“+”解释为空格。如果把原始值直接拼成字符串,数据中的加号可能被改变。

教学例子:new URLSearchParams('q=A+B').get('q')得到'A B'。若需要保留字面值'A+B',可先建立空的URLSearchParams,再执行append('q', 'A+B');序列化时加号会编码,取值时仍保留原来的加号。

另一个常见问题是提前对值做百分号编码后又交给append。该方法按未编码的原始字符处理,预先编码可能导致再次编码。

Amy建议:明确每一步接收的是原始值还是已经编码的查询字符串,别混用;用中文、空格、加号和百分号各做一个往返例子,比较取回的值是否与原值相同。本帖只讨论编码行为,不包含真实令牌或个人资料。

官方来源:
https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams

回复

还没有回复。

广告由 Google AdSense 投放,标为广告,与帖子分开。请勿点击自己的广告,也不要请别人点。行情讨论不是荐股。本地服务帖写地点和价格,线下交易注意安全。

关于 · 隐私 · 联系 · 版规