urllib2を使用してWebページをダウンロードし、MySQLデータベースに保存しようとしています。このような :python utf-8 HTMLのデコードエラー
result_text = result.read()
result_text = result_text.decode('utf-8')
は、しかし、私はこのエラーを取得する:
データ: 'UTF8' コーデックバイト0x88をデコードすることはできません
は今、HTMLのmetaタグは、と述べていますエンコーディングは確かにutf-8です。
result_text = result_text.decode('utf-8','replace')
不正な文字を置き換え: アイブ氏は、この行でこの問題を回避するために管理しました。しかし、私はこれが、ダウンロードしたデータに何かが間違っている可能性があること、または貴重な文字を削除していることを示すものではないとは確信していません。 IUは、ページにもJavaScriptが含まれていると付け加えるべきですが、これは私が信じる限り問題ではありません。
これはなぜ起こっているのですか? おかげで、あなたの小さなデータサンプルの
ページのすべての文字がutf-8であることを確認してください。ヘッダはそれが "嘘"になる可能性があります。 – DonCallisto
'' utf8 'コーデックはバイト0x88をデコードできないというエラーが発生すると、違反バイトの位置も教えてください。場所が 'n'の場合は、' decode( 'utf-8')の呼び出しの前に 'print(repr(result_text [n-20:n + 20]))'というprint文を追加し、結果はここにあります。 – unutbu
あなたはソースデータへのリンクを投稿していないので、適切な回答を与えることはできません。 ただし、ソースデータのUTF-8エンコーディングが悪い可能性があります。そのため、あなたができないことは何もありません。 –