为了生成UTF8无BOM编码的文本文件,字节流必须使用UTF8编码的自定义实例,而不是默认的System.Text.Encoding.UTF8:
1.调用带有False的UTF8Encoding构造函数,因为编码器应该发出UTF8标识符参数。
2.将UTF8Encoding实例传递给stream构造函数。
using (var sink = new StreamWriter("Foobar.txt", false, new System.Text.UTF8Encoding(false))) { sink.WriteLine("..."); }
File.WriteAllText(filepath, context, new System.Text.UTF8Encoding(false));
请注意,只有UTF-8允许省略BOM,而不是UTF-16。
信息网址:http://www.khcha.com/ziyuan/view19847.htm