decode_json(encode_utf8($json))
####
from_json(decode_utf8(encode_utf8($json)))
####
use utf8;
use JSON qw( from_json );
my $json = q({ "cat" : "text – abcd" });
my $data = from_json($json);
####
use open ':std', ':encoding(UTF-8)';
print($data->{cat}, "\n");
####
#!/usr/bin/perl
use strict;
use warnings;
use utf8; # Source encoded using UTF-8.
use open ':std', ':encoding(UTF-8)'; # Terminal expects UTF-8.
use JSON qw( from_json );
my $json = q({ "cat" : "text – abcd" });
my $data = from_json($json);
print($data->{cat}, "\n");