#!/usr/bin/perl use strict; use warnings; use Encode qw/from_to/; my $DEBUG = 0; my ($file_from, $file_to) = @ARGV; die "Argumente fehlen!" if @ARGV < 2; open (my $fh_in, '<', $file_from) or die "$file_from - $!"; open (my $fh_out, '>', $file_to) or die "$file_to - $!"; while (my $line = <$fh_in>) { print STDERR "Original: $line" if $DEBUG; #from_to($line,"ANSI Latin1","utf8", Encode::FB_QUIET); # doppelte Rückcodierung erforderlich # siehe http://www.perl-community.de/bat/poard/thread/19290 from_to($line,"Windows-1252","utf8", Encode::FB_QUIET); from_to($line,"utf8", "UTF-8", Encode::FB_QUIET); print $fh_out $line; } close ($fh_in) or die "$file_from - $!"; close ($fh_out) or die "$file_to - $!";