Skip to content

Commit 8260cf8

Browse files
committed
fix: utf-8 prerender issue
1 parent 83f735b commit 8260cf8

File tree

2 files changed

+10
-2
lines changed

2 files changed

+10
-2
lines changed

packages/react-router-dev/vite/plugin.ts

+6-1
Original file line numberDiff line numberDiff line change
@@ -1856,7 +1856,12 @@ async function handlePrerender(
18561856
reactRouterConfig,
18571857
viteConfig,
18581858
data
1859-
? { headers: { ...headers, "X-React-Router-Prerender-Data": data } }
1859+
? {
1860+
headers: {
1861+
...headers,
1862+
"X-React-Router-Prerender-Data": encodeURI(data),
1863+
},
1864+
}
18601865
: { headers }
18611866
);
18621867
}

packages/react-router/lib/server-runtime/routes.ts

+4-1
Original file line numberDiff line numberDiff line change
@@ -105,9 +105,12 @@ export function createStaticHandlerDataRoutes(
105105
// If we're prerendering, use the data passed in from prerendering
106106
// the .data route so we dom't call loaders twice
107107
if (args.request.headers.has("X-React-Router-Prerender-Data")) {
108-
let encoded = args.request.headers.get(
108+
const preRenderedData = args.request.headers.get(
109109
"X-React-Router-Prerender-Data"
110110
);
111+
let encoded = preRenderedData
112+
? decodeURI(preRenderedData)
113+
: preRenderedData;
111114
invariant(encoded, "Missing prerendered data for route");
112115
let uint8array = new TextEncoder().encode(encoded);
113116
let stream = new ReadableStream({

0 commit comments

Comments
 (0)