X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FWeb%2FDispatch%2FParamParser.pm;h=0f403aa17961d30b334a6c2467ca7909f38880ed;hb=2993003a82967816ef63c055f39ba90fb34274ac;hp=e8ed581b7474bef55cbf0912cf4d10cdd155c00d;hpb=d96756e81118d31b2e23987ae909aafd7e87269e;p=catagits%2FWeb-Simple.git diff --git a/lib/Web/Dispatch/ParamParser.pm b/lib/Web/Dispatch/ParamParser.pm index e8ed581..0f403aa 100644 --- a/lib/Web/Dispatch/ParamParser.pm +++ b/lib/Web/Dispatch/ParamParser.pm @@ -3,6 +3,8 @@ package Web::Dispatch::ParamParser; use strict; use warnings FATAL => 'all'; +use Encode 'decode_utf8'; + sub UNPACKED_QUERY () { __PACKAGE__.'.unpacked_query' } sub UNPACKED_BODY () { __PACKAGE__.'.unpacked_body' } sub UNPACKED_BODY_OBJECT () { __PACKAGE__.'.unpacked_body_object' } @@ -102,8 +104,9 @@ sub get_unpacked_uploads_from { my ($name, $value); foreach my $pair (split(/[&;](?:\s+)?/, $params)) { next unless (($name, $value) = split(/=/, $pair, 2)) == 2; - + s/$DECODE/$hex_chr{$1}/gs for ($name, $value); + $_ = decode_utf8 $_ for ($name, $value); push(@{$unpack{$name}||=[]}, $value); }