my %chartran = ( "\xE1" => 'aacute', "\xE2" => 'acirc', "\xE4" => 'auml', "\xC0" => 'Agrave', "\xC1" => 'Aacute', ); my $re = '[' . (join '', keys %chartran) . ']'; $re = qr/$re/; while () { s/($re)/$chartran{$1}/g; print; } #### use HTML::Entities qw( encode_entities ); while () { print encode_entities($_); }