サロゲート ペアと組み合わせ文字シーケンスの Unicode サポート
Unicode 規格では、サロゲート ペアは、2 つのコード単位で構成される 1 つの抽象文字を表すコード化文字表現として定義されています。 サロゲート ペアの 1 番目の値は上位サロゲートであり、U+D800 ~ U+DBFF の 16 ビット コード値です。 サロゲート ペアの 2 番目の値は下位サロゲートであり、範囲は U+DC00 ~ U+DFFF です。
Unicode 規格では、組み合わせ文字シーケンスは、1 つの基本文字と 1 つ以上の組み合わせ文字との組み合わせとして定義されています。 サロゲート ペアは、基本文字または組み合わせた文字を表すことができます。 サロゲート ペアと組み合わせ文字シーケンスの詳細については、Unicode ホーム ページの「The Unicode Standard」を参照してください。
サロゲート ペアは 32 ビット シングル文字を表すことに注意してください。 1 つの 16 ビット Unicode エンコーディング値が正確に 1 つの文字に対応しているとは限りません。 サロゲート ペアを使用すると、16 ビット Unicode エンコード体系でさらに 100 万のコード ポイントを使用でき、Unicode 規格によってこれらのコード ポイントに文字を割り当てることができます。
.NET Framework では、テキスト要素がサポートされています。 テキスト要素とは、書記素と呼ばれる、1 文字として表示されるテキスト単位です。 基本文字、サロゲート ペア、または組み合わせ文字シーケンスをテキスト要素として使用できます。 StringInfo クラスには、アプリケーションが文字列をテキスト要素に分割してテキスト要素を反復処理できるようにするメソッドが含まれています。 StringInfo クラスの使用例については、「文字列インデックス付け」を参照してください。