use Encode; use utf8; #use open IO => ':locale'; #my $s = "El supersónico de los Indi "; my $s1 = "El supero de los Indi "; #$s1 = decode_utf8( $s); print "\n\nStart string: $s1\n\n"; my $s2 = &fix_special_characters($s1); print"\nEnd string: $s2\n\n"; sub fix_special_characters { my($string) = @_; open(C,"<:utf8","chars.txt"); my @c = ; for(my $i=0; $i < @c; $i++) { my ($special,$htmlchar) = split(/\t/,$c[$i]); print "$special : $htmlchar"; $string =~ s/$special/$htmlchar/ig; ## this is generating the error message } return $string; }