Шукати в цьому блозі

вівторок, 26 червня 2012 р.

Чтение UTF16 в Perl

Попалась чудная программа, которая разработана под Windows и хранит свои данные хоть и в текстовом формате, но не в UTF8, который является привычным для Linux, а в UTF16.
Встала задача прочитать этот чудный файл в Perl'е, да так чтобы его содержимое было корректно воспринято.
Оказалось всё не просто, а очень просто:
foreach my $orionmap ( sort @orionmap ) {
    open my $FMAP, "<:encoding(utf16)", "$orionmap" || die "Can't open $orionmap for read: $!\n";
    while (<$FMAP>) {
        chomp;
        chop if /\r$/;
        print;
        print "\n";
    }
    close $FMAP;
}
Потом уже нашёл статью на Хабре где народ говорит о возможных граблях. Что-ж, как говорил один знакомый людоед: "Пожуём - увидим!".

Немає коментарів: