WriteFile/WriteFileEx写入文件时UTF-16 LE编码变为UTF-8的问题咨询
WriteFile/WriteFileEx写入文件时UTF-16 LE编码变为UTF-8的问题咨询
各位大佬好,我遇到一个编码相关的问题想请教下:我手里的内容是UTF-16 LE编码的,但当我用WriteFile把它写入.txt文件后,打开发现文件变成UTF-8编码了。我用WriteFileEx测试也碰到了同样的问题。
以下是我目前使用的代码:
hFile = CreateFile(TEXT("D:\\clown.txt"), GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); if (hFile == INVALID_HANDLE_VALUE) { wsprintf(buffer, TEXT("ERROR CODE: %i"), GetLastError()); MessageBox(NULL, buffer, TEXT("Error"), MB_OK | MB_ICONERROR); return 0; } MessageBox(NULL, TEXT("hFile was created"), TEXT("Successfully"), MB_OK); sBuff = GetWindowText(hEdit, buffer, BUFFER_SIZE); if (!WriteFile(hFile, buffer, sBuff * 2, &i, NULL)) { wsprintf(buffer, TEXT("ERROR CODE: %i"), GetLastError()); MessageBox(NULL, buffer, TEXT("Error"), MB_OK | MB_ICONERROR); return 0; } wsprintf(buffer, TEXT("%i"), GetLastError()); MessageBox(NULL, buffer, TEXT("Successfully"), MB_OK); CloseHandle(hFile); return 0;
有没有朋友能帮我分析下问题出在哪,或者该怎么调整才能让写入的文件保持UTF-16 LE编码呢?
备注:内容来源于stack exchange,提问作者kseno
相关产品推荐
相关产品推荐

