次の方法で共有


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>

このオブジェクトが 1 つを指定するように構成されている場合は、Unicode バイトオーダーマークを含むバイトスパン。それ以外の場合は、既定のスパン。

注釈

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

  • ビッグ エンディアンバイトオーダー: FE FF

  • リトル エンディアンバイトオーダー: FF FE

有効な UnicodeEncoding BOM を持つ Preamble オブジェクトは、次の方法でインスタンス化できます。

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

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

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

重要

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

適用対象