サロゲートペアを含む文字列の文字数を取得するには、
System.Globalization.StringInfo.LengthInTextElementsを使用します。
※文字数を取得するメソッドにはLengthがありますが、
サロゲートペアを含む文字列では正確にカウントできないので、
この方法でカウントしてください。
サンプル
例)サロゲートペアを含む文字列の文字数を取得する
using System.Globalization;
//サンプル文字列(サロゲートペア文字)
string str = "𠀋𡈽𡌛";
//文字数を取得する
int result = new StringInfo(str3).LengthInTextElements;
→ 3
//※Lengthで取得してみると正しい文字数が取得できません。
int result2 = str.Length;
→ 6
備考
- StringInfo.LengthInTextElementsの使い方は上のサンプルを参照ください。
- LengthInTextElementsはサロゲートペアを含まない文字でも使用できます。