1.バイナリモードでファイル、書き込みヘッドBOMを開きます。
FILE* pFile = nullptr;
_wfopen_s(&pFile, szLogFilePath, L"wb");
// UTF-16 LE BOM : FFFE
unsigned char bom[] = { 0xFF, 0xFE };
if (pFile)
{
fwrite(bom, sizeof(unsigned char), sizeof(bom), pFile);
fclose(pFile);
}
2.に書き込み、Unicodeとしてファイルを開きます。
FILE* pFile = nullptr;
wchar_t name[] = L"中國哲學書電子化計劃";
_wfopen_s(&pFile, L"C:\\TEMP\\ChineseLetters.txt", L"a,ccs=UNICODE");
if (pFile)
{
fwrite(name, sizeof(wchar_t), sizeof(name), pFile);
fclose(pFile);
}
参考資料
- C-テキストファイル文句を言わない - セーブ・イン・ユニコード - それは-続け省・イン・ANSI
- fopenの-S-wfopen-S
- テキストファイルのエンコーディングを確認する方法