You'll need to ensure that the output filehandles are opened with the proper encoding.
From a brief glance at the docs, it doesn't look like Mech has configurable encodings for saved files, so you can grab the content and save it yourself:
$mech->get( $link );
my $content = $mech->content;
open my $fh, '>:utf8', $file or die "$file: $!";
print $fh $content;
The :utf8
bit in the open
will make sure that data sent to the filehandle is encoded properly as UTF-8.
Another way to do it is to encode manually:
use Encode;
my $content = encode 'utf8', $mech->content;
open my $fh, '>', $file or die "$file: $!";
binmode $fh;
print $fh $content;