diff --git a/lib/JSON/PP.pm b/lib/JSON/PP.pm index 2a8b55a..81be0c7 100644 --- a/lib/JSON/PP.pm +++ b/lib/JSON/PP.pm @@ -904,7 +904,8 @@ BEGIN { } my $hex = hex( $u ); - if ( chr $u =~ /[[:^ascii:]]/ ) { + + if ($hex > 0x7f) { $is_utf8 = 1; $s .= JSON_PP_decode_unicode($u) || next; } diff --git a/t/014_latin1.t b/t/014_latin1.t index cef9058..1f76b55 100644 --- a/t/014_latin1.t +++ b/t/014_latin1.t @@ -11,9 +11,9 @@ use JSON::PP; my $pp = JSON::PP->new->latin1->allow_nonref; -ok ($pp->encode ("\x{12}\x{b6} ") eq "\"\\u0012\x{b6} \""); -ok ($pp->encode ("\x{12}\x{b6}\x{abc}") eq "\"\\u0012\x{b6}\\u0abc\""); +is($pp->encode ("\x{12}\x{b6} "), "\"\\u0012\x{b6} \""); +is($pp->encode ("\x{12}\x{b6}\x{abc}"), "\"\\u0012\x{b6}\\u0abc\""); -ok ($pp->decode ("\"\\u0012\x{b6}\"" ) eq "\x{12}\x{b6}"); -ok ($pp->decode ("\"\\u0012\x{b6}\\u0abc\"") eq "\x{12}\x{b6}\x{abc}"); +is($pp->decode ("\"\\u0012\x{b6}\"" ), "\x{12}\x{b6}"); +is($pp->decode ("\"\\u0012\x{b6}\\u0abc\""), "\x{12}\x{b6}\x{abc}");