我已經提取的圖像的前景色,質地和edgemap值的base64字符串,我有以下結構的列表:解碼蟒蛇的base64字符串
forecolor=AgCEAg4DUQQCBQQGARMBFQE1AmUB
edge=AfCAFg5iIATCPwTAEIiBFggBDw
forecolor=AgAsAQ0CJAMcDRgOGg8DHQYeBzYBPQ4-DU0ETgNtBm4CfQI
我想這些值進行解碼,但我得到不正確的填充錯誤,這裏是確切的錯誤:
Traceback (most recent call last):
File "ImageVectorData.py", line 44, in <module>
print "Decoded String: " + decoded.decode('base64', 'strict')
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/encodings/base64_codec.py", line 42, in base64_decode
output = base64.decodestring(input)
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/base64.py", line 321, in decodestring
return binascii.a2b_base64(s)
binascii.Error: Incorrect padding
這裏是我的代碼:
for item in value:
print "String before Split: " + item
if item.split("=")[0] == "forecolor":
decoded = (item.split("=")[1])
print "String to be decoded: " + decoded
print "Decoded String: " + decoded.decode('base64', 'strict')
我也看到了一個有趣出來的時候,第一前景色的base64字符串解碼得到了放: 這裏是放出來的是:
String before Split: forecolor=AgCEAg4DUQQCBQQGARMBFQE1AmUB
String to be decoded: AgCEAg4DUQQCBQQGARMBFQE1AmUB
Decoded String: ?Q5e
我真的不知道我在做什麼錯在這裏。我看了下面的python文件,並嘗試過,但那也沒有工作: http://docs.python.org/library/base64.html
用於'值edge'似乎並不成爲一個vlaid base64編碼串,所以Python給出一個錯誤信息。使用有效的輸入,事情應該工作。 – 2012-07-25 18:24:42
如果你看看代碼,我只是試圖解碼forecolor,所以我不認爲邊緣在這一點上起作用。 – 2012-07-25 18:30:15
@SvenMarnach,你可以通過在字符串的末尾添加幾個'=='來解決填充問題。更大的問題是解碼的結果是完全無法解讀的。 – 2012-07-25 18:30:16