문제

나는 MultibyTetowidechar를 사용하여 문자열을 Wstring으로 변환하고 있습니다.나는 먼저 내 Wstring에 필요한 크기를 얻으려고 노력하고 있습니다.마지막 주장이이를 수행 할 때 0을 통과하는 문서에 따르면.MultiByteToWideChar(CP_UTF8, MB_COMPOSITE, str.c_str(), -1, nullptr, 0);를 사용하면 0을 Wstring 버퍼의 필수 크기로 반환합니다.Str는 비어있는 문자열도 아닌 문자열임을 확인했습니다.내가 여기서 뭘 잘못하고 있니?

도움이 되었습니까?

해결책

MSDN 문서 에서

UTF-8 또는 코드의 경우 Page 54936 (GB18030, Windows Vista부터 시작), DWFlags는 0 또는 mb_err_invalid_chars로 설정되어야합니다.그렇지 않으면 error_invalid_flags에서 함수가 실패합니다.

CP_UTF8을 사용하고 있지만 MB_COMPOSITE 플래그를 전달하므로 실패한 이유입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top