共用方式為


UnicodeEncoding.Preamble 屬性

定義

取得以 UTF-16 格式編碼的 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)

屬性值

ReadOnlySpan<Byte>

如果這個物件設定為提供 Unicode 位元組順序標記,則為包含 Unicode 位元組順序標記的位元組範圍;否則為預設範圍。

備註

物件 UnicodeEncoding 可以提供前置詞,這是位元組範圍,可以前面加上編碼程式所產生的位元組序列。 在編碼位元組序列前面加上位元組順序標記, (字碼點 U+FEFF) 可協助解碼器判斷位元組順序和轉換格式或 UTF。 Unicode 位元組順序標記 (BOM) 序列化,如下所示 (十六進位) :

  • 大位元組位元組順序: FE FF

  • 位元組順序由小到大: FF FE

您可以用下列方式具現化 UnicodeEncoding 物件,其 Preamble 為有效的 BOM:

建議您使用 BOM,因為它為檔案提供幾乎確定的編碼識別,否則會遺失其編碼的參考,例如未標記或未正確標記的 Web 資料,或當企業沒有國際疑慮時儲存的隨機文字檔。 如果資料一致且已正確標記,通常可能會避免使用者問題。

對於提供編碼類型的標準,BOM 有點重複。 不過,它可用來協助伺服器傳送正確的編碼標頭。 或者,當編碼遺失時,可以使用它做為後援。

使用 BOM 有一些缺點。 例如,瞭解如何限制使用 BOM 的資料庫欄位可能很困難。 檔案串連也可能是問題,例如,當檔案合併時,可能會讓不必要的字元最終出現在資料中間。 不過,雖然有幾個缺點,但強烈建議使用 BOM。

重要

為了確保編碼的位元組已正確解碼,您應該在編碼位元組資料流程開頭加上前置詞。 請注意,方法 GetBytes 不會在編碼位元組序列前面加上 BOM;在適當的位元組資料流程開頭提供 BOM 是開發人員的責任。

適用於