3

言い換えようとすると、すべての組み合わせ文字の組み合わせを1つのコードポイントにマッピングできますか?すべての「文字」が単なるコードポイントであるUnicodeでのエンコードはありますか?

私はUnicodeを使い慣れていませんが、Unicodeではどの文字も1つのコードポイントになるエンコーディング、正規化、または表現はありません。これは正しいです?

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

+0

すべてのUnicodeの「文字」は、1つの「コードポイント」に過ぎません。しかし、用語は混乱する可能性があります。 "Character"はさまざまな意味で解釈されるので、Unicodeは "Character"という特定の意味をカバーするために "code point"という用語を思いついた。現在、「グリフ」は複数の「コードポイント」で構成され、「コードポイント」は2回以上「コードユニット」としてエンコードされます。 UTF-8では、「コードユニット」は8ビットであり、UTF-16では「コードユニット」は16ビットである。 UTF-32では(めったに使用されない)「コードポイント」と「コードユニット」を区別する必要はありませんが、複数の「コードポイント」から単一の「グリフ」を作成することもできます。 – hippietrail

+0

@hippietrail Unicode [spec section 3.4](http://www.unicode.org/versions/Unicode6.2.0/ch03.pdf#G2212)の*文字*抽象文字*を意味しますか? – Eonil

+0

@Eonil:私は最初に*文字* = *コードポイント*を意味し、次に*文字* = *グリフ*を意味します。どちらがあなたに尋ねていますか? – hippietrail

答えて

7

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

互換性のシーケンスを意味する場合(つまり、e + ´ =>):既存の現代語で使用されているほとんどの組み合わせに対して1文字の表現があります。あなたが自分の言語を作っているなら、あなたは問題に遭遇するかもしれません...しかし、人々が実際に使うものに固執すれば、あなたは大丈夫でしょう。

+0

100%マッピングの保証をNFC正規化フォームにも適用できますか? – Eonil

+1

マッピングの保証はありません。現代の言語で表示される組み合わせのプリコンポジットを表すコードポイントが存在するだけです。 NFCは、ほとんどの場合、それらのプレコンポジットを好むでしょう。しかし、通常は一緒に行かないキャラクターやアクセント(例えば、「z̏」)がある場合や、1文字にアクセントがある場合、1つのコードポイントではカットできません。 – cHao

+0

これはちょうど真実ではありません。一文字表記のない現代の現代言語では、たくさんの組み合わせが使用されています。特に、インド系のスクリプト、タイ語、ラオ語などのラテン語以外のスクリプトでは、かなり多くのロシア語の辞書に入っているので、急性のアクセントを持つキリル母音はかなり一般的だと考えていますが、単一のコードポイント表現はありません。 – hippietrail

1

Unicodeでは、いずれの文字も1つのコードポイントになるエンコード、正規化、または表現はありません。これは正しいです?

単語の意味の意味に依存Unicodeは抽象文字の概念(標準の第3章で定義7持っている「文字」:「組織のために使用される情報のユニット、制御を、またはテキストデータの表現 ")および符号化文字(定義11:"抽象的な文字とコードポイントの間の関連付け(またはマッピング) ")。したがって、文字は決してであり、コードポイントはですが、多くのコードポイントでは、コードポイントにマップされる抽象的な文字が存在します。このマッピングは「エンコードされた文字」と呼ばれます。しかし(定義11、パラグラフ4)抽象文字もは、「コード・ポイントのシーケンスにより

をを表すことができ、また、基本多言語面のために真のこのですか?

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

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

6

あなたは一つのコードポイントに、すべての結合文字 組み合わせをマッピングすることはできますか?

すべて文字の組み合わせを組み合わせていますか?どのようにあなたの提案エンコードがà ̴ ̵ ̶ ̷ ̸ ̡ ̢ ̧ ̨ ̛ ̖ ̗ ̘ ̙ ̜ ̝ ̞ ̟ ̠ ̣ ̤ ̥ ̦ ̩ ̪ ̫ ̬ ̭ ̮ ̯ ̰"という文字列を表すことになり̲ ̳ ̹ ̺ ̻ ̼ ͇ ͈ ͉ ͍ ͎ ́ ̂ ̃ ̄ ̅ ̆ ̇ ̈ ̉ ̊ ̋ ̌ ̍ ̎ ̏ ̐ ̑ ̒ ̓ ̔ ̽ ̾ ̿ ̀ ́ ͂ ̓ ̈ ́ ͆ ͊ ͋ ͌ ̕ ̚ ͅ ͏ ͓ ͔ ͕ ͖ ͙ ͚ ͐ ͑ ͒ ͗ ͛ ͣ ͤ ͥ ͦ ͧ ͨ ͩ ͪ ͫ ͬ ͭ ͮ ͯ ͘ ͜ ͟ ͢ ͝ ͞ ͠ ͡「? (それに100個以上の結合記号が付いた 'a'?)それは実用的ではありません。

しかし、ççüのように、Unicodeには多くの "事前合成"文字があります。可能であれば、正規化フォームCは分解されたバージョンの代わりにこれらを使用します。

関連する問題