python base64 decode出现incorrect padding错误

最近从网上抓到一批图片,但是base64编码的格式,需要转成图片文件,解码的时候一直报错:

TypeError: Incorrect padding

网上查了一下,了解了下,大部分都说是因为base64编码时会增加=号处理,解决方法要么是拼上缺失的=号,要么是去掉多余的=号,都试了,不好使。。。

后来debug发现,数据末尾有\x3d,打印了下数据长度,发现长度不能被4整除,数据明显不对。将数据打印出来,然后单独用脚本运行,却可以,这样,下面的sample是base64源码,数据末尾有\x3d,这其实是个=号,

这样运行是可以的,debug发现运行时sample被自动转码了,显示成=而不是\x3d。长度刚好可以被4整除。问题找到了。。。

是编码的问题。应该将数据转成Unicode编码,转成Unicode后,\x3d会被编码成=,这时长度才是正确的。

img = eval('u"%s"' % img)

img则是需要转的图片的base64编码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值