将字节数组转换为UTF-8 unicode

时间:2011-01-08 17:49:10

标签: c++ c winapi unicode utf-8

我有一个文件保存为UTF-8,我正在读它:

ReadFile(hFile, pContents, pFile->nFileSize, &dwRead, NULL);

(pContents是大小为nFileSize的BYTE *)

它只是一个100字节左右的小文件,包含我希望以wchar_t *格式读入内存的文本,因此我可以使用unicode文本设置编辑和静态控件的文本。

如何将字节转换为UTF-8?

编辑(我不想使用fstream或wfstream)

3 个答案:

答案 0 :(得分:6)

答案 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);