You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

URLSearchParams解析时特殊字符值被截断的问题求助

URLSearchParams解析含特殊字符参数时的截断问题解决

问题描述

当使用URLSearchParams解析包含特殊字符%的查询参数时,出现属性值被截断的情况:

var params = new URLSearchParams("a=2%15&b=balloon");
console.log(params.get('a')); // 输出"2%",预期得到"2%15"

问题原因

URLSearchParams会自动解析URL编码中的转义序列(格式为%xx,xx为两位十六进制字符)。如果参数值里的%是字面意义的字符而非编码前缀,直接写入会被当作转义序列处理,导致原始字符串被错误解析或截断。

解决方案

方案1:手动编码特殊字符

将参数值中的%替换为URL编码后的%25,再传入URLSearchParams:

var params = new URLSearchParams("a=2%2515&b=balloon");
console.log(params.get('a')); // 输出"2%15",符合预期

方案2:使用append方法自动编码

通过URLSearchParams的append方法添加参数,该方法会自动对参数值中的特殊字符进行URL编码,避免手动拼接出错:

var params = new URLSearchParams();
params.append('a', '2%15');
params.append('b', 'balloon');

console.log(params.toString()); // 输出"a=2%2515&b=balloon"
console.log(params.get('a')); // 输出"2%15",符合预期

内容的提问来源于stack exchange,提问作者dev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 14:40:06