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
