1#
2# decode on Perl 5.005, 5.6, 5.8 or later
3#
4use strict;
5use warnings;
6use Test::More;
7
8BEGIN { plan tests => 7 };
9
10BEGIN { $ENV{PERL_JSON_BACKEND} = 0; }
11
12use JSON::PP;
13
14no utf8;
15
16my $json = JSON::PP->new->allow_nonref;
17
18is($json->encode("ü"),                   q|"ü"|); # as is
19
20$json->ascii;
21
22is($json->encode("\xfc"),           q|"\u00fc"|); # latin1
23is($json->encode("\xc3\xbc"), q|"\u00c3\u00bc"|); # utf8
24is($json->encode("ü"),        q|"\u00c3\u00bc"|); # utf8
25is($json->encode('あ'), q|"\u00e3\u0081\u0082"|);
26
27if ($] >= 5.006) {
28    is($json->encode(chr hex 3042 ),  q|"\u3042"|);
29    is($json->encode(chr hex 12345 ), q|"\ud808\udf45"|);
30}
31else {
32    is($json->encode(chr hex 3042 ),  $json->encode(chr 66));
33    is($json->encode(chr hex 12345 ), $json->encode(chr 69));
34}
35
36