http://www.perlmonks.org?node_id=964591


in reply to UTF8 URI Escaping

You could use URI::Escape:
#!/usr/bin/perl -l use strict; use warnings; use URI::Escape; my $f = '%C2%A3'; my $safe = uri_escape($f); my $str = uri_unescape($safe); print uri_unescape($str);
Update: Added a test for utf8.
#!/usr/bin/perl -l use strict; use warnings; use Encode; use URI::Escape; require Encode::Detect; my $f = '%C2%A3'; my $safe = uri_escape($f); my $str = uri_unescape($safe); print my $data = uri_unescape($str); my $utf8 = decode( "Detect", $data ); binmode STDOUT, ":encoding(utf8)"; print "$utf8: Looks like utf8 to me";