UTF32Encoding.Preamble プロパティ
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
UTF-32 形式でエンコードされた Unicode バイトオーダー マークを取得します (このオブジェクトが UTF-32 形式を指定するように構成されている場合)。
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+0000
U+FEFF
) で前に付けると、デコーダーがバイトオーダーと変換形式 (UTF) を決定するのに役立ちます。 Unicode バイトオーダー マーク (BOM) は、次のようにシリアル化されます (16 進数)。
ビッグ エンディアンバイトオーダー:
00 00 FE FF
リトル エンディアン バイト順:
FF FE 00 00
次の方法で、Preamble プロパティが有効な BOM である UTF32Encoding オブジェクトをインスタンス化できます。
Encoding.UTF32 プロパティによって返される UTF32Encoding オブジェクトを取得します。
パラメーターなしの UTF32Encoding() コンストラクターを呼び出して、UTF32Encoding オブジェクトをインスタンス化します。
UTF32Encoding および UTF32Encoding コンストラクターに
byteOrderMark
引数の値としてtrue
を指定します。
BOM は、タグ付けされていない Web データや不適切なタグ付けされた Web データなどの UTF32Encoding オブジェクトへの参照を失ったファイルや、企業が国際的な懸念や他のデータを持っていないときに格納されたランダムテキスト ファイルなど、エンコードのほぼ一定の識別を提供するため、BOM を使用することをお勧めします。 多くの場合、データが一貫して適切にタグ付けされている場合、ユーザーの問題は回避される可能性があります。
エンコードの種類を提供する標準の場合、BOM はやや冗長です。 ただし、サーバーが正しいエンコード ヘッダーを送信するのに役立ちます。 または、エンコードが失われた場合のフォールバックとして使用することもできます。
BOM を使用するには、いくつかの欠点があります。 たとえば、BOM を使用するデータベース フィールドを制限する方法を知ることは困難な場合があります。 ファイルの連結は、たとえば、不要な文字がデータの途中に入り込むような方法でファイルをマージする場合にも問題になる可能性があります。 ただし、いくつかの欠点があるにもかかわらず、BOM の使用を強くお勧めします。
バイトオーダーとバイトオーダーマークの詳細については、Unicode ホームページの Unicode 標準を参照してください。
大事な
エンコードされたバイトが正しくデコードされるようにするには、エンコードされたバイトにプリアンブルのプレフィックスを付ける必要があります。 GetBytes メソッドは、エンコードされたバイトのシーケンスの先頭に BOM を付加しないことに注意してください。適切なバイト ストリームの先頭に BOM を指定するのは開発者の責任です。
適用対象
.NET