我正在尝试将 C# 字符串数据写入没有字节顺序标记 (BOM) 的 UTF-8 文件,但正在创建一个 ANSI 文件。
using (StreamWriter objStreamWriter = new StreamWriter(SomePath, false, new UTF8Encoding(false)))
{
objStreamWriter.Write("Hello world - Encoding no BOM but actually returns ANSI");
objStreamWriter.Close();
}
根据UTF8Encoding类构造函数的文档,将encoderShouldEmitUTF8Identifier参数设置为 false 应该会禁止字节顺序标记。
我在我的英国 (en-gb) 计算机上使用 .NET Framework 4.5。下面是 ScreenWriter 对象的屏幕截图,显示了UTF8Encoding到位。
那么为什么我从这个操作中得到一个 ANSI 文件(用 Notepad++ 检查)?