X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/ad7353df162d32e3b6f9348a5f8c1310079e6110..7f34b3c1f69619eaf3c41945ab22cf21883bb945:/SL/Iconv.pm diff --git a/SL/Iconv.pm b/SL/Iconv.pm index 9fb296e41..d6ea0cbdf 100644 --- a/SL/Iconv.pm +++ b/SL/Iconv.pm @@ -6,7 +6,7 @@ use Text::Iconv; use SL::Common; -use vars qw(%converters); +my %converters; use strict; @@ -19,11 +19,11 @@ sub new { return $self; } -sub get_converter { +sub _get_converter { my ($from_charset, $to_charset) = @_; my $index = join $SUBSCRIPT_SEPARATOR, $from_charset, $to_charset; - $converters{$index} ||= SL::Iconv->new($from_charset, $to_charset); + $converters{$index} ||= Text::Iconv->new($from_charset, $to_charset) || die; return $converters{$index}; } @@ -36,7 +36,7 @@ sub convert { $from_charset ||= Common::DEFAULT_CHARSET; $to_charset ||= Common::DEFAULT_CHARSET; - my $converter = get_converter($from_charset, $to_charset); + my $converter = _get_converter($from_charset, $to_charset); return $converter->convert($text); } @@ -44,8 +44,8 @@ sub _convert { my $self = shift; my $text = shift; - $text = $self->{handle}->convert($text) if !$self->{to_is_utf8} || !Encode::is_utf8($text); - $text = decode("utf-8-strict", $text) if $self->{to_is_utf8} && !Encode::is_utf8($text); + $text = convert($self->{from}, $self->{to}, $text) if !$self->{to_is_utf8} || !Encode::is_utf8($text); + $text = decode("utf-8-strict", $text) if $self->{to_is_utf8} && !Encode::is_utf8($text); return $text; } @@ -56,7 +56,6 @@ sub _init { $self->{to} = shift; $self->{to} = 'UTF-8' if lc $self->{to} eq 'unicode'; $self->{to_is_utf8} = $self->{to} =~ m/^utf-?8$/i; - $self->{handle} = Text::Iconv->new($self->{from}, $self->{to}) || die; return $self; }