1

私はpython Unicodeエンコーディングなどについて多くのことを読んできましたが、今ではある程度理解していると思います。ただし、最後に 1 つ残っています。

これが私がそれを理解する方法です

Python 2.x では、str オブジェクトは文字列をバイトとして表し、これらのバイトのエンコーディングに応じて異なる文字を取得できます。これは私が知っている単純化ですが、この質問は問題ではありません。

ただし、Unicode オブジェクトは文字列を Unicode コード ポイントとして表すため、基本的には整数です。以前のように、バイトをその値にあいまいに解釈する必要はもうありません。

私の質問は、これらの Unicode コードポイント / 整数が Python のフードの下でどのように表現されているかです。これは、対応する str よりも多くのスペースを使用することを意味しますか。スペースを気にしているわけではなく、理解したいだけです。

4

1 に答える 1

3

3.3 より前の CPython では、unicodeオブジェクト内のテキスト データは UCS-2 または UCS-4 (コンパイル時のオプションに応じて) としてエンコードされ、char*. 3.3 では、文字列内の最高のコードポイントに応じてデータの変数表現を使用します。unicodeJython と IronPython は、unicodeストレージにネイティブの型を使用します。

于 2013-08-20T12:04:08.347 に答える