use strict;
use warnings;
use Encode;


sub iso2uni($){ # prend une chaîne en grec ISO lu comme du Latin-1 et la renvoie en utf8
	my($gr) = @_;
	
	my $res="";
	my @tabcar = split(//, $gr);
	foreach my $car ( @tabcar ){
    	my $nb = ord($car); # décimal
    	if( $nb < 128 ){ # ASCII
        	$res .= $car;
    	}else{ # caractère grec    
        	$res .= chr($nb+720);
    	}
    }
    return $res;
} #iso2uni 


sub tradGrec($$){ #deux noms de fichier, source et but
	my($fichIn, $fichOut) = @_;
	
	open(ENTREE, "<:encoding(iso-8859-1)", $fichIn);
	open(SORTIE, ">:encoding(UTF-8)", $fichOut);

	my $ligne = <ENTREE>; #l'en-tête XML
	print (SORTIE '<?xml version="1.0" encoding="utf-8"?>'."\n");

	while( my $ligne = <ENTREE> ){
    	chomp($ligne); # le saut de ligne
    	chop($ligne); # le CR
		$ligne =~ s/(<TraductionPhrase  id="\d+" texte =")(.*)("\/>)/$1.iso2uni($2).$3/e;
		print (SORTIE "$ligne\n");
	}
}

tradGrec($ARGV[0], $ARGV[1]);
