У меня есть проблемы с utf8::encode
при использовании прагма use open qw(:std :utf8);
Как использовать utf8 закодировать с открытой прагмой
Пример
#!/usr/bin/env perl
use v5.16;
use utf8;
use open qw(:std :utf8);
use Data::Dumper;
my $word = "+банк";
say Dumper($word);
say utf8::is_utf8($word) ? 1 : 0;
utf8::encode($word);
say Dumper($word);
say utf8::is_utf8($word) ? 1 : 0;
Выход
$VAR1 = "+\x{431}\x{430}\x{43d}\x{43a}";
1
$VAR1 = '+банк';
0
Когда я удалить эту прагму use open qw(:std :utf8);
, все в порядке.
$VAR1 = "+\x{431}\x{430}\x{43d}\x{43a}";
1
$VAR1 = '+банк';
0
Благодарим вас за продвинутый!
Использование ': станд: utf8' добавляет слой UTF-8 в' STDOUT'. Поэтому последний 'say' попытается еще раз закодировать' $ word' .. –