Если я открываю файл (и указать кодировку непосредственно):Как я могу декодировать данные UTF-16 в Perl, когда я не знаю порядок байтов?
open(my $file,"<:encoding(UTF-16)","some.file") || die "error $!\n";
while(<$file>) {
print "$_\n";
}
close($file);
Я могу прочитать содержимое файла красиво. Однако, если я делаю:
use Encode;
open(my $file,"some.file") || die "error $!\n";
while(<$file>) {
print decode("UTF-16",$_);
}
close($file);
Я получаю следующее сообщение об ошибке:
UTF-16:Unrecognised BOM d at F:/Perl/lib/Encode.pm line 174
Как я могу заставить его работать с decode
?
EDIT: вот первые несколько байт:
FF FE 3C 00 68 00 74 00
Можете ли вы показать нам дамп первых нескольких байтов этого файла? –
Ах, у вас есть спецификация. –