Python (3.0 以降) が Unicode ベースになった今、標準ライブラリがどのように動作するかについて少し混乱しています。CGI や urllib などのモジュールは Unicode 文字列を使用しますか、それとも新しい「bytes」タイプを使用してエンコードされたデータのみを提供しますか?
hacama
質問する
460 次
3 に答える
12
論理的には、MIME でエンコードされたメール メッセージ、URL、XML ドキュメントなどの多くのものは、bytes
文字列ではなく返される必要があります。これは、ライブラリが Python 3 用に限定され始め、人々が / の場合よりも / の変換をより意識する必要があることを発見するにつれて、いくらかの驚きを引き起こす可能性がbytes
ありstring
ます。str
unicode
于 2008-09-18T09:52:48.190 に答える
7
この質問 (および一般的な Python) の優れた点の 1 つは、インタープリターをいじることができることです。Python 3.0 rc1 は現在ダウンロード可能です。
>>> import urllib.request
>>> fh = urllib.request.urlopen('http://www.python.org/')
>>> print(type(fh.read(100)))
<class 'bytes'>
于 2008-09-18T09:58:19.473 に答える
1
ここで二段舞があります。Python 3000 とあなたを参照してください。
ステップ 1 は、3.0 で実行することです。
ステップ 2 は、API を再考して、おそらくもっと賢明なことを行うことです。
最も可能性の高いコースは、ライブラリがユニコード文字列に切り替わり、以前の動作と可能な限り互換性を維持することです。
その後、さまざまなプロトコルの RFC 標準をより適切に実装するためにバイトに切り替える人もいるでしょう。
于 2008-09-18T10:35:07.187 に答える