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

使用pyTelegramBotAPI发送图片时触发UnicodeDecodeError报错求助

解决pyTelegramBotAPI发送图片时的UnicodeDecodeError问题
  • 问题根源:打开图片文件时未使用二进制读取模式,Python尝试用文本编码解码二进制图片数据,引发编码错误。
  • 修复方法:在open()函数中指定rb(二进制只读)模式。

修改后的代码:

bot.send_photo(message.chat.id, photo=open(r'E:\site_work\telebot\img\samples\1.jpg', 'rb'))
bot.send_message(message.from_user.id, "Look photo", reply_markup=markup)

错误原因解释

调用open()不指定模式时,Python默认使用文本模式(r),会用系统默认编码(Windows下为cp1251)解码文件内容。但图片是二进制文件,包含大量无法被该编码识别的字节,因此触发UnicodeDecodeError。使用rb模式后,Python直接读取二进制数据,不会执行解码操作,完全匹配Telegram API对图片数据的要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 08:30:49