我知道我们可以创建一个UTF8Encoding
不提供 Unicode 字节顺序标记的实例,方法是使用UTF8Encoding(false)
. 但我也遇到了另一种获取UTF8Encoding
实例引用的方法是 by Encoding.UTF8
。问题是:我们是否可以将静态Encoding.UTF8
实例的提供 BOM 属性设置为 false,或者它将始终提供 BOM?
问问题
90 次
1 回答
2
Encoding.UTF8 返回一个静态的默认实例,该实例将始终包含 BOM
[__DynamicallyInvokable]
public static Encoding UTF8
{
[TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries"), __DynamicallyInvokable] get
{
if (Encoding.utf8Encoding == null)
Encoding.utf8Encoding = (Encoding) new UTF8Encoding(true);
return Encoding.utf8Encoding;
}
}
我应该注意,该标志存储在一个私有布尔字段中,您可以通过反射将其设置为 false,但这不是一个好主意,原因有很多。
于 2013-03-18T15:28:57.540 回答