Perl中的文件格式问题

时间:2012-02-19 06:46:18

标签: perl unicode

我必须解析perl中的文件。该文件采用UTF 16文件格式,但我需要UTF 8格式的文件。我已经转换了文件并将其存储在一个新文件中,但是我遇到了新行字符的问题。

在原始文件中,每个新行都表示为0d 00 0a 00(回车符和换行符)但是在转换后的文件中我只看到0d而不是0d 0a。这个问题是,下次我尝试读取文件时,它会将整个文件读为1行。 要转换文件,我所做的就是以UTF 16格式读取文件并以UTF 8格式编写。您能否告诉我如何在最后添加0a

2 个答案:

答案 0 :(得分:1)

感谢您的回答。我设法通过打印一个新行来输入一个新行。我正在使用的代码是

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
}

我知道这不是最好的方法(即使删除第一行),但它确实有效。

我为迟到的回复道歉。

答案 1 :(得分:0)

由于您没有显示任何代码(我建议您这样做,以获得更相关的建议),我会盲目推荐:Encode::Unicode