是否可以防止将 BOM 添加到输出 UTF-8 文件中?(Visual Studio 2005)

1 c encoding fopen byte-order-mark utf-8

我需要帮助。我正在编写一个程序,它在没有 BOM 的情况下以 UTF-8 编码打开 2 个源文件。第一个包含英文文本和一些其他信息,包括 ID。第二个只包含字符串 ID 和翻译。该程序通过将英语字符从第二个字符替换为俄语翻译来更改第一个文件中的每个字符串,并将这些字符串写入输出文件。似乎一切正常,但目标文件中出现 BOM。我想创建没有 BOM 的文件,比如源代码。我在文本模式下使用 fopen 函数打开文件,使用 ccs=UTF-8 读取带有 fgetws 函数的字符串到 wchar_t 缓冲区,并使用 fputws 函数写入输出文件

R..*_*R.. 5

不要使用文本模式,不要使用 MSccs=扩展名fopen,不要使用fputws. 而是fopen在二进制模式下使用并自己编写正确的 UTF-8。