xref: /openbsd-src/gnu/usr.bin/perl/cpan/JSON-PP/t/108_decode.t (revision ec727ea710c91afd8ce4f788c5aaa8482b7b69b2)
1#
2# decode on Perl 5.005, 5.6, 5.8 or later
3#
4use strict;
5use Test::More;
6
7BEGIN { plan tests => 6 };
8
9BEGIN { $ENV{PERL_JSON_BACKEND} = 0; }
10
11use JSON::PP;
12
13no utf8;
14
15my $json = JSON::PP->new->allow_nonref;
16
17
18is($json->decode(q|"ü"|),                   "ü"); # utf8
19is($json->decode(q|"\u00fc"|),           "\xfc"); # latin1
20is($json->decode(q|"\u00c3\u00bc"|), "\xc3\xbc"); # utf8
21
22my $str = 'あ'; # Japanese 'a' in utf8
23
24is($json->decode(q|"\u00e3\u0081\u0082"|), $str);
25
26utf8::decode($str); # usually UTF-8 flagged on, but no-op for 5.005.
27
28is($json->decode(q|"\u3042"|), $str);
29
30
31my $utf8 = $json->decode(q|"\ud808\udf45"|); # chr 12345
32
33utf8::encode($utf8); # UTF-8 flagged off
34
35is($utf8, "\xf0\x92\x8d\x85");
36
37