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?
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.