我必须解析perl中的文件。该文件采用UTF 16文件格式,但我需要UTF 8格式的文件。我已经转换了文件并将其存储在一个新文件中,但是我遇到了新行字符的问题。
在原始文件中,每个新行都表示为0d 00 0a 00
(回车符和换行符)但是在转换后的文件中我只看到0d而不是0d 0a
。这个问题是,下次我尝试读取文件时,它会将整个文件读为1行。
要转换文件,我所做的就是以UTF 16格式读取文件并以UTF 8格式编写。您能否告诉我如何在最后添加0a
?
答案 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。