From 635262403e71e304e686596a2dced89584beb4c2 Mon Sep 17 00:00:00 2001 From: liubu Date: Sat, 3 Jan 2026 23:44:00 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E4=B8=AD=E6=96=87=20p?= =?UTF-8?q?rompt=20=E6=88=AA=E5=8F=96=E6=97=B6=E7=9A=84=20UTF-8=20?= =?UTF-8?q?=E5=AD=97=E7=AC=A6=E8=BE=B9=E7=95=8C=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 使用 .chars().take(50) 按字符数截取,而不是按字节索引, 避免切到中文字符中间导致 panic --- src-tauri/src/server/handlers/image_handler.rs | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src-tauri/src/server/handlers/image_handler.rs b/src-tauri/src/server/handlers/image_handler.rs index 6fd023018..6641fb1de 100644 --- a/src-tauri/src/server/handlers/image_handler.rs +++ b/src-tauri/src/server/handlers/image_handler.rs @@ -86,18 +86,18 @@ pub async fn handle_image_generation( } // 记录请求日志 + // 安全截取 prompt,避免 UTF-8 字符边界问题 + let prompt_preview: String = request.prompt.chars().take(50).collect(); + let prompt_display = if request.prompt.chars().count() > 50 { + format!("{}...", prompt_preview) + } else { + request.prompt.clone() + }; state.logs.write().await.add( "info", &format!( "[IMAGE] 收到图像生成请求: model={}, prompt={}, n={}, response_format={}", - request.model, - if request.prompt.len() > 50 { - format!("{}...", &request.prompt[..50]) - } else { - request.prompt.clone() - }, - request.n, - request.response_format + request.model, prompt_display, request.n, request.response_format ), );