有没有办法设置编码.UTF8实例提供BOM为false

本文关键字:BOM false 实例 UTF8 设置 编码 有没有 | 更新日期: 2023-09-27 18:04:25

我知道我们可以通过使用UTF8Encoding(false)创建一个不提供Unicode字节顺序标记的UTF8Encoding实例。但我也遇到了另一种方法来获得UTF8Encoding实例的引用是通过Encoding.UTF8。问题是:我们是否可以将静态Encoding.UTF8实例的提供BOM属性设置为false,或者它将始终提供BOM?

有没有办法设置编码.UTF8实例提供BOM为false

编码方式。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,但这不是一个好主意,原因有很多。