
我在 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,它們是非英語語言可讀的文字格式。
問題解決了。或許。