我有一个文件保存为UTF-8,我正在读它:
ReadFile(hFile, pContents, pFile->nFileSize, &dwRead, NULL);
(pContents是大小为nFileSize的BYTE *)
它只是一个100字节左右的小文件,包含我希望以wchar_t *格式读入内存的文本,因此我可以使用unicode文本设置编辑和静态控件的文本。
如何将字节转换为UTF-8?
编辑(我不想使用fstream或wfstream)
答案 0 :(得分:6)
MultiByteToWideChar
将UTF-8转换为UTF-16(wchar_t)。WideCharToMuliByte
将UTF-16转换为UTF-8。答案 1 :(得分:3)
如果文件是UTF-8并且您将其读入数组 然后它仍然是UTF-8格式,你不需要做任何事情。
答案 2 :(得分:1)
int res2 = WideCharToMultiByte(CP_UTF8, 0, tempBuf.c_str(), -1,
multiByteBuf, lengthOfInputString, NULL, NULL);
int res = MultiByteToWideChar(CP_UTF8, 0, buf, -1, wcharBuf, lengthOfInputString);