You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用pyguetzli压缩JPG时触发UnicodeDecodeError的原因与解决方法

解决读取JPG文件时的UnicodeDecodeError问题

嘿,这个问题我之前也踩过坑!其实根源特别简单——你用文本模式去读取二进制格式的JPG文件啦!

错误原因

Python的open()函数默认使用文本模式('r'),这时候它会自动尝试用UTF-8编码解码文件内容。但JPG是二进制文件,开头的0xff字节是JPEG文件的标志性起始位,完全不符合UTF-8编码规则,自然就触发了UnicodeDecodeError。

直接解决方案

只需要在打开文件时指定二进制读取模式('rb')即可,这样Python就不会尝试解码,直接读取原始二进制数据,正好适配pyguetzli处理图片的需求。

修正后的代码:

input_jpg = open("/home/chariya/python/images/backup/Dendrobium_anilii_4.jpg", 'rb').read()

进阶优化建议

为了更安全地管理文件资源,推荐使用with语句(上下文管理器),它会自动帮你关闭文件,避免出现资源泄漏的情况:

with open("/home/chariya/python/images/backup/Dendrobium_anilii_4.jpg", 'rb') as img_file:
    input_jpg = img_file.read()

这样修改后,你就能正常读取图片数据,交给pyguetzli进行压缩处理啦!

内容的提问来源于stack exchange,提问作者Chari Pete

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 06:58:33