Илья Дударь Asked:2022-05-05 18:58:48 +0000 UTC2022-05-05 18:58:48 +0000 UTC 2022-05-05 18:58:48 +0000 UTC C++,关于ofstream函数的问题[关闭] 772 此函数创建一个文本文件,但是否可以在创建之前在 C++ 中分配不同的编码?该文件是在 UTF-8 中自动创建的,但我希望它使用 ANSI。那么可以做到吗? c++ 1 个回答 Voted Best Answer Alxolo 2022-05-05T19:27:11Z2022-05-05T19:27:11Z 流的流 - 不区分编码和您写入的内容。该文件不包含任何编码符号。这一切都取决于你如何解释它。 如果你想使用编码,那么你需要 std::wofstream、std::locale 和其他 w*streams。 如果文件仅包含 ANSI 字符,则 ANSI 和 UTF-8 中的文件没有区别。ANSI 中的字符代码与相同的 UTF-8 字符匹配。此外,也不为具有 UTF-8 内容的文件创建 BOM(字节顺序标记),因为字节顺序仅在使用字符占用超过一个字节的编码(UTF-16 等)时才有意义。 因此,在使用 fostream 时,您的文件只是一个没有任何编码符号的字节集合,这完全取决于您如何在代码中解释其内容。
流的流 - 不区分编码和您写入的内容。该文件不包含任何编码符号。这一切都取决于你如何解释它。
如果你想使用编码,那么你需要 std::wofstream、std::locale 和其他 w*streams。
如果文件仅包含 ANSI 字符,则 ANSI 和 UTF-8 中的文件没有区别。ANSI 中的字符代码与相同的 UTF-8 字符匹配。此外,也不为具有 UTF-8 内容的文件创建 BOM(字节顺序标记),因为字节顺序仅在使用字符占用超过一个字节的编码(UTF-16 等)时才有意义。
因此,在使用 fostream 时,您的文件只是一个没有任何编码符号的字节集合,这完全取决于您如何在代码中解释其内容。