UTF-8有两种编码形式:一种带BOM,一种不带。UTF-8 的 BOM 是 0xEFBBBF。System.Text.Encoding.UTF8是一个静态实例,它省略了 BOM。而 new UTF8Encoding(false) 创建的实例是含有 BOM 的。BOM,即 Byte Order Mark,也即字节流标记,它是用来让应用程序识别所用的编码的。
public UTF8Encoding(bool encoderShouldEmitUTF8Identifier),可以看出,如果我们指定参数为 false,表示不省略 BOM;如果为 true,则和 Encoding.UTF8 一样了。
public UTF8Encoding(bool encoderShouldEmitUTF8Identifier),可以看出,如果我们指定参数为 false,表示不省略 BOM;如果为 true,则和 Encoding.UTF8 一样了。