Encoding.UTF8 与 new UTF8Encoding(false) 有什么区别?

Posted newlives

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Encoding.UTF8 与 new UTF8Encoding(false) 有什么区别?相关的知识,希望对你有一定的参考价值。

 

System.Text.Encoding.UTF8 是一个静态实例,它省略了 BOM,而 new UTF8Encoding(false) 创建的实例是含有 BOM 的。

BOM,即 Byte Order Mark,也即字节流标记,它是用来让应用程序识别所用的编码的。UTF-8 的 BOM 是 0xEFBBBF。

public UTF8Encoding(bool encoderShouldEmitUTF8Identifier),可以看出,如果我们指定参数为 false,表示不省略 BOM;如果为 true,则和 Encoding.UTF8 一样了。注意,在 msdn 上似乎把这个参数的意思解释反了。有兴趣的朋友可以看一看:http://msdn.microsoft.com/zh-cn/community/s064f8w2.aspx

以上是关于Encoding.UTF8 与 new UTF8Encoding(false) 有什么区别?的主要内容,如果未能解决你的问题,请参考以下文章

python文件查询修改

JVM 属性 -Dfile.encoding=UTF8 还是 UTF-8?

JVM 属性 -Dfile.encoding=UTF8 还是 UTF-8?

Encoding.UTF8.GetString 不考虑 Preamble/BOM

JVM属性-Dfile.encoding = UTF8还是UTF-8?

Go中C#的Encoding.UTF8.GetString等价物[关闭]