0

Chapter 2: General Structure 2.7 Unicode Stringの次の 2 つの段落で説明されているように、整形式の UTF-16 文字列の概念を理解するための助けが必要です。

「プログラミング環境によっては、Unicode 文字列が対応する Unicode エンコード形式である必要がある場合とそうでない場合があります。たとえば、Java、C#、または ECMAScript の文字列は Unicode 16 ビット文字列ですが、必ずしも整形式であるとは限りません。 UTF-16 シーケンス. 通常の処理では, そのような文字列に整形式の UTF-16ではないコード単位シーケンスを含めることを許可する方がはるかに効率的です. 、文字列を変更するすべての操作で孤立したサロゲートをチェックすると、大きなオーバーヘッドが発生する可能性があります。これは、世界中のプログラムのテキスト全体の割合として補助文字が非常にまれであるためです。

そのような文字列が特定の Unicode エンコーディング形式であると指定されている場合はいつでも (コード単位サイズが同じものであっても)、文字列はそのエンコーディング形式の要件に違反してはなりません。たとえば、Unicode 16 ビット文字列内の分離されたサロゲートは、その文字列が適切な形式の UTF-16 であると指定されている場合、許可されません

4

1 に答える 1

3

この段落では、UTF-16 について説明しています。整形式でないということは、文字列に孤立したサロゲート コード単位が含まれていることを意味します。

つまり、ペアで表示された場合にのみ有効な特定のコード単位があります。[0xD800-0xDFFF] の範囲のコード単位は、最初のコード単位が [0xD800-0xDBFF] の範囲内にあり、2 番目のコード単位が [0xDC00-0xDFFF] の範囲内にある必要があります。文字列がこの要件に従わない場合、整形式ではありません。

于 2012-12-03T19:02:10.350 に答える