feat: 修复因为截断导致的宽字符乱码问题

This commit is contained in:
zgs225 2023-04-06 10:24:51 +08:00
parent b1e26a5063
commit 28a9cddb3d

View File

@ -159,7 +159,10 @@ export async function requestChatStream(
if (res.ok) { if (res.ok) {
const reader = res.body?.getReader(); const reader = res.body?.getReader();
const decoder = new TextDecoder(); const decoder = new TextDecoder("utf-8", {
fatal: true,
ignoreBOM: true,
});
options?.onController?.(controller); options?.onController?.(controller);
@ -168,13 +171,12 @@ export async function requestChatStream(
const resTimeoutId = setTimeout(() => finish(), TIME_OUT_MS); const resTimeoutId = setTimeout(() => finish(), TIME_OUT_MS);
const content = await reader?.read(); const content = await reader?.read();
clearTimeout(resTimeoutId); clearTimeout(resTimeoutId);
const text = decoder.decode(content?.value); const text = decoder.decode(content?.value, { stream: !content?.done });
responseText += text; responseText += text;
const done = !content || content.done;
options?.onMessage(responseText, false); options?.onMessage(responseText, false);
if (done) { if (content?.done) {
break; break;
} }
} }