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 バイト順マークを含むバイトスパン (このオブジェクトが 1 つを指定するように構成されている場合)。それ以外の場合は、既定のスパン。

注釈

オブジェクトは UTF32Encoding プリアンブルを提供できます。これは、エンコード プロセスによって生成されるバイト シーケンスにプレフィックスを付けることができるバイトのスパンです。 エンコードされたバイトのシーケンスの前にバイト順マーク (コード ポイント U+0000U+FEFF) を付けると、デコーダーはバイト順と変換形式 (UTF) を決定するのに役立ちます。 Unicode バイト順マーク (BOM) は、次のようにシリアル化されます (16 進数)。

  • ビッグ エンディアンバイト順: 00 00 FE FF

  • リトル エンディアン バイト順: FF FE 00 00

プロパティが有効な UTF32Encoding BOM であるオブジェクト Preamble は、次の方法でインスタンス化できます。

BOM は、タグなしまたは不適切にタグ付けされた Web データや、企業が国際的な懸念や他のデータを持っていないときに保存されたランダムなテキスト ファイルなど、オブジェクトへの UTF32Encoding 参照を失ったファイルのエンコードのほぼ特定の識別を提供するため、BOM を使用することをお勧めします。 多くの場合、データが一貫して適切にタグ付けされている場合は、ユーザーの問題を回避できます。

エンコードの種類を提供する標準の場合、BOM はやや冗長です。 ただし、このメソッドを使用して、サーバーが正しいエンコードヘッダーを送信できるようにすることができます。 または、エンコードが失われた場合にフォールバックとして使用することもできます。

BOM の使用にはいくつかの欠点があります。 たとえば、BOM を使用するデータベースフィールドを制限する方法を理解することは困難です。 ファイルの連結も問題になることがあります。たとえば、不要な文字がデータの途中で終了するような方法でファイルをマージする場合などです。 ただし、いくつかの欠点がありますが、BOM を使用することを強くお勧めします。

バイト順とバイト順マークの詳細については、unicodeホームページの unicode 標準を参照してください。

重要

エンコードされたバイトが正しくデコードされるようにするには、エンコードされたバイトをプリアンブルでプレフィックスとして付ける必要があります。 メソッドは GetBytes 、エンコードされたバイトシーケンスの先頭に BOM を付加しないことに注意してください。適切なバイト ストリームの先頭に BOM を指定するのは開発者の責任です。

適用対象