Word 裡 Ctrl+V 丟顏色和字號?不是資料丟了,是預設設定變了
2026-10-27
幾個月前,我們發布了 RDP Clipboard Anchor。它是一款剪貼簿歷史工具,專長在遠端桌面場景:在 RDP 工作階段裡複製的內容,會被它快取錨定在本機,連線中斷也不丟,隨時可以拖拽出來用。它的歷史清單是圍繞這個橋接場景設計的。
今年 5 月,有使用者在 feedback 儲存庫提了一條需求,希望剪貼簿歷史能做分類,常用的條目可以收藏起來。分類和收藏是通用剪貼簿管理的需求,超出了一個 RDP 橋接工具的範圍,它實際上指向另一款產品:面向本機日常使用的剪貼簿管理器。我們在這個方向上立項了 ClipLab。
然後在測試的時候,撞上了這篇文章要說的問題。
說不通的現象
在 Word 裡複製一段帶顏色、字號、粗體、斜體的文字,中途剪貼簿被別的內容覆蓋,再從 ClipLab 的歷史裡把那條記錄找出來貼回 Word。顏色和字號沒了,粗體和斜體還在。
第一個懷疑對象是我們自己:資料在存入的時候丟了一部分,或者寫回去的時候丟了一部分。剪貼簿管理工具的本職就是把內容原樣存起來、原樣還給你,做不到就是 bug。
於是我們先把整條鏈路的資料查了一遍。
先確認資料還在不在
Windows 剪貼簿允許同一個內容以多種格式並存。Word 複製一段文字時,會同時放上去十幾個格式:Rich Text Format、HTML Format、純文字,還有一堆 OLE 原生格式(Embed Source、Native 之類)。
我們寫了個探針指令碼,用裸 Win32 API(OpenClipboard / GetClipboardData)把每個格式的原始位元組逐個抓下來,算好雜湊存檔,然後做了三步對照。
第一步,複製之後從工具的資料庫裡把存的位元組取出來,和剪貼簿上的原始位元組比。HTML Format 逐位元組一致。
第二步,清空剪貼簿,讓工具把那條記錄寫回去,再用探針抓一次。雜湊對上,還是逐位元組一致。
第三步,繞開工具,用探針把 Word 最初的原始位元組直接放回剪貼簿,去 Word 裡貼。
第三步依然丟顏色。資料一個位元組都沒少,Word 還是那個貼法。
Word 的四個貼上選項
資料沒問題,接下來看 Word 的行為。右鍵貼上時能看到 Word 的四個貼上選項,逐個試下來規律很清楚:
| 貼上選項 | 顏色/字號 | 粗體/斜體 |
|---|---|---|
| 保留來源格式 | ✅ | ✅ |
| 使用目的地主題 | ✅ | ✅ |
| 合併格式 | ❌ | ✅ |
| 只保留文字 | ❌ | ❌ |
資料是完整的,Word 完全有能力原樣貼出來,只要顯式點「保留來源格式」。但普通 Ctrl+V 時 Word 自己做了主,走「合併格式」:保留粗斜體,丟掉字型、顏色、字號、字族。和我們的現象對上了。
那 Word 憑什麼決定預設走哪個?我們做了幾輪排除。先是資料角度:把 Word 複製時的全部 16 個格式(包括 Embed Source、Native 等 OLE 原生格式)逐位元組抓下來、原樣回放,照丟;只放 RTF、只放 HTML,也都一樣。再是來源角度:剪貼簿會記錄一個「所有者」,而 Windows 並不校驗 OpenClipboard 傳入的視窗控制代碼屬於誰,於是我們直接傳 Word 主視窗的控制代碼,回放全部格式,再用 GetClipboardOwner 確認所有者已經是 Word 自己的視窗。普通 Ctrl+V,還是合併格式。
中間還繞了段彎路:先懷疑是 RTF 少了慣例的 NUL 結尾,補齊再貼,照丟;想拿寫字板做個對照,發現 Win11 已經把寫字板刪了,改成把 RTF 存成檔案直接用 Word 開啟,格式是全的。
到這裡方向已經明確:資料、來源能試的都試遍了,Word 還是一律合併格式。這不是資料問題,是 Word 對「其他程式來的內容」既有的處理策略。至於它靠什麼區分自家和外來內容,我們沒有繼續深挖,好對結論沒有影響。
真正的開關是一個設定
這個策略落在一個使用者可見的設定上:檔案 → 選項 → 進階 → 剪下、複製與貼上 →「從其他程式貼上」。
2024 年 5 月,Word 團隊在 Microsoft 365 官方部落格公告了 Word 2405 版的這次預設值變更:「從其他程式貼上」從「保留來源格式」改成「合併格式」。也就是說我們什麼都沒配錯,裝完 Word 就是這樣:凡是被歸入「其他程式」的內容,任何協力廠商工具寫回的都算,Ctrl+V 一律降級。
怎麼辦
- 改 Word 設定(推薦):檔案 → 選項 → 進階 → 剪下、複製與貼上,把「從其他程式貼上」改回「保留來源格式」,一勞永逸。這是使用者自己的偏好,不該由工具越俎代庖。
- 右鍵貼上:不改設定的話,右鍵選單裡顯式選「保留來源格式」,每次多一下點選。
- 工具側無解,也不該解:所有剪貼簿管理器在預設配置下都會觸發同樣的降級。資料已經做到了位元組級忠實,再往上就得偽裝成 Word 本尊。那不是貼上增強,是偽裝攻擊。