我已经给出了一个文件,(可能)以Latin-1(ISO 8859-1)编码,并且有一些转换和数据挖掘可以用它来完成。输出应该是UTF-8格式的,我试过了关于Perl中编码转换的所有东西,但都没有产生任何可用的输出。在Perl中正确处理UTF-8
我知道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,一些是拉丁语-1)。
我想要的只是一个简单的方法来读取拉丁文-1文本文件并通过print
在控制台上生成UTF-8输出。有什么简单的方法来在Perl中做到这一点?
Perl不知道,如何用utf正常工作:( – gaussblurinc 2012-08-03 09:28:50
loldop,这是错误的。 – daxim 2012-08-03 09:32:20