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 2010 でエラーが発生する => ???????マイクロソフトワード ?????????

答え1

2020年8月17日更新:

Free Clipboard Viewer 3.0のデバッグの助けを借りて、私は発見しました

おそらく、ターゲット アプリケーションはこれを ??? 形式のテキストまたは OEM テキストとして自動的に検出します。これを防ぐために、次のコード行を使用します。

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

文字列の代わりに DataObject を渡すと、英語以外の言語で読み取り可能なテキスト形式のテキスト、OEM テキスト、Unicode テキストである Clipboard オブジェクトが生成される傾向があります。

問題は解決しました。多分。

関連情報