From 61f2dec93a62c2178c19418e2e057ce4a215dfdf Mon Sep 17 00:00:00 2001 From: kdletters Date: Sat, 20 Jun 2026 04:13:44 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A1=A5=E9=BD=90=E6=A1=8C=E9=9D=A2=E5=A3=B3?= =?UTF-8?q?=E5=89=AA=E8=B4=B4=E6=9D=BFUnicode=E6=88=AA=E6=96=AD=E8=A6=86?= =?UTF-8?q?=E7=9B=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 桌面壳剪贴板测试覆盖多字节文本按字符截断 桌面壳配置检查反查剪贴板 Unicode 截断用例 --- apps/desktop-shell/scripts/check-config.mjs | 1 + apps/desktop-shell/src-tauri/src/host_bridge/clipboard.rs | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/apps/desktop-shell/scripts/check-config.mjs b/apps/desktop-shell/scripts/check-config.mjs index af15eb823..d1ffd3d7a 100644 --- a/apps/desktop-shell/scripts/check-config.mjs +++ b/apps/desktop-shell/scripts/check-config.mjs @@ -1882,6 +1882,7 @@ for (const snippet of [ 'read_desktop_clipboard_text(app)', 'normalize_clipboard_text(&text)', 'required_string_payload(request, "text")', + 'truncated.chars().count()', '"text": text', ]) { if (!desktopHostBridgeClipboardSource.includes(snippet)) { diff --git a/apps/desktop-shell/src-tauri/src/host_bridge/clipboard.rs b/apps/desktop-shell/src-tauri/src/host_bridge/clipboard.rs index e7569416d..3658e251a 100644 --- a/apps/desktop-shell/src-tauri/src/host_bridge/clipboard.rs +++ b/apps/desktop-shell/src-tauri/src/host_bridge/clipboard.rs @@ -68,6 +68,11 @@ mod tests { normalize_clipboard_text(&"a".repeat(CLIPBOARD_TEXT_MAX_LENGTH + 10)).len(), CLIPBOARD_TEXT_MAX_LENGTH ); + + let unicode_text = "猫".repeat(CLIPBOARD_TEXT_MAX_LENGTH + 10); + let truncated = normalize_clipboard_text(&unicode_text); + assert_eq!(truncated.chars().count(), CLIPBOARD_TEXT_MAX_LENGTH); + assert!(truncated.ends_with('猫')); } #[test]