2012-08-24 47 views
1

嗨,我有一個摘要,我從網站下載,有時它沒有特殊的字符,它不會給我任何問題,當我嘗試將其存儲在數據庫...Python,ascii無法編碼字節錯誤

其他時候,我得到一個錯誤,Python不能爲了避免這些問題編碼字節錯誤等等等等......

我用.encode(「ASCII」,「忽略」)但最終這些特殊字符不會被保存......我應該用什麼來存儲每個字符沒有問題?

+0

你下載的文件是什麼編碼? – alex

+0

我不下載任何文件,我從一個網站中使用scrapy和python來刪除一段文本... – OHHH

回答

0

正如Alex所說,您首先需要確定文件的編碼方式(scrapy中的response.encoding)。假設UTF-8,你只需要.encode('utf-8'),或Python的其他任何supported encodings

您還需要確保您嘗試存儲數據的表接受該特定編碼。有關如何啓用UTF-8存儲的示例,請參閱this question。您也可以使用MySQL支持的任何其他character sets

+0

那麼,我怎麼知道這個enconding?正如我所提到的,我不使用文件來創建摘要,我使用scrapy將它們從網站中刪除... – OHHH

+1

HTTP標頭(和HTML標頭)通常會指定編碼。 Scrapy將其記錄在'response.encoding'中。您甚至可以在未指定編碼時設置默認值:http://scrapy.readthedocs.org/en/latest/topics/settings.html?highlight=encoding#default-response-encoding – bug

+0

通常(但並非總是)編碼是針對網絡相關文本的UTF-8。 –

相關問題