Skip to content
Create a gist now

Instantly share code, notes, and snippets.

@cho45 /flag.pl
Created Aug 17, 2011

#!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;
@cho45
Owner
cho45 commented Aug 17, 2011

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.