2016-08-26 21 views
-1

私はrequestsを使用してウェブページを取得していますが、response.encodingの自動的に推定されたエンコードは間違っています。私はユニコードのバイトをデコードする必要がありますが、私はこのためのAPIを見つけませんでした。 response.textはUnicodeですが、バイト配列ではありません。何か案が? the documentationからPythonが異なる文字セットを使用してデコードを要求します

+0

.contentとdecodeを使用します。 –

答えて

1

(強調追加):あなたが要求を行うと

、リクエストはHTTPヘッダーに基づいて、応答の エンコーディングについて教育推測をします。 r.textにアクセスすると、Requestによって推測される のテキストエンコーディングが使用されます。あなたはr.encoding プロパティを使用して、使用している 何エンコーディング要求を見つけると、それを変更することができます:あなたはエンコーディングを変更する場合は、r.textを呼び出すたび

>>> r.encoding 
'utf-8' 
>>> r.encoding = 'ISO-8859-1' 

は、要求はr.encodingの新しい値を使用します。特別なロジックを適用してコンテンツのエンコーディングがどのようになるかは、 のどのような状況でも実現できます。 たとえば、HTTPとXMLには、 があり、そのエンコーディングを本文に指定することができます。 のような状況では、r.contentを使用してエンコードを探し、次に をr.encodingに設定する必要があります。これにより、正しい エンコーディングでr.textを使用できます。

関連する問題