Created

Embed URL

HTTPS clone URL

SSH clone URL

You can clone with HTTPS or SSH.

Download Gist
View flag.pl
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
#!perl
 
no utf8;
 
use JSON::XS;
use Test::More;
 
{
my $json = JSON::XS->new->canonical;
 
my $string = $json->encode(+{
foo => 'あああ'
});
 
ok utf8::is_utf8 $json->decode($string)->{foo};
};
 
{
my $json = JSON::XS->new->utf8->canonical;
 
my $string = $json->encode(+{
foo => 'あああ'
});
 
ok utf8::is_utf8 $json->decode($string)->{foo};
};
 
{
my $json = JSON::XS->new->ascii->canonical;
 
my $string = $json->encode(+{
foo => 'あああ'
});
 
ok utf8::is_utf8 $json->decode($string)->{foo};
};
 
{
my $json = JSON::XS->new->latin1->canonical;
 
my $string = $json->encode(+{
foo => 'あああ'
});
 
ok utf8::is_utf8 $json->decode($string)->{foo};
};
 
done_testing;
Owner

no utf8 下で 'あああ' (utf8 のバイト列) を encode したとき、どのようなケースでも decode でフラグが立つ (フラグが立っているなら文字列)。もしバイト列として使おうとするなら再帰的に downgrade しないといけない。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.