私はHTMファイルを持っています。私はメモ帳で直接それを開くと、それは次のようになります。HTMファイルを読む:すべての文字の周りの不思議な空白
<HTML>
<BODY BGCOLOR=#FFFFFF BGPROPERTIES=FIXED>
<FONT 000000 FACE=ARIAL SIZE=3>
<HEAD>
私はPerlでこれを実行しようとすると:
Perlの配列の各行には、今、これらの余分なスペースがあり、のように見える
open (my $fh, '<', $filename) or die "Error opening file! $!";
chomp(my @lines = <$fh>);
close $fh;
これは:
< 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