gpt4 book ai didi

Perl - 将 PC UTF-8 转换为 PC ANSI

转载 作者:行者123 更新时间:2023-12-04 22:33:15 25 4
gpt4 key购买 nike

我有一个用 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;

最佳答案

问题是你永远不会解码你编码的数据。

use strict;
use warnings;
use Encode qw( encode decode );

open(my $INFILE, '<', $ARGV[0]) or die $!;
open(my $OUTFILE, '>', $ARGV[1]) or die $!;

while (my $utf8 = <$INFILE>) {
my $code_points = decode('UTF-8', $utf8); # <-- This was missing.
my $cp1252 = encode('cp1252', $code_points);
print $OUTFILE $cp1252;
}

但是你可以更轻松地做到这一点:
use strict;
use warnings;

open(my $INFILE, '<:encoding(UTF-8)', $ARGV[0]) or die $!;
open(my $OUTFILE, '>:encoding(cp1252)', $ARGV[1]) or die $!;

while (<$INFILE>) {
print $OUTFILE $_;
}

关于Perl - 将 PC UTF-8 转换为 PC ANSI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15077145/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com