0

Appleのドキュメントには次のように記載されています

文字列オブジェクトは、Unicode文字の配列として実装されます

ただし、舞台裏にあるunichar可能性が高いデータ型のサイズは16ビットしかないため、すべてのUnicode文字を。で表すことは不可能です。これらの2つの事実を頭の中でどのように調整すればよいですか?unsigned shortunichar

4

2 に答える 2

1

Appleのドキュメントが実際にUTF-16コードポイントを意味するのにUnicode文字を誤って参照しているのは正しいです。

Unicodeの初期の頃は、16ビットを超えないことが期待されていましたが、そうなっています。一部の文字は代理ペアで表す必要がありますが、AppleとMicrosoft(およびおそらく他の文字)はどちらも16ビット整数を使用して「Unicode文字」を表します。

NSStringこのケースを処理し(さらに文字を組み合わせて)、特定の文字の範囲を返すさまざまなメソッド。例-rangeOfCharacterFromSet:...-rangeOfComposedCharacterSequences...

于 2012-06-10T19:18:55.667 に答える
0
  1. unichar文字列がデータ型で表されているかどうかはわかりません。「文字列オブジェクトはUnicode文字の配列として実装されます」とは、ソースコードに。として格納されていることを意味するものではありませんunichar *。あなたはそれがどのように実行されるのか分かりませんね?
  2. そしてunichar、unsigned shortでない場合はどうなりますか?32ビットまたは64ビットのデータ型の場合はどうなりますか?
于 2012-06-10T18:07:54.283 に答える