print without a file handle prints to STDOUT. You have to turn on the UTF-8 encoding for the STDOUT handle, as well as you correctly did for the input:
Alternatively, PetreAdi can set the character encoding of both input and output to UTF-8 in one fell swoop like this:
use strict;
use warnings;
use open qw( :encoding(UTF-8) :std );
use autodie qw( open close );
my $filename = 'data.txt';
open my $fh, '<', $filename;
while (my $row = <$fh>) {
print $row;
}
close $fh;
exit 0;