Всем привет,
понадобилось тут написать скрипт для обработки виндового текстового файлика. В итоге, покопавшись в инете, я пришёл к выводу, что чего-то я определённо не понимаю. Например того, как записать файл в UTF16-LE. Набросал тут простой семпл, который не работает, как я ожидал:
#!/usr/bin/env perl
use strict;
use warnings;
use Encode;
use PerlIO::encoding;
open OUT, ">:raw:encoding(UTF-16LE)", "test.txt";
my $out = ".\r\n";
print OUT encode("UTF-16LE", $out);
close OUT;
На выходе получаем:
$ file test.txt
test.txt: data
Здесь ожидалось
Little-endian UTF-16 Unicode text, with CRLF line terminators
Далее:
$ hexdump test.txt
0000000 002e 0000 000d 0000 000a 0000
000000c
Почему-то не вставляются первые байты, определяющие кодировку.
Вопрос: что я делаю не так? Что конкретно нужно сделать, чтобы из перлового скрипта создать Little-endian UTF-16 Unicode text?
Всем заранее спасибо.