在NextJS中如何将IRI编码转回实际URL?
在Next.js中转回编码后的IRI为原始URL
可以在Next.js中将编码后的IRI转回包含原生非ASCII字符的原始URL,直接使用JavaScript内置的decodeURI()或decodeURIComponent()方法即可,无需额外依赖。
具体实现示例
针对你提供的编码IRI:
const encodedIRI = 'http://localhost:3000/%E0%A4%AF%E0%A4%B9-%E0%A4%A6%E0%A5%81%E0%A4%95%E0%A4%BE%E0%A4%A8-%E0%A4%B9%E0%A5%88'; // 解码完整URL const originalFullURL = decodeURI(encodedIRI); console.log(originalFullURL); // 输出: http://localhost:3000/यह-दुकान-है // 若仅需解码路径部分 const encodedPath = '/%E0%A4%AF%E0%A4%B9-%E0%A4%A6%E0%A5%81%E0%A4%95%E0%A4%BE%E0%A4%A8-%E0%A4%B9%E0%A5%88'; const originalPath = decodeURIComponent(encodedPath); console.log(originalPath); // 输出: /यह-दुकान-है
方法说明
decodeURI():适用于解码完整URL,不会破坏URL中的协议、域名等结构字符(如://、/),仅解码路径中的编码字符。decodeURIComponent():适用于单独解码URL的路径或查询参数部分,会解码所有编码后的字符,注意不要直接用于完整URL,否则可能导致协议、域名部分的特殊字符被错误解码。
Next.js场景适配
不管是客户端组件、服务器组件还是API路由中,都可以直接使用这两个方法,因为它们是JavaScript的标准内置函数,Node.js和浏览器环境均支持。
内容的提问来源于stack exchange,提问作者Rajendra A Verma
相关产品推荐
相关产品推荐

