[Catalyst] + in GET param

Gavin Henry ghenry at perl.me.uk
Tue Sep 11 19:48:49 GMT 2007


<quote who="Wade.Stuart at fallon.com">
>
>>
>> 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

Yeah, confirmed above.

>
> Looks like it is a problem with the debug printing code or the some
> unescape code somewhere.  That is the proper escape for +.

The problem is $c->req->param('username') is already decoded when I get
it. I stash the value then pass it to a dbic search, which by that time
already has a space in it.

I can't do anything other than pass it to uri_for, which encodes it and
get the value back in via $c->req, which has already turned the + into a
space.

What can I do *before* $c->req->param('username')  ???

>
>
> _______________________________________________
> List: Catalyst at lists.rawmode.org
> Listinfo: http://lists.rawmode.org/mailman/listinfo/catalyst
> Searchable archive:
> http://www.mail-archive.com/catalyst@lists.rawmode.org/
> Dev site: http://dev.catalyst.perl.org/
>




More information about the Catalyst mailing list