我試圖用urllib2下載一個網頁並保存到MySQL數據庫。 這樣的:python utf-8 HTML解碼錯誤
result_text = result.read()
result_text = result_text.decode('utf-8')
但是我得到這個錯誤:
數據: 'utf-8' 編解碼器不能解碼字節均爲0x88
現在,HTML meta標籤規定,編碼確實是utf-8。 香港專業教育學院設法解決這個問題這條線:
result_text = result_text.decode('utf-8','replace')
它取代了壞人的角色。但是,我不確定這不是說明下載的數據可能有問題,或者我刪除了有價值的字符。 IU應該添加頁面也包含JavaScript - 儘管這不應該是我相信的問題。
有誰能告訴我爲什麼會發生這種情況? 感謝
你確定頁面上的所有字符都是utf-8嗎?儘管標題說明,它可能是「一個謊言」 – DonCallisto 2012-01-29 14:02:28
當你得到''utf8'編解碼器不能解碼字節0x88'錯誤時,它也應該告訴你有問題的字節的位置。如果該位置是'n',則在調用decode('utf-8')'之前添加一個print語句:'print(repr(result_text [n-20:n + 20]))',併發布結果在這裏。 – unutbu 2012-01-29 14:02:36
因爲您沒有發佈鏈接到源數據,我們無法給您一個正確的答案。 但是,源數據很可能具有錯誤的UTF-8編碼,因此您無法做到這一點。 – 2012-01-29 14:36:34