#define _CRT_SECURE_NO_WARNINGS #include #include int main() { const char* filename = "output.txt"; const wchar_t* text = L"こんにちは、世界!"; // ワイド文字列からUTF-8文字列への変換 int size_needed = WideCharToMultiByte(CP_UTF8, 0, text, -1, NULL, 0, NULL, NULL); char* utf8_text = (char*)malloc(size_needed); if (utf8_text == NULL) { printf("メモリ割り当てエラーが発生しました。\n"); return 1; } WideCharToMultiByte(CP_UTF8, 0, text, -1, utf8_text, size_needed, NULL, NULL); // ファイルを書き込みモードで開く FILE* file; if (fopen_s(&file, filename, "wb") != 0) { printf("ファイルを開くことができませんでした。\n"); free(utf8_text); return 1; } // BOMなしのUTF-8のためにカスタムのBOMシーケンスを書き込む // BOMなしのUTF-8には特定のシーケンスがありませんが、空のBOMシーケンスを使用することができます const char empty_bom[3] = { 0, 0, 0 }; fwrite(empty_bom, 1, 3, file); // UTF-8テキストをファイルに書き込む fputs(utf8_text, file); // ファイルを閉じる fclose(file); // メモリの解放 free(utf8_text); return 0; }