On 03 Feb 2011 12:46:04 +0200, sawyer x wrote:
>
> use strict;
> use warnings;
> use utf8;
> use HTML::Entities;
> use Encode 'decode';
>
> my $string = "“ test ” ניסיון ";
> my $converted = decode_entities( decode( 'UTF-8', $string ) );
Just a minor clarification about this code. I think Sawyer made a
copy-paste error from his previous example. :)
I.e. use either "use utf8;" or decode('UTF-8', ...), but not both.
And I would recommend to use decode_utf8 instead that makes the code
slightly shorter and slightly more tollerant to input errors (because
encoding 'UTF-8' is more strict in perl than 'utf8' and croaks more).
The complete alternatives then are:
use HTML::Entities;
use utf8;
print decode_entities("“ test ” ניסיון\n");
or:
use HTML::Entities;
use Encode;
print decode_entities(decode_utf8("“ test ” ניסיון\n"));
> And one more example. If you're going to print this string to a terminal,
> you need to make sure that STDOUT (which is what you're actually printing
> to) is in binmode, so it can show Hebrew properly:
>
> binmode STDOUT, ':utf8';
An alternative to this binmode line (and to "use utf8;") can be:
use encoding 'utf8', STDOUT => 'utf8';
Regards,
Mikhael.
--
perl -e 'print+chr(64+hex)for+split//,d9b815c07f9b8d1e'
_______________________________________________
Perl mailing list
[email protected]
http://mail.perl.org.il/mailman/listinfo/perl