http://www.perlmonks.org?node_id=992523


in reply to JSON::XS and unicode

You are trying to write a unicode encoded character to a file but the file has not been opened with an encoding that can cope. You need something like this (untested):

{open(my $F, ">:encoding(UTF-8)", $f) or die "Cannot open $f"; say {$F} $s; }

Replies are listed 'Best First'.
Re^2: JSON::XS and unicode
by kimmel (Scribe) on Sep 08, 2012 at 20:11 UTC

    I am using utf8::all which already takes care of turning on the different unicode parts.

    The errors do not come from reading or writing a file. The error is caused by using decode_json() on a string which should work.

      Thanks for the pointer to utf8::all, it'll be handy.

          -- Chip Salzenberg, Free-Floating Agent of Chaos

      Could you replace the characters in the input to JSON with a's one by one until the offending wide character disappears? We will then know exactly which input character is causing the problem. Thanks.