2

次の python セッションでの getencoding の出力は「ISO-8859-1」になると思います。

>>> import urllib2
>>> response = urllib2.urlopen("http://www.google.com/")
>>> response.info().plist
['charset=ISO-8859-1']
>>> response.info().getencoding()
'7bit'

これは python バージョン 2.6 ('2.6 (r26:66714, Aug 17 2009, 16:01:07) \n[GCC 4.0.1 (Apple Inc. build 5484)]' 具体的には) です。

4

2 に答える 2

0

さて、あなたは何が壊れていると思いますか?

urllibとwgetの両方でISO-8859-2を取得しています(現在ポーランドにいます)。FirefoxでUTF-8を入手します。これは、私のFirefoxがサイトにISO-8859-1とUTF-8を受け入れるように指示しているのに対し、wgetとurllib2は何も言わないためです。関連するリクエストヘッダーは次のとおりです。

Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7

その中からUTF-8を削除すると、ポート80にtelnetで接続することで簡単にテストできるUTF-8を取得できなくなります。

Google.comは単純に(そして合理的に)デフォルトでISO-8859-1に、google.plはISO-8859-2にデフォルト設定されており、他のサイトにも他のデフォルト設定があると確信しています。

wget、urllib2、telnetのいずれにもエンコーディングヘッダーがありません。urllib2は7ビットを想定していると思いますが、Content-Encodingは通常gzipであるか、何もないため、これは少し無意味かもしれません。

于 2009-08-21T11:05:34.380 に答える