3

Unicode 文字列が処理されるときに、メモリ内で最も優先される Unicode 文字列の形式は何ですか? なぜ?

実行可能ファイル イメージを作成してプログラミング言語を実装しています。明らかに、実用的なプログラミング言語の実装には、文字列を処理するためのプロトコルが必要です。

動的配列は実装が非常に簡単で、短い文字列に対して非常に効率的であるため、動的配列を文字列の基礎として使用することを考えました。この方法で文字列を使用する場合、文字の最適な形式についてはわかりません。

4

2 に答える 2

4

UTF16は、最も広く使用されている形式です。

UTF8に対するUTF16の利点は、コンパクトではありませんが、サロゲートを使用しない限り、すべての文字のサイズが2バイト(16ビット)で一定であることです(2バイトの文字に固執する場合、エンコーディングはUCS-2と呼ばれます) 。 。

UTF8では、1バイトでコード化された文字のセットはごくわずかであり、その他は4バイトまでです。これにより、文字処理が直接的でなくなり、エラーが発生しやすくなります。

もちろん、Unicodeを使用すると、国際文字を処理できるため、Unicodeを使用することをお勧めします。

于 2008-12-24T12:23:00.130 に答える
4

C Python 2.xシリーズは、プラットフォーム/ビルドなどに応じてUTF-16とUCS-4を使用しました。

Python3.0のUnicode内部表現を選択する際の要件とトレードオフに関するpython-devからの興味深い議論があります。簡単に説明できるよりも多くのコンテンツがありますが、次のものが含まれます。

  • 外部インターフェイスについて話し合う(一定の時間のスライス、.lower、.islowerなどの効率的な実装)
  • 外部要件(GTKはUTF-8文字列を取り、QTはUTF-16およびUCS-4文字列を取り、WindowsはUT-16文字列を取りますなど)
  • Unicodeデータの他の実装(QTなど)を示しています。
  • 重要なユースケース(外部インターフェイスに密接に関連している)について説明します。
于 2008-12-24T13:01:06.327 に答える