【问题标题】:Python Encode Ã3 as óPython 将 Ã3 编码为 ó
【发布时间】:2020-05-26 21:59:16
【问题描述】:

我有一个类似

的字符串

'La empresa de capitales mixtos que el predio de residuos, Ceamse, aclarÃ3 este martes que la responsabilidad del desentendimiento con los recicladores 非正式的 que provocÃ3 un nuevo bloqueo y hace peligrar la recolecciÃ3n'

你需要这个

'La empresa de capitales mixtos que el predio de residuos, Ceamse, aclaró este martes que la responsabilidad del desentendimiento con los recicladores 非正式的 que provocó un nuevo bloqueo y hace peligrar la recolección'

如何用 Python 做到这一点?

谢谢!

【问题讨论】:

  • 你是如何创建字符串的,你是如何显示它的?你明白什么是 Unicode 吗?你了解什么是文本编码吗?
  • 您使用的是 Python 3,这是一个实际的 Unicode str 而不是 bytes?如果是这样,那么事情可能会有点棘手,因为数据基本上已损坏。如果有问题的字符串存储在变量x中,当你print repr(x)时它会说什么?
  • 这是简单的 mojibake,'ó' 以 UTF-8 编码,但使用 Latin-1 解码得到'ó'
  • 我已经从网站上抓取了那个字符串
  • 修复你的网页抓取脚本!

标签: python decode encode


【解决方案1】:

你需要修复你的网页抓取脚本!

看起来 La Capital 发送了正确的 http header 和 html header 信息,并且内容是 UTF-8 编码的。所以你的脚本需要处理它,一切都会正常工作。

我从经验中知道 requests.get 和 beautifulsoup 4 都可以很好地处理 Unicode,所以只需调试您的脚本,看看哪里出错了。检查原始输入,检查您是否需要页面的 .content 或 .text,并相应地修复它。

【讨论】:

  • 谢谢!我解决了写 response = request.get(link) html = response.text.encode('ISO-8859-1', 'ignore') 这是我问 response.encoding 时的编码
猜你喜欢
  • 1970-01-01
  • 2015-07-16
  • 1970-01-01
  • 1970-01-01
  • 2017-10-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多