UTF8Encoding.Preamble 屬性

定義

取得以 UTF-8 格式編碼的 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 位元組順序標記的位元組範圍;否則為預設範圍。

備註

物件 UTF8Encoding 可以提供前置詞,這是一個位元組範圍,可以首碼為編碼程式所產生的位元組序列。 在編碼位元組序列前面加上位元組順序標記, (字碼點 U+FEFF) 可協助解碼器判斷位元組順序和轉換格式或 UTF。 Unicode 位元組順序標記 (BOM) 序列化為0xEF 0xBB 0xBF。 請注意,Unicode 標準不需要也不建議針對 UTF-8 編碼資料流程使用 BOM。

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

所有其他 UTF8Encoding 物件都會設定為傳回預設範圍,而不是有效的 BOM。

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

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

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

如需位元組順序和位元組順序標記的詳細資訊,請參閱 Unicode 首頁上的 Unicode標準。

重要

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

適用於