29 lines
875 B
Perl
29 lines
875 B
Perl
#! perl
|
|
|
|
# adapted from a test by Aristotle Pagaltzis (http://intertwingly.net/blog/2007/11/15/Astral-Plane-Characters-in-Json)
|
|
|
|
use strict;
|
|
use warnings;
|
|
|
|
use JSON::XS;
|
|
use Encode qw(encode decode);
|
|
|
|
use Test::More tests => 3;
|
|
|
|
my ($faihu, $faihu_json, $roundtrip, $js) = "\x{10346}";
|
|
|
|
$js = JSON::XS->new->allow_nonref->ascii;
|
|
$faihu_json = $js->encode($faihu);
|
|
$roundtrip = $js->decode($faihu_json);
|
|
is ($roundtrip, $faihu, 'JSON in ASCII roundtrips correctly');
|
|
|
|
$js = JSON::XS->new->allow_nonref->utf8;
|
|
$faihu_json = $js->encode ($faihu);
|
|
$roundtrip = $js->decode ($faihu_json);
|
|
is ($roundtrip, $faihu, 'JSON in UTF-8 roundtrips correctly');
|
|
|
|
$js = JSON::XS->new->allow_nonref;
|
|
$faihu_json = encode 'UTF-16BE', $js->encode ($faihu);
|
|
$roundtrip = $js->decode( decode 'UTF-16BE', $faihu_json);
|
|
is ($roundtrip, $faihu, 'JSON with external recoding roundtrips correctly' );
|