if json is valid utf8 mark it as such
Yuval Kogman [Fri, 5 Oct 2007 03:31:06 +0000 (03:31 +0000)]
lib/MooseX/Storage/Format/JSON.pm

index e26cadb..e5b4817 100644 (file)
@@ -5,6 +5,7 @@ use Moose::Role;
 no warnings 'once';
 
 use JSON::Any;
+use utf8 ();
 
 our $VERSION   = '0.02';
 our $AUTHORITY = 'cpan:STEVAN';
@@ -15,13 +16,16 @@ requires 'unpack';
 sub thaw {
     my ( $class, $json, @args ) = @_;
     local $JSON::UnMapping = 1;
+    utf8::encode($json) if utf8::is_utf8($json);
     $class->unpack( JSON::Any->jsonToObj($json), @args );
 }
 
 sub freeze {
     my ( $self, @args ) = @_;
     local $JSON::UnMapping = 1;
-    JSON::Any->objToJson( $self->pack(@args) );
+    my $json = JSON::Any->objToJson( $self->pack(@args) );
+    utf8::decode($json) if !utf8::is_utf8($json) and utf8::valid($json); # if it's valid utf8 mark it as such
+    return $json;
 }
 
 1;