UTF32Encoding.Preamble 属性
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
如果此对象配置为提供一个,则获取以 UTF-32 格式编码的 Unicode 字节顺序标记。
public:
virtual property ReadOnlySpan<System::Byte> Preamble { ReadOnlySpan<System::Byte> get(); };
public override ReadOnlySpan<byte> Preamble { get; }
member this.Preamble : ReadOnlySpan<byte>
Public Overrides ReadOnly Property Preamble As ReadOnlySpan(Of Byte)
属性值
如果此对象配置为提供一个字节,则包含 Unicode 字节顺序标记的字节范围;否则为默认范围。
注解
UTF32Encoding 对象可以提供一个前言,它是一个字节范围,可以前缀为编码过程生成的字节序列。 使用字节顺序标记(代码点 U+0000
U+FEFF
)来设置编码字节序列有助于解码器确定字节顺序和转换格式或 UTF。 Unicode 字节顺序标记(BOM)按如下方式序列化(十六进制):
大尾字节顺序:
00 00 FE FF
小尾字节顺序:
FF FE 00 00
可以通过以下方式实例化 UTF32Encoding 对象,其 Preamble 属性是有效的 BOM:
通过检索 Encoding.UTF32 属性返回的 UTF32Encoding 对象。
通过调用无参数 UTF32Encoding() 构造函数来实例化 UTF32Encoding 对象。
通过将
true
作为byteOrderMark
参数的值提供给 UTF32Encoding 和 UTF32Encoding 构造函数。
建议使用 BOM,因为它为文件提供几乎确定的编码,否则会丢失对 UTF32Encoding 对象的引用,例如未标记或未标记的 Web 数据,或者当企业没有国际关注或其他数据时存储的随机文本文件。 通常,如果数据一致且正确标记,则可能会避免用户问题。
对于提供编码类型的标准,BOM 有点冗余。 但是,它可用于帮助服务器发送正确的编码标头。 或者,如果编码丢失,则可以将其用作回退。
使用 BOM 有一些缺点。 例如,了解如何限制使用 BOM 的数据库字段可能很困难。 文件串联也可能是个问题,例如,当文件以这样一种方式合并时,不必要的字符最终会出现在数据中间。 但是,尽管存在少数缺点,但强烈建议使用 BOM。
有关字节顺序和字节顺序标记的详细信息,请参阅 Unicode 主页上的 Unicode 标准版。
重要
为了确保正确解码编码的字节,应为编码的字节加上前缀。 请注意,GetBytes 方法不会将 BOM 追加到编码字节序列;在适当的字节流开始时提供 BOM 是开发人员的责任。