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)按以下方式序列化(十六进制):

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

  • Little endian 字节顺序: FF FE 00 00

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

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

对于提供编码类型的标准,BOM 有些多余。 但是,可以使用它来帮助服务器发送正确的编码标头。 或者,它可以用作回退,以防编码在其他情况下丢失。

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

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

重要

若要确保编码的字节解码正确,应使用前导码作为编码字节的前缀。 请注意, GetBytes 方法不会在编码字节序列前面添加 BOM;开发人员负责在适当的字节流的开头提供 BOM。

适用于