my $x = "foo à, è, ì, ò, ù bar"; $x =~ s/([\x00-\x1F\x7F-\xFF])/"\\'" .(unpack("H2",$1))/eg; print $x; # WHAT I WANT: foo \'e0, \'e8, \'ec, \'f2, \'f9 bar # What I get foo \'c3\'a0, \'c3\'a8, \'c3\'ac, \'c3\'b2, \'c3\'b9 bar