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

NextJS 13(Beta)动态路由参数非英文Unicode兼容问题求助

NextJS 13(Beta)动态路由非英语Unicode参数解码方案

在NextJS 13(Beta)的App Router中,使用动态路由参数时,若参数包含英语以外的Unicode语言(如印地语),params.slug会返回URL编码后的字符串,而非原始文本:

  • 路由结构示例:app/shop/[slug]/page.js
  • 访问app/shop/this-is-shop/page.js时,params.slug正常返回this-is-shop;
  • 访问app/shop/यह-दुकान-है/page.js时,params.slug返回%E0%A4%B9-%E0%A4%A6%E0%A5%81%E0%A4%95%E0%A4%BE%E0%A4%A8-%E0%A4%B9%E0%A5%88,而非预期的यह-दुकान-है。

解决方法

使用JavaScript内置的decodeURIComponent()方法对编码后的参数解码,还原原始Unicode文本:

// app/shop/[slug]/page.js
export default function ShopPage({ params }) {
  const decodedSlug = decodeURIComponent(params.slug);
  return <div>当前商品:{decodedSlug}</div>;
}

说明

浏览器会自动对URL中的非ASCII字符进行编码,NextJS传递路由参数时保留了编码结果,因此需要手动解码。该方法适用于所有Unicode语言的路由参数(如中文、印地语等)。

内容的提问来源于stack exchange,提问作者Rajendra A Verma

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 14:11:12