Error in base64 module
Fredrik Lundh
effbot at telia.com
Sat Sep 2 06:39:01 EDT 2000
jun won, Seo wrote:
> I have a string "xde9usauwd8"
> I want to base64decoding that string "xde9usauwd8".
base64 means that 4-character ascii string chunks are
decoded into 3-byte binary strings.
> binascii.Error: Incorrect padding
>
> Why?..
> Error in Python's base64 module?
nope.
unlike PHP3, Python doesn't ignore errors if it can detect
them, and an 11-character base64 string isn't valid.
if you cannot get the sender to give you valid data, you
can pad the string yourself before decoding it:
def fixup(s):
# add proper padding to a base64 string
n = len(s) & 3
if n:
s = s + "="*(4-n)
return s
>>> base64.decodestring(fixup("xde9usauwd8"))
'\305\327\275\272\306\256\301\337'
</F>
<!-- (the eff-bot guide to) the standard python library:
http://www.pythonware.com/people/fredrik/librarybook.htm
-->
More information about the Python-list
mailing list