Skip to content

Commit 29b2fbf

Browse files
committed
fix: utf-8 prerender issue
1 parent 1acaced commit 29b2fbf

File tree

2 files changed

+5
-2
lines changed

2 files changed

+5
-2
lines changed

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -1888,7 +1888,7 @@ async function handlePrerender(
18881888
reactRouterConfig,
18891889
viteConfig,
18901890
data
1891-
? { headers: { ...headers, "X-React-Router-Prerender-Data": data } }
1891+
? { headers: { ...headers, "X-React-Router-Prerender-Data": encodeURI(data) } }
18921892
: { headers }
18931893
);
18941894
}

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

+4-1
Original file line numberDiff line numberDiff line change
@@ -79,9 +79,12 @@ export function createStaticHandlerDataRoutes(
7979
// If we're prerendering, use the data passed in from prerendering
8080
// the .data route so we dom't call loaders twice
8181
if (args.request.headers.has("X-React-Router-Prerender-Data")) {
82-
let encoded = args.request.headers.get(
82+
const preRenderedData = args.request.headers.get(
8383
"X-React-Router-Prerender-Data"
8484
);
85+
let encoded = preRenderedData
86+
? decodeURI(preRenderedData)
87+
: preRenderedData;
8588
invariant(encoded, "Missing prerendered data for route");
8689
let uint8array = new TextEncoder().encode(encoded);
8790
let stream = new ReadableStream({

0 commit comments

Comments
 (0)