UnicodeEncoding.Preamble 屬性
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
取得以 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)
屬性值
如果這個物件設定為提供 Unicode 位元組順序標記,則為包含 Unicode 位元組順序標記的位元組範圍;否則為預設範圍。
備註
物件 UnicodeEncoding 可以提供前置詞,這是位元組範圍,可以前面加上編碼程式所產生的位元組序列。 在編碼位元組序列前面加上位元組順序標記, (字碼點 U+FEFF
) 可協助解碼器判斷位元組順序和轉換格式或 UTF。 Unicode 位元組順序標記 (BOM) 序列化,如下所示 (十六進位) :
大位元組位元組順序:
FE FF
位元組順序由小到大:
FF FE
您可以用下列方式具現化 UnicodeEncoding 物件,其 Preamble 為有效的 BOM:
藉由擷 UnicodeEncoding 取 或 Encoding.BigEndianUnicode 屬性所 Encoding.Unicode 傳回的物件。
呼叫無 UnicodeEncoding() 參數建構函式來具現化 UnicodeEncoding 物件。
藉由提供
true
作為 引數的值byteOrderMark
給 UnicodeEncoding(Boolean, Boolean) 或 UnicodeEncoding(Boolean, Boolean, Boolean) 建構函式。
建議您使用 BOM,因為它為檔案提供幾乎確定的編碼識別,否則會遺失其編碼的參考,例如未標記或未正確標記的 Web 資料,或當企業沒有國際疑慮時儲存的隨機文字檔。 如果資料一致且已正確標記,通常可能會避免使用者問題。
對於提供編碼類型的標準,BOM 有點重複。 不過,它可用來協助伺服器傳送正確的編碼標頭。 或者,當編碼遺失時,可以使用它做為後援。
使用 BOM 有一些缺點。 例如,瞭解如何限制使用 BOM 的資料庫欄位可能很困難。 檔案串連也可能是問題,例如,當檔案合併時,可能會讓不必要的字元最終出現在資料中間。 不過,雖然有幾個缺點,但強烈建議使用 BOM。
重要
為了確保編碼的位元組已正確解碼,您應該在編碼位元組資料流程開頭加上前置詞。 請注意,方法 GetBytes 不會在編碼位元組序列前面加上 BOM;在適當的位元組資料流程開頭提供 BOM 是開發人員的責任。