【问题标题】:using python on windows error: UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80 in position 110: invalid start byte在 Windows 上使用 python 错误:UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80 in position 110: invalid start byte
【发布时间】:2018-01-26 10:40:35
【问题描述】:

我在使用 python 3.6 时通过 anaconda 在 windows 上使用 tensorflow。 我正在运行此代码 (Here),但收到以下错误:

UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80 in position 110: invalid start byte

谁能帮我解决这个问题?

谢谢

【问题讨论】:

  • 这很可能不是 tensorflow 特有的。可能您正在尝试打印非 unicode 的内容,因此您需要对其进行显式编码。来源将有助于追踪它。
  • 您google 出错了吗?
  • @gobrewers14 我做了,发现这个错误是关于windows和python的,但是不知道怎么解决,每个人都含糊其辞的说解决方法
  • @MadWombat 我删除了 tensorflow 标签
  • 解决方案是模糊的,因为每个具体问题都不一样,只有模糊的解决方案才能应用于其他类似的问题。您需要找出包含坏字节的字符串来自哪里以及它是如何变坏的。通常是因为代码假设 UTF-8 是正确的,但实际上使用了不同的编码。

标签: python python-3.x utf-8 tensorflow python-unicode


【解决方案1】:

我不知道为什么,但我不得不更改以下代码

with tf.gfile.FastGFile(filename, 'r') as f:
    image_data = f.read()

到

 with tf.gfile.FastGFile(filename, 'rb') as f:
    image_data = f.read()

问题解决了!

【讨论】:

  • 这实际上是完全有道理的。二进制文件不需要转换为字符串,因此不会调用decode。不调用就不会失败!
猜你喜欢
  • 2018-10-15
  • 2020-12-26
  • 1970-01-01
  • 2021-11-24
  • 2022-09-26
  • 2020-03-12
  • 2020-05-08
  • 2021-01-05
  • 1970-01-01
相关资源
最近更新 更多