int main(){
//"Chào" in Vietnamese
wchar_t utf16[] =L"\x00ff\x00fe\x0043\x0000\x0068\x0000\x00EO\x0000\x006F";
//Dump utf16: FF FE 43 0 68 0 E 4F 0 6F (right)
int size = WideCharToMultiByte(CP_UTF8,0,utf16,-1,NULL,0,NULL,NULL);
char *utf8 = new char[size];
int k = WideCharToMultiByte(CP_UTF8,0,utf16,-1,utf8 ,size,NULL,NULL);
//Dump utf8: ffffffc3 fffffbf ffffc3 ffffbe 43 0
}
내 코드는 문자열을 UTF-8로 변환하면 잘못 표시되므로 코드가 잘못되었습니다.WideCharToMultiByte 문제가있는 UTF-16에서 UTF8까지
처음에는 넓은 문자열이 아니더라도 전체 배열을 변환하려고합니다. 0을 포함하고 있습니다. – Deduplicator
또한, unicode는 utf-16의 동의어가 아닙니다. – Deduplicator
@Deduplicator 불행히도 Microsoft는 그렇지 않다고 생각합니다. –