open (DATA, "<:encoding(utf16be)", "$filename") or die "Couldn't open DATA: $!"; while () { print; } close DATA; #### #!/usr/local/bin/perl use strict; use warnings; use diagnostics; open (DATA, "<:encoding(utf16be)", "data.txt") or die "Couldn't open +DATA: $!"; while () { binmode STDOUT, ':utf8'; print; } close DATA; __DATA__ Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Phasellus eu est quis nisi congue ornare. Suspendisse quis felis. Suspendisse placerat orci ut turpis. Suspendisse metus dolor, aliquet et, lobortis facilisis, fermentum ac, massa. Cras nonummy lobortis urna. Aenean facilisis vulputate felis. Mauris pharetra malesuada quam.