3

言い換えようとしている: すべての結合文字の組み合わせを 1 つのコード ポイントにマップできますか?

私は Unicode を初めて使用しますが、Unicode ではあらゆる場合に 1 つの文字が 1 つのコード ポイントになるエンコーディング、正規化、または表現がないように思えます。これは正しいです?

これは Basic Multilingual Plane にも当てはまりますか?

4

3 に答える 3

7

1 つの文字 == 1 つの数字を意味する場合 (つまり、すべての文字が同じ数のバイト/単語/what-have-you で表される場合): UCS-4 では、各文字は 4 バイトの数字で表されます。これは、すべての文字を単一の値で表すには十分な大きさですが、それ以上の文字が必要ない場合は非常に無駄です。

互換性シーケンスを意味する場合 (つまり、e + ´ => é): 既存の現代言語で使用されているほとんどの組み合わせには、1 文字の表現があります。独自の言語を作っていると、問題が発生する可能性があります...しかし、人々が実際に使用する言語に固執していれば、問題はありません。

于 2011-01-05T19:47:52.853 に答える
6

すべての結合文字の組み合わせを1つのコードポイントにマッピングできますか?

すべての結合文字の組み合わせ?どのようにあなたの提案エンコーディングは、文字列「A」を表すのでしょうか?(100を超える結合マークが付いた「a」?)それは実用的ではありません。

ただし、Unicodeには、áçñüのような「合成済み」文字がたくさんあります。正規化フォームCは、可能な限り、分解されたバージョンの代わりにこれらを使用します。

于 2011-01-06T05:10:10.953 に答える
1

Unicode では、あらゆる場合に 1 つの文字が 1 つのコード ポイントになるエンコーディング、正規化、または表現がないように思えます。これは正しいです?

「キャラクター」という言葉の意味の意味によります。Unicode には、抽象文字(標準の第 3 章の定義 7: 「テキスト データの編成、制御、または表現に使用される情報の単位」) およびエンコード文字(定義 11: 「関連付け (またはマッピング)抽象文字とコードポイントの間」)。したがって、文字がコード ポイントになることありませんが、多くのコード ポイントには、コード ポイントにマッピングされる抽象文字が存在し、このマッピングは「エンコードされた文字」と呼ばれます。ただし (定義 11、パラグラフ 4): 「単一の抽象文字は、コード ポイントのシーケンスによっても表すことができます」</p>

これは Basic Multilingual Plane にも当てはまりますか?

BMP と他のプレーンの間には、抽象文字またはエンコード文字に関連する概念上の違いはありません。上記のステートメントは、コード空間のすべてのサブセットに当てはまります。

アプリケーションに応じて、グリフ書記素クラスター書記素抽象文字エンコード文字コード ポイントスカラー値コード単位、およびバイトという用語を区別する必要があります。これらの概念はすべて異なり、それらの間の単純なマッピングはありません。特に、これらのエンティティ間で 1 対 1 のマッピングが行われることはほとんどありません。

于 2011-01-05T22:12:44.730 に答える