.NET Framework中是否存在公开标准的Encoding.UTF8NoBOM属性?
问题结论
.NET Framework 的公开API中没有提供类似Encoding.UTF8、可直接获取无BOM UTF8编码实例的内置静态属性。
详细说明
- 你提到的
StreamWriter.UTF8NoBOM属于框架内部的非公开属性,业务代码无法直接调用。 - 官方推荐的无BOM UTF8编码实例创建方式为直接调用构造函数:
new UTF8Encoding(false),如果需要频繁使用,可以自行封装静态属性做缓存,避免重复实例化:
public static class CustomEncoding { // 缓存的无BOM UTF8编码实例,行为与StreamWriter内部使用的实例完全一致 public static readonly Encoding UTF8NoBOM = new UTF8Encoding(encoderShouldEmitUTF8Identifier: false, throwOnInvalidBytes: true); }
- 补充说明:
Encoding.UTF8NoBOM公开静态属性是在.NET Core 2.1、.NET 5及更高版本中新增的API,该能力没有被向后兼容到.NET Framework版本。
内容的提问来源于stack exchange,提问作者user2864740
相关产品推荐
相关产品推荐

