use Encode::_utf8_on to mark bytes from Redis socket as utf-8 chars
authorDobrica Pavlinusic <dpavlin@rot13.org>
Wed, 17 Mar 2010 20:26:07 +0000 (20:26 +0000)
committerDobrica Pavlinusic <dpavlin@rot13.org>
Wed, 17 Mar 2010 20:26:07 +0000 (20:26 +0000)
git-svn-id: svn+ssh://llin/home/dpavlin/private/svn/Redis@70 447b33ff-793d-4489-8442-9bea7d161be5

Makefile.PL
lib/Redis.pm

index 96f6ad0..98daa4f 100644 (file)
@@ -13,6 +13,7 @@ WriteMakefile(
                'IO::Socket::INET' => 0,
                'Data::Dumper' => 0,
                'Carp' => 0,
                'IO::Socket::INET' => 0,
                'Data::Dumper' => 0,
                'Carp' => 0,
+               'Encode' => 0,
     },
     dist                => { COMPRESS => 'gzip -9f', SUFFIX => 'gz', },
     clean               => { FILES => 'Redis-*' },
     },
     dist                => { COMPRESS => 'gzip -9f', SUFFIX => 'gz', },
     clean               => { FILES => 'Redis-*' },
index 6a6aab3..82aeae0 100644 (file)
@@ -6,6 +6,7 @@ use strict;
 use IO::Socket::INET;
 use Data::Dumper;
 use Carp qw/confess/;
 use IO::Socket::INET;
 use Data::Dumper;
 use Carp qw/confess/;
+use Encode;
 
 =head1 NAME
 
 
 =head1 NAME
 
@@ -117,6 +118,7 @@ sub AUTOLOAD {
        }
 
        my $result = <$sock> || die "can't read socket: $!";
        }
 
        my $result = <$sock> || die "can't read socket: $!";
+       Encode::_utf8_on($result);
        warn "<< $result" if $self->{debug};
        my $type = substr($result,0,1);
        $result = substr($result,1,-2);
        warn "<< $result" if $self->{debug};
        my $type = substr($result,0,1);
        $result = substr($result,1,-2);
@@ -156,6 +158,7 @@ sub __read_bulk {
        my $v;
        if ( $len > 0 ) {
                read($self->{sock}, $v, $len) || die $!;
        my $v;
        if ( $len > 0 ) {
                read($self->{sock}, $v, $len) || die $!;
+               Encode::_utf8_on($v);
                warn "<< ",Dumper($v),$/ if $self->{debug};
        }
        my $crlf;
                warn "<< ",Dumper($v),$/ if $self->{debug};
        }
        my $crlf;