【问题标题】:Python, ascii can't encode byte errorPython,ascii 无法编码字节错误
【发布时间】:2012-08-19 13:52:28
【问题描述】:

您好,我有一个从网站下载的摘要,有时它没有特殊字符,当我尝试将其存储在数据库中时它不会给我带来任何问题...

其他时候我收到错误,Python 无法编码字节错误等等等等……

我使用 .encode('ascii', 'ignore') 来避免这些问题,但最终那些特殊字符没有被保存...我应该使用什么来存储每个字符而不会出现问题??

【问题讨论】:

  • 你下载的文件是什么编码的?
  • 我不下载任何文件,我使用scrapy和python从网站上抓取了一段文本......

标签: python mysql


【解决方案1】:

正如 Alex 所说,您首先需要确定文件的编码方式(scrapy 中的response.encoding)。假设 UTF-8,您只需 .encode('utf-8'),或 Python 的任何其他 supported encodings

您还需要确保您尝试存储数据的表接受该特定编码。有关如何启用 UTF-8 存储的示例,请参阅 this question。您还可以使用 MySQL 以相同方式支持的任何其他 character sets

【讨论】:

  • 好吧,我怎么知道结局呢?正如我所提到的,我不使用文件来获取摘要,而是使用 scrapy 从网站上抓取它们......
  • HTTP 标头(和 HTML 标头)通常会指定编码。 Scrapy 在response.encoding 中记录了这一点。您甚至可以在未指定编码时设置默认值:scrapy.readthedocs.org/en/latest/topics/…
  • 网络相关文本的编码通常(但不总是)为 UTF-8。
猜你喜欢
  • 2011-06-29
  • 2015-02-03
  • 2019-09-01
  • 2013-08-20
  • 1970-01-01
  • 1970-01-01
  • 2016-06-19
  • 2017-03-31
  • 2014-10-19
相关资源
最近更新 更多