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");