Проблема с форматом файла в Perl - PullRequest
0 голосов
/ 19 февраля 2012

Я должен проанализировать файл в Perl. Файл в формате UTF 16, но мне нужен файл в формате UTF 8. Я преобразовал файл и сохранил его в новом файле, однако у меня возникла проблема с символом новой строки.

В исходном файле каждая новая строка представлена ​​как 0d 00 0a 00 (возврат каретки и новая строка), однако в преобразованном файле я вижу только 0d вместо 0d 0a. Проблема в том, что в следующий раз, когда я пытаюсь прочитать файл, он читает весь файл как одну строку. Чтобы преобразовать файл, все, что я делаю, - это прочитал файл в формате UTF 16 и записал его в UTF 8. Не могли бы вы сказать, как я могу добавить 0a в конце?

Ответы [ 2 ]

1 голос
/ 13 апреля 2012

Спасибо за ваши ответы.Мне удалось вставить символ новой строки, просто напечатав новую строку.Код, который я использовал, был

open IN, '<:raw:encoding(UTF-16LE)', $input;
open (OUT,"> $sOutFile");
my $count = 0; 
while ( defined ($sLine = <IN>))
{
    if ($count == 0)    // Delete first line as not needed
    {
       $count = 1;
       next;
    }
chomp $sLine;
print OUT $sLine."\x0A";    // To get new line
}

Я знаю, что это не самый лучший способ (даже для удаления первой строки), но он работал.

Прошу прощения за поздний ответ.

0 голосов
/ 19 февраля 2012

Так как вы не показали какой-либо код (который я предлагаю вам сделать для более актуальных предложений), я бы слепо рекомендовал это: Encode :: Unicode .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...