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 } Here is my code, when i convert it string into UTF-8, it show a wrong result, so what is wrong with my code?