in reply to JSON::XS Wide Character Problem

Hi, JSON::XS does UTF8 decoding by default when you use the functional interface (see the documentation), so you don't need the encoding layer on your open call.

In this example I am allowing JSON::XS to decode from UTF8, and then encoding back to UTF8 when I want to print part of the data.

use strict; use warnings; use JSON::XS; use Path::Tiny; use Encode 'encode_utf8'; my $path = '~/monks/json.txt'; my $json = path($path)->slurp; my $data = decode_json($json); my $text = encode_utf8($data->{text}); print $text, "\n"; __END__

Hope this helps!


The way forward always starts with a minimal test.

Replies are listed 'Best First'.
Re^2: JSON::XS Wide Character Problem
by cormanaz (Deacon) on Jun 04, 2022 at 22:24 UTC
    That did it, and it also solved the problem of processing a large file full of those objects (see reply above).