2012-08-24 45 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。 –

相关问题