[Catalyst] + in GET param

Ash Berlin ash_cpan at firemirror.com
Tue Sep 11 16:18:08 GMT 2007

Wade.Stuart at fallon.com wrote:
>> That's what uri_for is already doing (I forgot to mention I'd checked
>> already).
>> uri_for:
>>     http://myserver.com/blah/?username=first.last%2Bme%40gmail.com
>> URI::Escape:
>> perl -MURI::Escape -e "print uri_escape('first.last+me at gmail.com')";
>>     first.last%2Bme%40gmail.com
>> Same either way.
> perl -MURI::Escape -e "print uri_unescape('first.last%2Bme%40gmail.com');"
> first.last+me at gmail.com
> Looks like it is a problem with the debug printing code or the some
> unescape code somewhere.  That is the proper escape for +.

Yes. and the problem is Catalyst is unescaping it to early, so its
seeing it as a literal +, which then gets converted to a space according
to the HTTP RFC. It shouldn't. There is a bug in the catalyst param
handling somewhere I suspect.

More information about the Catalyst mailing list