使用 fopen 打开文件时,我使用 ccs=encoding(如MSDN中所述)将编码设置为 UTF-8。
写入文件时它工作正常
wchar_t* unicode_text = L"こんにちは";
FILE* f = fopen("C:\\test.txt", "w,ccs=UTF-8");
fwprintf(f, L"%s\n", unicode_text);
fclose(f);
当我在文本编辑器中打开文件时,unicode 会按原样显示。但是当尝试从创建的文件中读取时,未检测到 UTF-8 编码:
wchar_t buffer[1000];
FILE* f = fopen("C:\\test.txt", "r,ccs=UTF-8");
fgetws(buffer, 1000, f);
fclose(f);
MessageBoxW(0, buffer, 0, 0);
这将在消息框中显示“ããã«ã¡ã¯”。
为什么会这样?ccs=UTF-8 仅在打开文件进行写入时有效吗?