이 한국어 텍스트 (quoted-printable)는 "2013-03-22 = 0E? @ HD = 0F 05:30"은 MultiByteToWideChar에 의해 유니 코드로 변환되지 않습니다. 따옴표로 묶어서 인쇄 할 수있는 양식은이 텍스트를 여기에 배치하기위한 것으로 실제로 내용에는 0xE 및 0xF 바이트가 들어 있습니다.MultiByteToWideChar이 일부 한국어 문자를 인식하지 못합니다.
MultiByteToWideChar(50225, 0, bs.pData, bs.nSize, pData + nSize, nConvertedLen);
= 0E? @ HD = 0F는 그대로 변환, 그 결과 유니 코드 0XE 및 0xF입니다 ASCII 문자가 포함됩니다. 그러나 나는이 두 문자 대신 몇 개의 한글 문자가 나타나야한다는 것을 알았다. 필자는 항상 국제 문자 시퀀스가 127보다 큰 코드로 시작한다고 생각했지만 최근에 사실이 아니라고 판명되었습니다. 그러나 MultiByteToWideChar은 여전히 내가 한 것처럼 생각하고 0xE 처리를 거부합니까? @H D 0xF는 50225 (또는 949) 코드 페이지의 비 ASCII 한글 문자로 사용됩니다. Encoding.GetEncoding (50255) .GetString과 같은 .NET 함수를 사용하여 동일한 컴퓨터에서 동일한 작업을 수행 할 때 변환 결과가 올바르게 표시되고 한국어 문자가 있습니다. 하지만 MultiByteToWideChar가 작동하지 않습니다. MultiByteToWideChar (MB_COMPOSITE 등)에 설정할 수있는 다른 플래그를 시도했지만 여전히 운이 없습니다.
MultiByteToWideChar를 제대로 작동 시키려면 어떻게해야합니까? 중요한 점은 WinXP SP3입니다. 다시, .NET 방식으로 잘 작동하고 내부적으로 Encoding.GetString MultiByteToWideChar 호출하는 것 같습니다.