As @ernix said, we might give Data::Dumper "the old heave-ho" in such situations, using instead,
use JSON::PP;
use utf8;
sub Dumper { JSON::PP->new->pretty->utf8->encode(shift); }
my %hash = ( да => "не" );
die Dumper \%hash;
which gives,
{
"да" : "не"
}