#!/usr/bin/perl use strict; use warnings; use Encode qw(from_to); my $from = $ARGV[0]; my $to = $ARGV[1]; my $in_file = $ARGV[2]; my $out_file = $ARGV[3]; open my $input, "<", $in_file or die "$!"; open my $output, ">", $out_file or die "$!"; if($from eq 'UTF-16LE'){ $/ = "\012\000"; } while(my $octets = <$input>){ from_to($octets,$from,$to); print $output $octets; } close($input); close($output);