我有一个HTM文件。当我在记事本直接打开它,它看起来是这样的:阅读HTM文件:每个字符周围都有神秘的空白处
<HTML>
<BODY BGCOLOR=#FFFFFF BGPROPERTIES=FIXED>
<FONT 000000 FACE=ARIAL SIZE=3>
<HEAD>
当我尝试这样做在Perl:
open (my $fh, '<', $filename) or die "Error opening file! $!";
chomp(my @lines = <$fh>);
close $fh;
的Perl数组中的每一行现在有这些额外的空间和看起来像这个:
< H T M L >
< B O D Y B G C O L O R = # F F F F F F B G P R O P E R T I E S = F I X E D >
< F O N T 0 0 0 0 0 0 F A C E = A R I A L S I Z E = 3 >
< H E A D >
关于问题出在哪里的任何想法?
CLARIFICATION:这些不是我的HTM文件,所以我无法控制它们或它们的创建。我收到文件并且必须处理内容。像s/ (?= |\w)//g
这样的各种攻击似乎不会影响这个神秘的空白。正在生成
输出是这样的:
foreach (@lines) {
$line .= "$_\n";
}
open($fh, '>', 'output-file.txt') or die "Could not open file $!";
print $fh $line;
close $fh;
检查编辑器如何处理空格,换行符和内容。还请检查您在每个环境中使用的编码,或者至少发布此信息。 – curveball
你是如何得到间隔输出? – George
文件的编码是什么?确保它不是以UTF-16编码,或者如果是,请确保在读取时正确解码。另外,如果您向我们展示了如何实际打印数据以及在您引用的代码和打印时发生的相关事情,这可能会有所帮助。另外,通过hexdump运行脚本的输出来查看这些空间实际上是什么。 – jcaron