$q =~ s/([^$URI::uric])/$URI::Escape::escapes{$1}/go; #### #!/usr/bin/perl use LWP; use HTTP::Request::Common; use Encode; use charnames qw(greek); binmode(STDOUT, ":utf8"); my $utf8_data = "<\N{alpha}\N{beta}\N{gamma}\N{delta}>"; print $utf8_data, "\n\n"; print Encode::is_utf8($utf8_data) ? "\$utf8_data marked as UTF-8\n\n" : "\$utf8_data not marked as UTF-8\n\n"; my $request = POST("http://192.168.0.1/test", Content => [ data => $utf8_data, more_data => "some more data", ] ); my $req_string = $request->as_string(); print Encode::is_utf8($req_string) ? "\$req_string marked as UTF-8\n\n" : "\$req_string not marked as UTF-8\n\n"; print $req_string, "\n";