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

如何阻止JavaScript对URL编码?pushState引发URL异常编码问题

解决pushState导致URL出现%E2%80%8C编码的问题

你遇到的%E2%80%8C是**零宽非连接符(ZWNJ)**的URL编码,这个字符肉眼不可见,但确实藏在你的name变量里——trim()只能去除空格、换行这类常规空白字符,对这种零宽特殊字符完全不起作用。

解决办法

修改name的处理逻辑,在trim()之后再用正则表达式移除所有零宽类特殊字符:

// 先清除常规空白,再移除各类零宽隐藏字符
name = name.trim().replace(/[\u200B-\u200D\uFEFF]/g, '');
const nextState = { additionalInformation: name };
window.history.pushState(nextState, "", my_domain()+"/brands/" + name);

这段正则会匹配并清除以下隐藏字符:

  • \u200B:零宽空格
  • \u200C:零宽非连接符(就是导致你URL异常的元凶)
  • \u200D:零宽连接符
  • \uFEFF:字节顺序标记

处理后name里就不会有这些隐形字符,pushState生成的URL就能和预期一致了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 21:15:35