【发布时间】:2013-02-11 04:44:07
【问题描述】:
我有一个以 PC UTF-8 编码的文件。我想将文件转换为 PC ANSI。
我已经尝试了以下,但我总是得到输出文件是 PC UTF-8。
use Encode;
$infile = $ARGV[0];
open(INFILE, $infile);
my $outfile = "temp.txt";
open(OUTFILE, ">$outfile");
while(<INFILE>) {
my $row = $_;
chomp $row;
$row = Encode::encode("Windows-1252", $row);
print OUTFILE $row."\n";
}
close INFILE;
close OUTFILE;
【问题讨论】:
-
在
chomp行加上\n后有点浪费。 -
你能用一个 very 的小文件试试吗,比如 1 行带有单个非 ASCII 字符的短行,然后向我们展示输入和输出的十六进制转储?
-
这与您的问题无关,但首选
open的 3 参数版本。 modernperlbooks.com/mt/2010/04/…