5

私は疑問に思っています:Delphiバージョンでは決してSizeOf(Char)= 2ではありませんが、これはUnicodeテーブルで定義された文字のすべての整数マッピングを保存するには十分ではありませんよね?(私が知る限り、65536 よりも多くの文字があります)。では、この問題はどのように解決されるのでしょうか。

Basic Multilingual Plane (BMP) のすべての文字をエンコードするために 2 バイトが使用されるのでしょうか? しかし、BMP 以外の文字はどうなるでしょうか?

誰かがこれに光を当てることができますか?

ありがとう。

4

2 に答える 2

2

BMP 以外の文字列は、UTF-16 のようにサロゲートでエンコードされます。

于 2012-08-22T17:11:22.537 に答える
0

以前は、単一の文字を格納する場合、単一の Char (AnsiChar) を使用できました。ただし、Unicode では、単一の UTF-16 コード ポイントを Char (D2009+ では WideChar) に格納しないでください。文字列を使用する必要があります。これは、単一の Char とサロゲート ペアを含めることができるためです。

于 2012-08-22T23:06:15.240 に答える