normalizing wide chars
authormiker <miker@9efc2488-bf62-4759-914b-345cdb29e865>
Tue, 6 Sep 2005 15:21:12 +0000 (15:21 +0000)
committermiker <miker@9efc2488-bf62-4759-914b-345cdb29e865>
Tue, 6 Sep 2005 15:21:12 +0000 (15:21 +0000)
git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@525 9efc2488-bf62-4759-914b-345cdb29e865

src/perlmods/JSON.pm

index f3c798c..71dd28a 100644 (file)
@@ -1,3 +1,4 @@
+
 package JSON::number;
 sub new {
        my $class = shift;
@@ -26,6 +27,7 @@ use overload ( '0+' => sub { 0 } );
 sub toString { 'false' }
 
 package JSON;
+use Unicode::Normalize;
 use vars qw/%_class_map/;
 
 sub register_class_hint {
@@ -225,6 +227,7 @@ sub perl2JSON {
                JSON->register_class_hint(name => $name, hint => $name, type => lc($type));
                $output .= perl2JSON(undef,$perl, $strict);
        } else {
+               $perl = NFD($perl);
                $perl =~ s{\\}{\\\\}sgo;
                $perl =~ s/"/\\"/sgo;
                $perl =~ s/\t/\\t/sgo;
@@ -304,6 +307,7 @@ sub perl2prettyJSON {
                register_class_hint(undef, name => $name, hint => $name, type => lc($type));
                $output .= perl2prettyJSON(undef,$perl);
        } else {
+               $perl = NFD($perl);
                $perl =~ s/\\/\\\\/sgo;
                $perl =~ s/"/\\"/sgo;
                $perl =~ s/\t/\\t/sgo;