4

http://www.python.org/dev/peps/pep-0100/

PEP 100 は、内部形式の Python Unicode が UTF-16 エンコーディングを保持すると述べていますが、値は UCS-2 (または flag でコンパイルされた場合は UCS-4 --enable-unicode=ucs4) として扱われます。

UCS-2 (固定長) ではなく、UTF-16 (可変長形式) が選択されなかったのはなぜですか?

2 つのエンコーディングはほとんど同じですが、PEP-100 が公開されたとき (2000 年 3 月)、UTF-16 はすでに 4 歳でした。Python Unicode は後方互換性の問題に対処するためのものでしたか?

エンコードされたデータを内部に保存するために、この(一見)ハイブリッドアプローチを使用してPythonの内部フォーマットが実装された理由について、私は本当に興味がありますか?

私の質問をするより良い方法は次のとおりです: PEP 100 が UTF-16 を使用する代わりに UCS-2 として UTF-16 を扱うことを選択した理由を具体的に述べている公式文書からの引用またはリンクを誰かが持っていますか?

4

1 に答える 1

1

もう少し読み進めてください: 「UCS-2 と UTF-16 は、現在定義されているすべての Unicode 文字ポイントで同じです」...そして、PEP が作成された 2000 年にはそれが真実でした。初期の実装では、BMP (最初の 64K コードポイント) のみがカバーされていました。

于 2011-11-05T21:17:01.970 に答える