Hello.
Can you do this ? or not ?
1. Paste the function below into your script.
2. This will ouput encoding information of $ARGV[0] to logfile.txt
troubled_string($ARGV[0], "logfile.txt");
3. Examine logfile.txt with your browser, and find normal string, changing "Encodings" of your browser.
sub troubled_string{
my ($str,$logfile_path)=@_;
use Encode qw(decode encode from_to encodings);
open (my $fh, ">", $logfile_path) or die $!;
printf $fh "utf8 flag:%s\n",utf8::is_utf8($str) ? "utf8 flagged" :
+ "not utf8 flagged";
printf $fh "hexdump:[%s]\n",utf8::is_utf8($str) ? unpack('U0H*', $
+str):unpack('H*', $s
tr);
printf $fh "length:[%s]\n", length($str);
printf $fh "%s\n", "-" x 20;
if ( utf8::is_utf8($str) ){
printf $fh "[encode trial]\n";
printf $fh "%-25s:%s\n",$_,encode($_, $str) for (Encode->encod
+ings(":all"));
} else {
printf $fh "[decode -> encode trial]\n";
printf $fh "%-25s:%s\n",$_,encode($_, decode($_,$str)) for (En
+code->encodings(":all"));
}
close $logfile_path;
}
What does it say?