On 6 Feb 2006, at 08:33, Jonathan Cleaver wrote:
I have a system which is accepting Base 64 encoded data from an external source, due to the protocol being used at the other end this is being passed in through a URL variable.
e.g. http://foo.bar.com?Data=uiDggGREJJytIIUicSSAa+WEhnGK
I am having an issue (Using Zope 2.7.6, Python 2.3.5) where the + and / characters in the incoming data are being replaced with spaces. Unfortunately, since both + and / are being replaced with the same character, it is not simply a matter of doing a find and replace on the string to restore these characters.
This system did work fine for a long while. I upgraded the machine's Python from 2.3.5 to 2.4.1 a couple of months ago and have now reverted back to 2.3.5.
Has anyone encountered a similar problem before and how can I work around/through it?
Just base64-encoding and then attempting to pass that in a URL is not safe. The right approach would be to base64-encode and then urlencode before adding it into the URL. jens