我试图检测上传的文件是否是有效的 UTF-8,然后才对其内容进行一些操作。它可以检测到非 UTF-8 文件,但如果文件是有效的 UTF-8,则没有要处理的内容。没有要while(){}
循环处理的数据。我的错误在哪里?
use utf8;
use CGI qw(:all -utf8);
use Encode;
my $q = new CGI;
my $file = $q->param('importfile');
my $file_handle = $q->upload('importfile');
my $fhtest = do {
local $/;
<$file_handle>;
};
my $utf8;
eval { $utf8 = decode( "utf8", $fhtest, Encode::FB_CROAK ) };
if ($@) {
die 'Not a valid UTF-8 file';
}
binmode $file_handle, ':encoding(UTF-8)';
while (<$file_handle>) {
chomp();
# my code here
}