
Windows Form [C#]에서 응용 프로그램을 개발한 다음 다음을 사용하여 텍스트를 복사했습니다.
System.Windows.Form.Clipboard.SetText("โปรแกรม Microsoft Word ใช้งานได้");
보낸 후keybd_event"Ctrl+V" [user32.dll]. 우연히 "???"를 발견했습니다. 이 게시물과 같은 텍스트 문제입니다.
Windows에서 복사하여 붙여넣은 후 유니코드 문자가 물음표로 대체됩니다.
이것 "???" 문제는 MS Word 응용 프로그램에서 무작위로 발생하지만 메모장에 텍스트를 배치하고https://regex101.com/잘 작동합니다.
예 :
โปप्रม Microsoft Word ใช้้ม้้ => ???????? 마이크로 소프트 워드 ?????????
답변1
2020년 8월 17일 업데이트됨:
Free Clipboard Viewer 3.0의 디버깅 도움말을 통해 저는 다음과 같은 사실을 발견했습니다.
어쩌면 대상 응용 프로그램이 ???에 있는 텍스트 또는 OEM 텍스트로 자동 감지할 수도 있습니다. 체재. 이를 방지하기 위해 다음 코드 줄을 사용합니다.
DataObject dataObject = new DataObject(DataFormats.UnicodeText, text);
Clipboard.SetDataObject(dataObject);
문자열 대신 DataObject를 전달하면 텍스트, OEM 텍스트 및 유니코드 텍스트가 영어가 아닌 언어에서 읽을 수 있는 텍스트 형식인 클립보드 개체가 생성되는 경향이 있습니다.
문제 해결됨. 아마도.