URL 包含阿拉伯字符的 Nuxtjs SSR 错误 "Request path contains unescaped characters"

Nuxtjs SSR error "Request path contains unescaped characters" for URL containing arabic characters

对于nuxt使用SSR时,包含阿拉伯字符的URL会报错:"Request path contains unescaped characters"

示例:当导航到 SSR 的“http://localhost:4000/خضار-بخلطة-الطماطم”时,我得到以下信息:

TypeError [ERRUNESCAPEDCHARACTERS]
Request path contains unescaped characters

URI : /%D8%AE%D8%B6%D8%A7%D8%B1-%D8%A8%D8%AE%D9%84%D8%B7%D8%A9-%D8%A7%D9%84%D8%B7%D9%85%D8%A7%D8%B7%D9%85

REQUEST METHOD | GET
HTTP VERSION | 1.1
CONNECTION | keep-alive

注意:客户端渲染工作正常

vue-router 中存在一个错误,会阻止非 unicode url 在初始页面加载时正常工作。已合并到vue router中,但尚未发布

https://github.com/vuejs/vue-router/pull/2375

一旦发布新的 vue-router 版本,修复将合并到 nuxt -> https://github.com/nuxt/nuxt.js/pull/3841

在 asyncData 中,我正在执行一个使用 context.params.slug 的 API 调用。 paramas 不是 UTF-8 编码的,所以我添加了:encodeURIComponent(context.params.slug), 这样我就不再收到错误