我已经在 Windows 窗体 [C#] 上开发了应用程序,然后使用复制文本
System.Windows.Form.Clipboard.SetText("โปรแกรม Microsoft Word ใช้งานได้");
发送后keybd_event“Ctrl+V” [user32.dll]。我随机发现了类似这篇文章的“???”文本问题。
在 Windows 上复制粘贴后,Unicode 字符被替换为问号
此“???”问题随机出现在 MS Word 应用程序中,但将文本放入记事本和https://regex101.com/工作正常。
例子 :
Microsoft Word 帮助 => ???????微软 Word ?????????
答案1
2020/8/17更新:
在免费剪贴板查看器 3.0 的调试帮助下,我发现
也许目标应用程序会自动将其检测为???格式的文本或OEM文本。为了防止这种情况,我使用了以下几行代码。
DataObject dataObject = new DataObject(DataFormats.UnicodeText, text);
Clipboard.SetDataObject(dataObject);
由于传递的是 DataObject 而不是字符串,它将倾向于生成剪贴板对象,该对象是文本、OEM 文本和 Unicode 文本,是非英语语言可读的文本格式。
问题解决了。也许。