python - Unicode解码错误: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte

标签 python utf-8

我正在尝试从链接中删除图片并将其放入图像文件中。请求响应返回一个字节流。所以我正在使用 decode('utf-8') 转换为 unicode 流但是,我面临以下错误:

打印(信息.解码(('utf-8')))

UnicodeDecodeError: 'utf-8' 编解码器无法解码位置 0 中的字节 0xff:起始字节无效

    from urllib import request
    img = request.urlopen('http://www.py4inf.com/cover.jpg')
    fhand = open('cover.jpg', 'w')
    size = 0
    while True:
        info = img.read(100000)
        if len(info) < 1 : break
        size = size + len(info)
        print (info.decode(('utf-8')))
        fhand.write(info.decode(('utf-8')))

    print (size,'characters copied.')
    fhand.close()

请让我知道我该如何继续。谢谢。

最佳答案

文件应以二进制模式打开,然后您可以逐字节复制流。由于 shutil 已经有一个方便的辅助实用程序,您可以

import shutil
import os
from urllib import request

img = request.urlopen('http://www.py4inf.com/cover.jpg')
with open('cover.jpg', 'wb') as fhand:
    shutil.copyfileobj(img, fhand)
print(os.stat('cover.jpg').st_size, 'characters copied')

关于python - Unicode解码错误: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35184692/

相关文章:

python - psycopg2.DataError : invalid byte sequence for encoding "UTF8": 0xa0

python - 我已经通过 macports 安装了 xapian,那么为什么这个 python 应用程序告诉我需要安装 xapian?

python - 如何在 DataFrame 上执行 concat 时分配默认值

python - 正则表达式匹配所有注释//,/* */

mysql - Navicat utf8 无法在 mysql 数据库上运行

.htaccess - &lt;meta http-equiv ="Content-Type"content="text/html; charset=utf-8> 的 htaccess 等效项是什么

json - SQL - UTF-8 到 varchar/nvarchar 编码问题

python - 用零 python Pandas 填充 nan

python - 使用 pip 安装 python 的 mysql 模块

unicode - 使用 Go 删除​​变音符号