Unicode 文字列が処理されるときに、メモリ内で最も優先される Unicode 文字列の形式は何ですか? なぜ?
実行可能ファイル イメージを作成してプログラミング言語を実装しています。明らかに、実用的なプログラミング言語の実装には、文字列を処理するためのプロトコルが必要です。
動的配列は実装が非常に簡単で、短い文字列に対して非常に効率的であるため、動的配列を文字列の基礎として使用することを考えました。この方法で文字列を使用する場合、文字の最適な形式についてはわかりません。
Unicode 文字列が処理されるときに、メモリ内で最も優先される Unicode 文字列の形式は何ですか? なぜ?
実行可能ファイル イメージを作成してプログラミング言語を実装しています。明らかに、実用的なプログラミング言語の実装には、文字列を処理するためのプロトコルが必要です。
動的配列は実装が非常に簡単で、短い文字列に対して非常に効率的であるため、動的配列を文字列の基礎として使用することを考えました。この方法で文字列を使用する場合、文字の最適な形式についてはわかりません。
UTF16は、最も広く使用されている形式です。
UTF8に対するUTF16の利点は、コンパクトではありませんが、サロゲートを使用しない限り、すべての文字のサイズが2バイト(16ビット)で一定であることです(2バイトの文字に固執する場合、エンコーディングはUCS-2と呼ばれます) 。 。
UTF8では、1バイトでコード化された文字のセットはごくわずかであり、その他は4バイトまでです。これにより、文字処理が直接的でなくなり、エラーが発生しやすくなります。
もちろん、Unicodeを使用すると、国際文字を処理できるため、Unicodeを使用することをお勧めします。
C Python 2.xシリーズは、プラットフォーム/ビルドなどに応じてUTF-16とUCS-4を使用しました。
Python3.0のUnicode内部表現を選択する際の要件とトレードオフに関するpython-devからの興味深い議論があります。簡単に説明できるよりも多くのコンテンツがありますが、次のものが含まれます。