Ctrl + V 將 UTF-8 字串從剪貼簿貼上到 MS WORD 結果是???人物

Ctrl + V 將 UTF-8 字串從剪貼簿貼上到 MS WORD 結果是???人物

我在 Windows 窗體 [C#] 上開發了應用程序,然後使用複製文本

System.Windows.Form.Clipboard.SetText("โปรแกรม Microsoft Word ใช้งานได้");

發送後按鍵事件“Ctrl+V”[user32.dll]。我偶然發現了“???”像這篇文章一樣的文字問題。

在 Windows 上複製和貼上後,Unicode 字元被問號替換

這 ”???”問題隨機出現在 MS Word 應用程式中,但將文字放入記事本中並https://regex101.com/工作正常。

例 :

โปรแกรม Microsoft Word ใช้งานได้ => ??????微軟Word ?????????

答案1

2020 年 8 月 17 日更新:

借助 Free Clipboard Viewer 3.0 的調試幫助,我發現

也許目標應用程式會自動將其檢測為文本或 OEM 文本,位於 ??? 中格式。為了防止這種情況,我使用了這些程式碼行。

DataObject dataObject = new DataObject(DataFormats.UnicodeText, text);
Clipboard.SetDataObject(dataObject);

當傳遞 DataObject 而不是字串時,它會傾向於產生 Clipboard 對象,即 Text、OEM Text 和 Unicode Text,它們是非英語語言可讀的文字格式。

問題解決了。或許。

相關內容