in reply to UTF-8 and URL encoding

How does CGI.pm handle them URI encoded characters? My impression is that it will decode them to bytes. The result is a byte string that contains UTF-8 encoded characters. If you want Unicode strings, which will have the same bytes internally but Unicode behavior, you can use the Encode module to convert them.
my $octets = $cgi->param('text'); my $string = decode("utf-8", $octets);