你现在的处境很典型:
- 用
encodeURIComponent→ Vercel ISR(Next.js)报 500 - 用
base64→ 浏览器/路由不识别,路径错乱
原因:Vercel/Next.js 的 ISR 对 % 编码路径有解析 bug/限制,尤其在 getStaticPaths 和动态路由里很容易炸。下面给你一套在 Vercel ISR 下稳定可用、中文安全、能正常解码的方案,直接替换就能解决。
✅ 最佳方案:用「安全 Base64」(URL-safe Base64)
把中文转成 URL 安全的 Base64,不是普通 Base64,也不是 encodeURIComponent。
1. 编码(客户端 / 生成路径时)
js// 中文 → URL-safe Base64function encodeSafe(str) {return Buffer.from(str, 'utf8').toString('base64').replace(/\+/g, '-') // + → -.replace(/\//g,
