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) 有什么区别?的主要内容,如果未能解决你的问题,请参考以下文章
JVM 属性 -Dfile.encoding=UTF8 还是 UTF-8?
JVM 属性 -Dfile.encoding=UTF8 还是 UTF-8?
Encoding.UTF8.GetString 不考虑 Preamble/BOM