私は、(おそらく) Latin-1 (ISO 8859-1) でエンコードされたファイルを受け取りました。これには、いくつかの変換とデータ マイニングが必要です。出力は UTF-8 であると想定されており、Perl でのエンコード変換について見つけられることはすべて試しましたが、どれも使用可能な出力を生成しませんでした。
そもそも何の役にも立たないことはわかってuse utf8;
います。Encode
私は有望に見えたパッケージを試しました:
open FILE, '<', $ARGV[0] or die $!;
my %tmp = ();
my $last_num = 0;
while (<FILE>) {
$_ = decode('ISO-8859-1', encode('UTF-8', $_));
chomp;
next unless length;
process($_);
}
binmode(STDOUT, ":utf8");
考えられるあらゆる組み合わせで試してみましたopen FILE, '<:encoding(ISO-8859-1)', $ARGV[0] or die $!;
。結果は、スクランブルされたウムラウト、または のようなエラー メッセージ\xC3 is not a valid UTF-8 character
、さらには混合テキスト (一部は UTF-8、一部は Latin-1) でした。
私が望むのは、Latin-1 テキスト ファイルを読み込んで、コンソールで UTF-8 出力を生成する簡単な方法だけですprint
。Perlでそれを行う簡単な方法はありますか?