因此,基本上,我需要能够以Unicode创建文本文件,但是我所做的任何事情都会保存在ANSI中。
这是我的代码:
wchar_t name[] = L"???????????";
FILE * pFile;
pFile = fopen("chineseLetters.txt", "w");
fwrite(name, sizeof(wchar_t), sizeof(name), pFile);
fclose(pFile);
Run Code Online (Sandbox Code Playgroud)
这是我的“ chineseLetters.txt”的输出:
-NWòTx[øfû–P[SŠƒR õ2123
Run Code Online (Sandbox Code Playgroud)
此外,该应用程序位于MBCS中,不能更改为Unicode,因为它需要同时使用Unicode和ANSI。
非常感谢您的帮助。谢谢。
感谢您的所有快速回复!有用!
只需添加L“ \ uFFFE ???????????” 仍然没有用,文本编辑器仍然将其识别为CP1252,所以我做了2次fwrite而不是一次,一个是BOM,另一个是字符,这是我的代码:
wchar_t name[] = L"???????????";
unsigned char bom[] = { 0xFF, 0xFE };
FILE * pFile;
pFile = fopen("chineseLetters.txt", "w");
fwrite(bom, sizeof(unsigned char), sizeof(bom), pFile);
fwrite(name, sizeof(wchar_t), wcslen(name), pFile);
fclose(pFile);
Run Code Online (Sandbox Code Playgroud)