On 14 Feb 2014, at 12:11, Sven Van Caekenberghe <[email protected]> wrote:

> $+ is handled in any usage of ZnPercentEncoder, independent of context and 
> safeSet. That is not right, it is only valid in the context of 
> application/x-www-form-urlencoded get/post requests:
> 
> http://en.wikipedia.org/wiki/Percent-encoding#The_application.2Fx-www-form-urlencoded_type
> 
> Outside of that specific use case, $+ becomes space, should not be done, I 
> think.
> 
> OK, now I have something concrete to work with.

Well... WAUrl does exactly the same: it always replaces a $+ with a space. If 
what you say regarding $+ being a safe character (I'm not the expert), then 
it's part of the problem because a WAUrl instance is constructed from a ZnUrl 
printString. If a ZnUrl prints a $+ where it originally was constructed from a 
%2B, then it will still fail. 

I might we wrong, but I keep having the impression it's the (non-)encoding of a 
$+ that is wrong (rather than the decoding of $+ to space). 
If you create a url as follows:
        (ZnUrl fromString: 'http://localhost:8080/foo%20%2B%20bar') 
The internal pathSegments variable of the ZnUrl instance contains a (I think 
correctly) decoded string 'foo + bar'.
When this url is printed (more exactly in #printPath:), it prints it as 
'foo%20+%20bar', which is strange for me.

But, as I said, I am not the expert. Though I will have to see where this 
impacts Seaside on working with other adaptors...

Johan

Reply via email to