UTF32Encoding.Preamble 属性

定义

如果此对象配置为提供一个,则获取以 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+0000U+FEFF)来设置编码字节序列有助于解码器确定字节顺序和转换格式或 UTF。 Unicode 字节顺序标记(BOM)按如下方式序列化(十六进制):

  • 大尾字节顺序:00 00 FE FF

  • 小尾字节顺序:FF FE 00 00

可以通过以下方式实例化 UTF32Encoding 对象,其 Preamble 属性是有效的 BOM:

建议使用 BOM,因为它为文件提供几乎确定的编码,否则会丢失对 UTF32Encoding 对象的引用,例如未标记或未标记的 Web 数据,或者当企业没有国际关注或其他数据时存储的随机文本文件。 通常,如果数据一致且正确标记,则可能会避免用户问题。

对于提供编码类型的标准,BOM 有点冗余。 但是,它可用于帮助服务器发送正确的编码标头。 或者,如果编码丢失,则可以将其用作回退。

使用 BOM 有一些缺点。 例如,了解如何限制使用 BOM 的数据库字段可能很困难。 文件串联也可能是个问题,例如,当文件以这样一种方式合并时,不必要的字符最终会出现在数据中间。 但是,尽管存在少数缺点,但强烈建议使用 BOM。

有关字节顺序和字节顺序标记的详细信息,请参阅 Unicode 主页上的 Unicode 标准版

重要

为了确保正确解码编码的字节,应为编码的字节加上前缀。 请注意,GetBytes 方法不会将 BOM 追加到编码字节序列;在适当的字节流开始时提供 BOM 是开发人员的责任。

适用于