You need to make sure that the output file descriptors are open with the proper encoding.
With a brief look at the documents, this does not look like Mech has custom encodings for saved files, so you can capture content and save it yourself:
$mech->get( $link ); my $content = $mech->content; open my $fh, '>:utf8', $file or die "$file: $!"; print $fh $content;
Bit :utf8 in open ensures that data sent to the file descriptor is correctly encoded as UTF-8.
Another way to do this is to manually encode:
use Encode; my $content = encode 'utf8', $mech->content; open my $fh, '>', $file or die "$file: $!"; binmode $fh; print $fh $content;
source share