r8991@llin: dpavlin | 2005-11-20 21:33:38 +0100
authorDobrica Pavlinusic <dpavlin@rot13.org>
Sun, 20 Nov 2005 20:32:41 +0000 (20:32 +0000)
committerDobrica Pavlinusic <dpavlin@rot13.org>
Sun, 20 Nov 2005 20:32:41 +0000 (20:32 +0000)
 finished Text::Iconv support

git-svn-id: svn+ssh://mjesec/home/dpavlin/svn/webpac2/trunk@75 07558da8-63fa-0310-ba24-9fe276d99e06

lib/WebPAC/Output/Estraier.pm

index 0fc5359..aa07803 100644 (file)
@@ -91,11 +91,13 @@ sub new {
        my $encoding = $self->{'encoding'} || 'ISO-8859-2';
        $log->info("using encoding $encoding");
 
-       my $iconv = new Text::Iconv('iso-8859-2', 'utf-8');
+       $self->{'iconv'} = new Text::Iconv($encoding, 'UTF-8') or
+               $log->die("can't create conversion from $encoding to UTF-8");
 
        $self ? return $self : return undef;
 }
 
+
 =head2 add
 
 Adds one entry to database.
@@ -138,7 +140,7 @@ sub add {
        $log->debug("creating $uri");
 
        my $doc = HyperEstraier::Document->new;
-       $doc->add_attr('@uri', $uri);
+       $doc->add_attr('@uri', $self->{'iconv'}->convert($uri) );
 
        $log->debug("ds = ", sub { Dumper($args->{'ds'}) } );
 
@@ -157,12 +159,19 @@ sub add {
 
                $log->logconfess("no values for $tag/$type") unless ($vals);
 
-               $doc->add_attr($tag, $vals);
-               $doc->add_hidden_text($vals);
+               $vals = $self->{'iconv'}->convert( $vals ) or
+                       $log->die("can't convert '$vals' to UTF-8");
+
+               $doc->add_attr( $tag, $vals );
+               $doc->add_hidden_text( $vals );
        }
 
        my $text = $args->{'text'};
-       $doc->add_text( $text ) if ( $text );
+       if ( $text ) {
+               $text = $self->{'iconv'}->convert( $text ) or
+                       $log->die("can't convert '$text' to UTF-8");
+               $doc->add_text( $text );
+       }
 
        $log->debug("adding ", sub { $doc->dump_draft } );
        $self->{'db'}->put_doc($doc) || $log->die("can't add document $uri to index");