HTTP応答で文字エンコードを検出する必要があります。<meta http-equiv='content-type'>
これを行うには、ヘッダーを確認します。それがcontent-typeヘッダーに設定されていない場合は、応答を確認して" "ヘッダーを探す必要があります。次のような外観と動作をする関数を記述できるようにしたいと思います。
response = urllib2.urlopen("http://www.example.com/")
encoding = detect_html_encoding(response)
...
page_text = response.read()
ただし、「detect_html_encoding」メソッドでresponse.read()を実行すると、関数の呼び出し後の後続のresponse.read()は失敗します。
応答を確認したり、読んだ後に巻き戻したりする簡単な方法はありますか?