小编Kel*_*elv的帖子

C ++文本文件不会保存为Unicode,而是一直保存为ANSI

因此,基本上,我需要能够以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)

c++ unicode text file fwrite

5
推荐指数
1
解决办法
5583
查看次数

标签 统计

c++ ×1

file ×1

fwrite ×1

text ×1

unicode ×1