1. ホーム
  2. unicode

[解決済み] ユニコードでマッピングできる文字の数は?

2023-04-20 11:36:34

質問

Unicodeで有効な組み合わせのカウントとその説明をお願いします。文字が1,2,3,4バイトとしてエンコードされることは知っています。私はまた、その文字の開始バイトは、それがどのように長いはずクリアされているにもかかわらず、継続バイトが制限を持っている理由を理解していない。

どのように解決するのですか?

Unicodeで有効な組み合わせの可能性を、説明付きでカウントしてほしいのです。

1,111,998 : 17機×65,536文字/機 - 2048サロゲート - 66ノンキャラクター

UTF-8とUTF-32は理論的には17プレーンよりずっと多く符号化することができますが、その範囲は UTF-16 エンコーディングの制限 .

137,929 のコードポイントは、実際には ユニコード12.1 .

また、文字列の開始バイトで長さがクリアされるにもかかわらず、継続バイトに制限があるのも理解できません。

UTF-8におけるこの制限の目的は、エンコーディングが を自己同期させるためです。 .

反例として、中国語の GB 18030 エンコーディング . そこでは、文字 ß はバイト列で表現されます 81 30 89 38 のエンコーディングを含むバイト列として表現されます。 08 . ですから、このエンコーディング特有の癖を考慮に入れていない文字列検索機能を使うと、数字の 8 という数字を検索すると、文字 ß .

UTF-8では、リードバイトとトレイルバイトの重なりがないため、短い文字のエンコーディングが長い文字のエンコーディングの中に入ることがないため、このようなことは起こりえません。