Извините за мой вопрос noob, но я не могу сделать следующий скрипт. Это полезный мир кода, но я не нашел аналогичного рабочего в сети.Код шаблона для угадывания текстовой кодовой страницы в perl?
use Encode;
use Encode::Guess;
open (my $fhr, "<", "$folder\\$_")
or die "Could not open file '$folder\\$_' $!";
my $data = do { local $/; <$fhr> };
close $fhr;
# It is either cp1251 or utf-8.
my $enc = guess_encoding ($data, qw/cp1251/);
ref($enc) or die "Can't guess: ".$enc->name();
print "Encode = ".$enc->name()."\n";
my $decoded = decode ($enc, $data);
Выход консоли следующим образом:
utf8 "\xCE" does not map to Unicode at double_fin.pl line 167, <$fhr> chunk 1.
Encode = utf8
Cannot decode string with wide characters at C:/Dwimperl/perl/lib/Encode.pm line 176.
Что я сделал не так? Спасибо, заранее.
Похоже, первое сообщение приходит, когда perl пытается декодировать содержимое файла 'double_fin.pl' как UTF-8? Возможно, вам стоит попробовать прочитать файл, используя слой PerlIO ': raw' вместо использования слоя': utf8'? –
@ HåkonHægland, open (my $ fhr, "<: raw", "$ folder \\ $ _") ... Кажется, он работает: никаких предупреждений, ошибок нет. Спасибо. –
Отлично! Добро пожаловать. –