オンラインのdivintopython3本では、utf-32とutf-16の利点は
UTF-32 は単純なエンコーディングです。各 Unicode 文字 (4 バイトの数字) を取り、同じ数字で文字を表します。これにはいくつかの利点があります。最も重要なのは、N 番目の文字が 4×N バイト目から始まるため、一定時間内に文字列の N 番目の文字を見つけることができることです。
誰かがこれを説明できますか?可能であれば、例を挙げてください..私はそれを完全に理解しているかどうかわかりません
オンラインのdivintopython3本では、utf-32とutf-16の利点は
UTF-32 は単純なエンコーディングです。各 Unicode 文字 (4 バイトの数字) を取り、同じ数字で文字を表します。これにはいくつかの利点があります。最も重要なのは、N 番目の文字が 4×N バイト目から始まるため、一定時間内に文字列の N 番目の文字を見つけることができることです。
誰かがこれを説明できますか?可能であれば、例を挙げてください..私はそれを完全に理解しているかどうかわかりません
Unicode の通常のエンコーディングは UTF-8 です。UTF-8 は、可変バイト数の文字を表します。たとえば、「L」文字は 1 バイト (0x4c) でエンコードされ、「é」は 2 バイト (0xc3、0xa9) でエンコードされます。したがって、UTF-8 エンコーディングでは、「Lézard」という単語は 7 バイトかかり、事前にすべての文字をデコードしないと N 番目の文字を取得できません (各文字に必要なバイト数はわかりません)。
UTF-32 では、すべての文字が 4 バイトを使用するため、N 番目の文字を取得するには、バイト 4×(N-1) に移動するだけで済みます。最初の文字は位置 0、2 番目の文字は位置 4、3 番目の文字は位置 8 などです。
Pavel が言ったように、文字にはほとんど意味がなく、それに最も近い文字は言語によって異なる意味を持ちます (インド文字を参照)。たとえそうであっても、UTF-32 では、さまざまな意味にもかかわらず、文字が何であるかを数えることは非常に簡単です。幅が固定されているため、ラテン語の「A」、チャンドラカラ、காなどです。