【问题标题】:utf8' codec can't decode byte 0xae in positionutf8'编解码器无法在位置解码字节 0xae
【发布时间】:2014-10-26 23:38:36
【问题描述】:

我刚刚发现我的 json 字符串包含一些特殊字符,例如 Pandora®。 当我使用这个时,我得到了这个错误'utf8' codec can't decode byte 0xae in position: invalid start byte

json.loads(str_to_load)

我已经尝试这个来解决这个问题:

json.loads(unicode(str_to_load), "ISO-8859-1")

显然,这似乎也不起作用。如何解决这个问题?

json文件太大,这里上传。

【问题讨论】:

  • 这行得通吗:json.loads(str_to_load, encoding="ISO-8859-1")?
  • @SimeonVisser 现在最大的问题是,它返回的数据是否正确?
  • P.S.在这个时代,任何在网络上发布非 UTF-8 内容的人都应该受到惩罚。
  • @MarkRansom:除此之外:编码真的是 ISO-8859-1 还是只是碰巧在这种情况下返回了正确的数据?所以对 Co Koder:总是检查你收到的编码是什么,因为猜测很困难。

标签: python json


【解决方案1】:

您可以在json.loads中指定编码:

json.loads(str_to_load, encoding="ISO-8859-1")

【讨论】:

    【解决方案2】:

    默认情况下,方法 json.dumps() 中的 ensure_ascii 标志设置为 True。 要解决此问题,请将此标志设置为 False:

    json.dumps(unicode(str_to_load), ensure_ascii = False)
    

    【讨论】:

      猜你喜欢
      • 2014-02-10
      • 2019-05-25
      • 2015-12-25
      • 2016-08-03
      • 2012-08-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多