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

如何在JavaScript中正确解码location.pathname中的非ASCII字符

问题原因

unescape 是已被废弃的旧标准函数,仅支持单字节的Latin-1编码解析。你遇到的%C3%BC是字符ü的UTF-8编码百分号转义结果,unescape会把两个字节分别解析为Latin-1字符,因此得到乱码ü。

正确解法

使用JavaScript标准提供的decodeURIComponent()方法解码即可,该方法原生支持UTF-8编码的URI组件解析:

// 直接对location.pathname解码
const originalPath = decodeURIComponent(location.pathname);
// 输出结果:/search/city/Germany:Baden-Württemberg

补充说明

如果你需要解码的是完整URL而非仅路径部分,也可以使用decodeURI()方法,二者的区别是decodeURI()不会解码URL中属于保留字的特殊字符(比如/、:、?等),但在你这个路径解码的场景下,两个方法都可以得到正确结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 04:06:09