Ctrl + V вставить строку UTF-8 из буфера обмена в MS WORD результат в символах ???

Ctrl + V вставить строку UTF-8 из буфера обмена в MS WORD результат в символах ???

Я разработал приложение на Windows Form [C#], затем скопировал текст с помощью

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

После отправкиkeybd_event"Ctrl+V" [user32.dll]. Я случайно нашел "???" Текстовую проблему, как в этом посте.

Символы Unicode заменяются вопросительными знаками после копирования и вставки в Windows

Эта проблема "???" случайно возникает в приложении MS Word, но при размещении текста в Блокноте иhttps://regex101.com/работают отлично.

Пример :

Не удалось найти Microsoft Word => ??????? Microsoft Word ?????????

решение1

Обновлено 17/8/2020 :

С помощью Free Clipboard Viewer 3.0 для отладки я обнаружил

Возможно, целевое приложение автоматически определяет его как текст или OEM-текст, который находится в формате ???. Чтобы предотвратить это, я использую эти строки кода.

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

При передаче DataObject вместо строки он будет генерировать объект буфера обмена, который является текстом, текстом OEM и текстом Unicode в читаемом текстовом формате для языков, отличных от английского.

проблема решена. возможно.

Связанный контент