サロゲート ペアと組み合わせ文字シーケンスの Unicode サポート

Unicode 規格では、サロゲート ペアは、2 つのコード単位で構成される 1 つの抽象文字を表すコード化文字表現として定義されています。サロゲート ペアの 1 番目の値は上位サロゲートです。上位サロゲートには、U+D800 ~ U+DBFF の 16 ビット コード値が含まれています。サロゲート ペアの 2 番目の値は下位サロゲートです。下位サロゲートには、U+DC00 ~ U+DFFF の値が含まれています。

Unicode 規格では、組み合わせ文字シーケンスは、1 つの基本文字と 1 つ以上の組み合わせ文字との組み合わせとして定義されています。サロゲート ペアは、基本文字または組み合わせ文字を表すことができます。サロゲート ペアと組み合わせ文字シーケンスの詳細については、www.unicode.org の『Unicode Standard』を参照してください。

サロゲート ペアは 32 ビット シングル文字を表しますが、1 つの 16 ビット Unicode エンコーディング値が 1 つの 32 ビット文字に対応しているとは限らない点に注意してください。サロゲート ペアを使用すると、16 ビット Unicode エンコード体系でさらに 100 万のコード ポイントを使用でき、Unicode 規格によってこれらのコード ポイントに文字を割り当てることができます。

.NET Framework では、テキスト要素がサポートされています。テキスト要素とは、書記素と呼ばれる、1 文字として表示されるテキスト単位です。基本文字、サロゲート ペア、または組み合わせ文字シーケンスをテキスト要素として使用できます。StringInfo クラスには、文字列をテキスト要素に分割して、テキスト要素を反復処理するためのメソッドが含まれています。たとえば、StringInfo.GetNextTextElement メソッドを使用すると、サロゲート ペアを 1 つのテキスト要素として取得できます。StringInfo クラスの使用例については、「文字列インデックス付け」を参照してください。

参照

関連項目

System.Text Namespace

概念

.NET Framework での Unicode
文字列インデックス付け

その他の技術情報

エンコーディングとローカリゼーション