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 であると指定されている場合、許可されません。