3

ドキュメントから;

長さは、UnicodeString にある UChar コード単位の数です。コード ポイント数が必要な場合は、countChar32() を使用してください。

文字列の長さ UChar コード単位で Unicode コード ポイントをカウントします。

コード ポイントは、1 つまたは 2 つの UChar コード単位を占める場合があります。コード ポイントのカウントには、すべてのコード単位の読み取りが含まれます。

このことから、コード ポイントは実際の文字であり、コード単位は文字の可能な部分の 1 つにすぎないと考える傾向があります。

例えば。

次のような Unicode 文字列があるとします。

「フーバー」

長さと countChar32 の両方が 6 になります。次に、長さをエンコードするために完全な 32 ビットを使用する 6 文字で構成される文字列があるとしますが、countChar32 は 6 になります。

これは正しいです?

4

1 に答える 1

4

Base Multilingual Plane (BMP) 以外の文字を使用する場合にのみ、2 つの値が異なります。これらの文字は、サロゲート ペアとして UTF-16 で表されます。2 つの 16 ビット文字が 1 つの論理文字を構成します。これらのいずれかを使用する場合、各ペアは1 つの32 ビット文字としてカウントされますが、 lengthの 2 つの要素としてカウントされます。

于 2011-04-11T20:36:26.083 に答える