Strg + V fügt UTF-8-Zeichenfolge aus der Zwischenablage in MS WORD ein, Ergebnis: ??? Zeichen

Strg + V fügt UTF-8-Zeichenfolge aus der Zwischenablage in MS WORD ein, Ergebnis: ??? Zeichen

Ich habe eine Anwendung auf Windows-Formular [C#] entwickeln, dann kopieren Sie Text mit

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

Nach dem Sendenkeybd_event„Strg+V“ [user32.dll]. Ich habe zufällig ein Textproblem mit „???“ gefunden, wie in diesem Beitrag.

Unicode-Zeichen werden nach dem Kopieren und Einfügen unter Windows durch Fragezeichen ersetzt

Dieses "???"-Problem tritt zufällig in der MS Word-Anwendung auf, aber das Platzieren von Text in Notepad undhttps://regex101.com/funktioniert gut.

Beispiel :

Keine Microsoft Word-Datei vorhanden => ??????? Microsoft Word ?????????

Antwort1

Aktualisiert am 17.08.2020:

Mit Hilfe des Free Clipboard Viewer 3.0 zum Debuggen habe ich herausgefunden

Vielleicht erkennt die Zielanwendung es automatisch als Text oder OEM-Text im ???-Format. Um dies zu verhindern, verwende ich diese Codezeilen.

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

Durch die Übergabe eines DataObjects anstelle eines Strings wird tendenziell ein Clipboard-Objekt generiert, bei dem es sich um Text, OEM-Text und Unicode-Text im lesbaren Textformat für nicht-englische Sprachen handelt.

Problem gelöst. Vielleicht.

verwandte Informationen