Опубликовано: 2014-05-23
Использование Unicode в Perl
У любого, кто с Perl работал не так мало времени не один раз возникала ошбика упоминающая в себе Wide character
.
Это все из-за того, что Perl с unicode плохо дружит и реализация поддержки самого unicode прилеплена с боку. Все это
оставляет желать только лучшего. Вот небольшой сборник рецептов для помощи, если вдруг возникла проблема.
use utf8;
Часто решает проблему, но если не решило, то стоит отключить сразу же для предотвращения ошибок в следующих способах.
Переменная среды выполенения:
export PERL_UNICODE=SDL
perl -CSDL -le 'print "\x{1815}"';
binmode(STDOUT, ":utf8");
binmode(STDIN, ":encoding(utf8)");
open my $fh, ">:utf8", $filename
or die "could not open $filename: $!\n";
open my $fh, "<:encoding(utf-8)", $filename
or die "could not open $filename: $!\n";
use open ":encoding(utf8)";
use open IN => ":encoding(utf8)", OUT => ":utf8";
# or
use open qw/:std :utf8/;
Примеры приведены отсюда.
А еще полезно почитать тут.