[Catalyst] Url Encoded UTF8 parameters

Stefan maillist at s.profanter.me
Sat Aug 1 13:31:54 GMT 2015


if a URL parameter contains a Unicode character (e.g. www.example.com/?param=%D6lso%DF <http://www.example.com/?param=%D6lso%DF>  which stands for param=Ölsoße), the parameter is not correctly parsed as Unicode.


I did the following to test it:

1.       Create a new Catalyst App: catalyst.pl UnicodeTest

2.       Set Root.pm Controller to correct encoding by adding ‘use utf8;’ at the top of the file

3.       Then add the following lines to the Root.pm Controller in the index function (don’t forget to use Data::Dumper):

4.       This outputs for the example url: localhost:3000/?param=%D6lso%DF:

[debug] $VAR1 = {

          'param' => "\x{fffd}lso\x{fffd}e"


[debug] $VAR1 = '\x{d6}lso\x{df}e';



As you can see, the first output only contains one equal character: \x{fffd} which is obviously not the same as it should be: \x{d6}lso\x{df}e


I already tried adding the ‘encoding => 'UTF-8'’ config option, but this didn’t change anything.


Am I missing a specific setting?


My Catalyst version: 5.90097

Perl version: v5.18.2


Thanks for your help!


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.scsys.co.uk/pipermail/catalyst/attachments/20150801/e13e9695/attachment.htm>

More information about the Catalyst mailing list