Ctrl + V pega la cadena UTF-8 del Portapapeles a MS WORD como resultado ??? caracteres

Ctrl + V pega la cadena UTF-8 del Portapapeles a MS WORD como resultado ??? caracteres

Desarrollé una aplicación en formato Windows [C#] y luego copié el texto usando

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

Después de enviarevento_keybd"Ctrl+V" [usuario32.dll]. Encontré al azar "???" Problema de texto como esta publicación.

Los caracteres Unicode se reemplazan por signos de interrogación después de copiar y pegar en Windows

Este "???" El problema ocurre aleatoriamente en la aplicación MS Word, pero al colocar texto en el Bloc de notas yhttps://regex101.com/trabaja bien.

Ejemplo :

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

Respuesta1

Actualizado el 17/8/2020:

Con la ayuda de Free Clipboard Viewer 3.0 para la depuración, descubrí

¿Quizás la aplicación de destino lo detecte automáticamente como Texto o Texto OEM que está en ??? formato. Para evitarlo, utilizo estas líneas de código.

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

Al pasar DataObject en lugar de una cadena, tenderá a generar un objeto Portapapeles, que es texto, el texto OEM y el texto Unicode están en formato de texto legible para idiomas distintos del inglés.

problema resuelto. tal vez.

información relacionada